when i try to run my program with FREERTOS on STM32 i got one problem that if i just create interface task individually it works fine but when i create interface task with any another task it will go to hardware fault, there is how i create task. i tried comment interface task and uncomment other tasks it works fine, how this happen? any one get idea?
There is my main code:
// xTaskCreate( taskrunCommandSlice, "runCommandSlice", configMINIMALSTACKSIZE, NULL, 5, NULL );
// xTaskCreate( taskrunHostSlice, "runHostSlice", configMINIMALSTACKSIZE, NULL, 4, NULL );
// xTaskCreate( taskHeatermanagetemperature, "Heatermanagetemperature", configMINIMALSTACKSIZE, NULL, 3, NULL );
// xTaskCreate( taskThermocoupleReader, "ThermocoupleReader", configMINIMALSTACKSIZE, NULL, 2, NULL );
// xTaskCreate( taskrunPiezoSlice, "taskrunPiezoSlice", configMINIMALSTACKSIZE, NULL, 1, NULL );
xTaskCreate( taskinterfacedoUpdate, "interfacedoUpdate", configMINIMALSTACKSIZE*4, NULL, 0, NULL );
Do you have configASSERT() defined?
Do you have stack overflow protection on?
Have you gone through the FAQ "my application does not run, what could be wrong?"?
Are you using interrupts? If so, have you read the page dedicated to describing how to configure Cortex-M3 interrupts for STM32s? Especially the text highlighting special requirements for STM32 parts?
Do you have the malloc failed hook defined?
Hi,configASSERT is defined but i dont know how to use it
stack overflow protection is set on
malloc failed hook defined, and
vApplicationMallocFailedHook & vApplicationStackOverflowHook didnt trigger
interrupt is fine
i even tried to increase heap (into 0x00006400)and stack (into 0x00002800)size still not work
update: the program is actually running a while then goto hardfault, if i delete freertos part is works fine.still confuse what may cause this problem.