SXSJBD 发表于 2022-1-28 10:15:00

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);
}


eric2013 发表于 2022-1-28 10:24:26

直接使用MDK RTE一键添加FreeRTOS,里面有例子和添加方法。

https://www.armbbs.cn/forum.php?mod=viewthread&tid=95243
相比CubeMX添加的区别是ARM的这个CMSIS-RTOS V2封装层是最新版,解决了很多之前的封装层和FreeRTOS的之间的bug
页: [1]
查看完整版本: FreeRTOS启动时报osErrorISR,时间片轮转不运行 该如何解决