AnsweredAssumed Answered

STM32F1 reboots with new FreeRtos v9

Question asked by Fede Rico on Nov 3, 2017

Hi there,

I using a STM32F103 in my project and I generate the Keil project with Cube32MX with this firmware package for STM32F1 version 1.4.0.

 

Today I update the Cube to version 4.23.0 and I migrate my project (including the update to the firmware package v 1.6.0. 

 

There is no problem during the program compile, unless some Watchdog defines. I use FreeRtos as operative system.

 

When I run the program in debug mode the peripheral initialisation (main.c) works, but when the my task starts the program restart and execute again the peripheral initialisation into the main.c file.

 

If I stop the code execution, keil shows the last instruction executed and it execute forever this code:

#if ( ( configUSE_PREEMPTION == 1 ) && ( configIDLE_SHOULD_YIELD == 1 ) )
{
/* When using preemption tasks of equal priority will be
timesliced. If a task that is sharing the idle priority is ready
to run then the idle task should yield before the end of the
timeslice.

A critical region is not required here as we are just reading from
the list, and an occasional incorrect value will not matter. If
the ready list at the idle priority contains more than one task
then a task other than the idle task is ready to execute. */
if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ tskIDLE_PRIORITY ] ) ) > ( UBaseType_t ) 1 )
{
taskYIELD();
}
else
{
mtCOVERAGE_TEST_MARKER();
}
}

 

Should I modify some FreeRtos configuration parameters into Cube32Mx?

 

Thanks for the help!

Outcomes