task create problem

jimmjimm wrote on Friday, April 04, 2014:

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:

int main(void)
{
// xTaskCreate( task_runCommandSlice, “runCommandSlice”, configMINIMAL_STACK_SIZE, NULL, 5, NULL );
// xTaskCreate( task_runHostSlice, “runHostSlice”, configMINIMAL_STACK_SIZE, NULL, 4, NULL );
// xTaskCreate( task_Heater_manage_temperature, “Heater_manage_temperature”, configMINIMAL_STACK_SIZE, NULL, 3, NULL );
// xTaskCreate( task_ThermocoupleReader, “ThermocoupleReader”, configMINIMAL_STACK_SIZE, NULL, 2, NULL );

// xTaskCreate( task_runPiezoSlice, “task_runPiezoSlice”, configMINIMAL_STACK_SIZE, NULL, 1, NULL );
xTaskCreate( task_interface_doUpdate, “interface_doUpdate”, configMINIMAL_STACK_SIZE*4, NULL, 0, NULL );
MYRCC_DeInit();
Board_init();
reset(true);
vTaskStartScheduler();
while(1){
}
}

rtel wrote on Friday, April 04, 2014:

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?

Regards.

rtel wrote on Friday, April 04, 2014:

Do you have the malloc failed hook defined?

Regards.

jimmjimm wrote on Wednesday, April 09, 2014:

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

jimmjimm wrote on Wednesday, April 09, 2014:

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.

davedoors wrote on Wednesday, April 09, 2014:

http://www.freertos.org/a00110.html#configASSERT
http://www.freertos.org/Debugging-Hard-Faults-On-Cortex-M-Microcontrollers.html