Scheduler gets stuck if more than 3 tasks
Hi all,
I am having trouble starting more than 3 tasks even if they’re absolute dummy tasks.
I’ve built a project with STM32CubeMX which included freeRTOS as middleware.
IDE: Atollic TrueSTUDIO with GCC
MCU: STM32151LCBU6
main.c:
xTaskCreate(DataHandlerTask,”Data Handler”, 280U, NULL, 4U, NULL);
xTaskCreate(LightMeasureTask,”Light Measurement”, 100U, NULL, 4U, NULL);
xTaskCreate(TemperatureMeasureTask,”Temp Measurement”, 100U, NULL, 4U, NULL);
xTaskCreate(HumidityMeasureTask,”Humid Measurement”, 100U, NULL, 4U, NULL);
xTaskCreate(PressureMeasureTask,”Pressure Measurement”, 100U, NULL, 4U, NULL);
vTaskStartScheduler();
tasks (there are 5 identically simple tasks):
void HumidityMeasureTask(void pvargs){
int32t humidityValue=0;
for (;;) {
osDelay(HUMIDITYTASKDELAYMS);
}
}
xTaskCreate returns in every case 1.
After it gets stuck in vTaskStartScheduler() and does nothing.
If I create only 3 tasks everything works fine. However, if there are more than 3 tasks the scheduler is getting stuck. Is there a define for maximum tasks or something?
Any suggestions on how to get this working would be greatly appreciated.
Peter Maier
Scheduler gets stuck if more than 3 tasks
Please read the heap management page on the FreeRTOS web site – could it be you just need to increase configTOTALHEAPSIZE?
Do you have a malloc failed hook defined?
Do you have configASSERT() defined?
Scheduler gets stuck if more than 3 tasks
To increase configTOTALHEAPSIZE worked fine.
You made my day, thank you