打印
[应用笔记]

确保系统的稳定性和可靠性,应该遵循原则

[复制链接]
3263|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lxs0026|  楼主 | 2024-5-30 14:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在中断服务程序中不应该调用可能引起任务切换的 FreeRTOS API 函数,因为中断服务程序结束后,上下文切换必须在任务级别发生。

这是因为在中断服务程序中调用会导致任务切换的 FreeRTOS API 函数可能会引发问题。因为中断服务程序执行完毕后,系统必须回到任务级别的上下文,并且只有任务调度器能够决定下一个要运行的任务。如果在中断服务程序中调用了这些会导致任务切换的 API 函数,那么系统会试图在中断服务程序的上下文中进行任务切换,这可能导致不可预测的结果,例如任务调度器数据结构损坏、死锁等问题。

使用特权

评论回复
沙发
lxs0026|  楼主 | 2024-5-30 14:22 | 只看该作者
为了确保系统的稳定性和可靠性,应该遵循以下原则:

在中断服务程序中尽量避免调用 FreeRTOS API 函数,尤其是可能引起任务切换的函数。

使用特权

评论回复
板凳
lxs0026|  楼主 | 2024-5-30 14:22 | 只看该作者
如果确实需要在中断服务程序中与任务进行通信或同步操作,应该使用专门为中断上下文设计的 FromISR 版本的 API 函数,如 xSemaphoreGiveFromISR()、xQueueSendFromISR() 等。

使用特权

评论回复
地板
lxs0026|  楼主 | 2024-5-30 14:22 | 只看该作者
在任务级别中处理复杂的逻辑和任务切换,以确保系统的稳定性和可靠性。

通过遵循这些原则,可以确保系统在中断服务程序和任务之间进行正确的协作,并提高系统的性能和可维护性。

使用特权

评论回复
5
caigang13| | 2024-6-2 15:38 | 只看该作者
跑操作系统,如果任务的切换没有处理好,反而会带来隐患。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

90

主题

1051

帖子

1

粉丝