硬汉嵌入式论坛

 找回密码
 立即注册
查看: 855|回复: 1
收起左侧

[FreeRTOS] FreeRTOS启动时报osErrorISR,时间片轮转不运行 该如何解决

[复制链接]

3

主题

12

回帖

21

积分

新手上路

积分
21
发表于 2022-1-28 10:15:00 | 显示全部楼层 |阅读模式
如题,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);
}


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 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
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 05:23 , Processed in 0.274192 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表