FreeRTOS启动时报osErrorISR,时间片轮转不运行 该如何解决
如题,FreeRTOS是用STM32CUBEIDE中自带的MX生成的,在main函数里调用的osKernelStart();函数中,返回了osErrorISR错误代码,其中调试发现IS_IRQ() = 3.请问这个该怎么解决?如何让返回为0?osKernelStart();代码如下:osStatus_t osKernelStart (void) {osStatus_t stat;if (IS_IRQ()) {
stat = osErrorISR;
}
else {
if (KernelState == osKernelReady) {
/* Ensure SVC priority is at the reset value */
SVC_Setup();
/* Change state to enable IRQ masking check */
KernelState = osKernelRunning;
/* Start the kernel scheduler */
vTaskStartScheduler();
stat = osOK;
} else {
stat = osError;
}
}
return (stat);
}
直接使用MDK RTE一键添加FreeRTOS,里面有例子和添加方法。
https://www.armbbs.cn/forum.php?mod=viewthread&tid=95243
相比CubeMX添加的区别是ARM的这个CMSIS-RTOS V2封装层是最新版,解决了很多之前的封装层和FreeRTOS的之间的bug
页:
[1]