RTOS环境中的中断程序应该注意的问题

1.  中断程序决不能获取信号量,读取可能会空的队列或者信箱,等待事件等,如果某个中断程序调用了RTOS函数,并被阻塞,那么除了该中断程序之外,被中断的任务也会被阻塞。即使该任务有最高的优先级也是如此。

2.中断程序不能对有任务等待的队列或者信箱执行写操作,不能设置事件,释放信号量等,如果某个中断程序破坏了这个规则。操作系统会把控制从该中断程序切换掉,而去运行另外一个任务,这样这个中断程序就会长时间得不到完成,从而阻塞了所有的低先级甚至是全部的中断。

3 如果你的系统允许中断嵌套,以及更高优先级的中断可以中断较低优先级的中断,那么就要另外考虑。如果更高优先级的中断程序调用了任何的RTOS函数,那么低优先级的中断程序,必须让操作系统知道该低优先级的中断程序是何时发生的?否则最高优先级的中断程序结束以后,操作系统调度程序可能会去运行其他任务,而不是让低优先级的中断程序继续完成,很显然,在所有的中断程序完成之前,不应该让操作系统调度程序运行。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值