CMSIS-RTOS RTX 临界中断处理该怎么处理

新手上路, 积分 4, 距离下一级还需 45 积汾

新手上路, 积分 4, 距离下一级还需 45 积分

看到有所svc的抢占优先级必须大于pendsv和tick如果stm32设置优先级分组为2,svc=0xE0,pensv=tick=0xF0,抢占优先级一样响应优先级不一致会導致什么样的后果。现场程序偶尔出现handFault中断处理,是不是优先级设置不对程序切换时导致程序跑飞?如该文章所述:.cn/s/blog_908da.html
设置nvic中断处理优先级的代码放在os初始化之前os自动会把svc的优先级设置到高于pendsv,systick

新手上路, 积分 4, 距离下一级还需 45 积分

新手上路, 积分 4, 距离下一级还需 45 积分

不要在任务里设置中断处理分组在os_sys_init 之前设置这个分组即可

你用的不是cmsis-rtx吧,这个我不知道怎么处理

新手上路, 积分 4, 距离下一级还需 45 积分

新手上路, 积汾 4, 距离下一级还需 45 积分

是吧keil自带的RTX啊,难道不是一样吗

专注,努力用心的做好每一件事情,Fighting!

初级会员, 积分 67, 距离下一级还需 132 积分

初級会员, 积分 67, 距离下一级还需 132 积分

}

RTX5 事件记录功能更多...

定时器函数苼成的事件。
事件标志函数生成的事件
互斥锁函数生成的事件。
由信号量函数生成的事件
内存池函数生成的事件。
消息队列函数生成嘚事件

RTX5 与事件记录器连接,提供事件信息帮助您了解和分析操作。

要将事件记录器与 RTX5 一起使用需要创建一个生成事件信息的图像。步骤是:

  • 构建应用程序代码并将其下载到调试硬件

目标应用程序生成事件信息后,可以使用事件记录器在 μVision 调试器中查看它

}
    • osThreadDetach:分离线程(线程终止时可以回收线程存储)
    • osThreadExit:终止执行当前正在运行的线程。
    • osThreadGetId:返回当前正在运行的线程的线程ID
    • osThreadGetStackSpace:在执行期间基于堆栈水印记录获取线程的可用堆棧空间。
      • osThreadFlagsClear:清除当前正在运行的线程的指定线程标志
      • osThreadFlagsWait:等待当前正在运行的线程的一个或多个线程标志变为信号。
        • osEventFlagsWait:等待一个或多个事件标志变为信号
          • osDelay:等待超时(延时)。
            • osTimerNew:创建并初始化定时器
              • osMutexAcquire:如果被锁定,则获取互斥量或超时
                • osSemaphoreAcquire:如果没有令牌可用,则获取信號量令牌或超时
                • osSemaphoreNew:创建和初始化一个信号量对象。
                    • osMessageQueuePut:如果队列已满则将消息放入队列或超时。
                    • 可以从线程和中断处理服务程序(ISR)调鼡以下CMSIS-RTOS2函数:


}

我要回帖

更多关于 中断处理 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信