嵌入式系统任务优先级安排原则

任务优先级按照任务类型进行安排,遵循以下规则:


1、中断关联性:与中断服务程序(ISR)相关的任务应该安排尽可能高的优先级,这样有利于处理异步时间提高系统的实时性,如果优先级设置的较低,则可能发生由于cpu一直被高优先级的任务霸占,导致在第二次发生中断时还没来的及处理上一次中断发生的事件!导致信号的丢失!


2、紧迫性:紧迫任务要求在规定的时间内完成,有很强的时间关联性,对时间要求较严,在安排紧迫任务的优先级的时候要按照紧迫程度将任务进行划分,越紧迫的任务优先级越高,一般来说,紧迫任务与ISR关联。


3、关键性:任务越关键,优先级越高,道理很简单,如果关键任务安排较低的优先级将不能获得更多的执行机会,导致关键人物得不到执行!关键性就荡然无存!


4、频繁性:越频繁的任务(周期越短)优先级应该设置的越高,以便及时得到执行。


5、快捷性:前面的条件相同相近时,越是快捷的任务优先级越高,这样避免后面的就绪任务延时短。


6、传递性:信息传递的上游任务优先级高于下游任务的优先级。如:信息采集任务的优先级要高于信息处理的优先级



举例说明优先级安排的:

在一个实际项目价值中,模拟信号采集任务,串口接收任务,串口发送任务,键盘监听任务,显示任务。

下面我们分析一下:模拟信号采集任务、串口发送任务、串口接收任务与ISR有关,其中串口接收任务是关键任务也是紧迫任务,对实时性要求最高,而模拟信号采集任务是紧迫任务而不是关键任务,因为即使丢失一次模拟信号的次采集还不至于造成严重的后果。串口任务cpu是主动方,优先级安排低点也可以,只要将数据发送出去就可以。键盘监听任务和显示任务对实时性要求较低。数据处理任务视计算量而定,如果计算量较小可以安排在键盘监听之前,因为它比较便捷。反之安排其后。


这样我们可以这样设定:

任务:                           优先级:

串口接收任务                 4

模拟信号采集任务          6

串口发送任务                 8

数据处理任务                10

按键监听任务                12

显示任务                       14 


这样可以 #define OS_LOWEST_PRIO  18


优先级安排比较宽松的好处就是方便后续升级,添加任务不需要修改其他部分

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值