当我在freeRTOS中创建超过5个任务时,调度程序不会启动。我使用的板KL46Z自由从飞思卡尔。我知道调度程序没有启动,因为当我调试程序时,程序会卡在启动调度程序(PEX_RTOS_START())的行之后的FOR中。
#ifdef PEX_RTOS_START
PEX_RTOS_START(); /* Startup of the selected RTOS. Macro is defined by the RTOS component. */
#endif
/*** End of RTOS startup code. ***/
/*** Processor Expert end of main routine. DON'T MODIFY THIS CODE!!! ***/
for(;;){} // I GET STUCK HERE!
/*** Processor Expert end of main routine. DON'T WRITE CODE BELOW!!! ***/
} /*** End of main routine. DO NOT MODIFY THIS TEXT!!! ***/发布于 2016-10-15 21:37:54
如果您使用的是官方的FreeRTOS演示程序(从FreeRTOS下载),那么通过循环阅读注释,您说您被困住了,它会告诉您为什么会被困在那里,并给您提供有关资源的建议,以帮助您修复它。您还可以检查xTaskCreate() API函数的文档,或者知道编译时(而不是运行时)是否有足够的内存,您可以通过将configSUPPORT_STATIC_ALLOCATION设置为1、configSUPPORT_DYNAMIC_ALLOCATION设置为0并使用xTaskCreateStatic()而不是xTaskCreate()来创建一个完全静态分配的系统。
https://stackoverflow.com/questions/40054233
复制相似问题