OS03-任务优先级及代码分析

本文介绍了AUTOSAR OS中任务的静态优先级,其中0表示最低优先级,数值越大优先级越高。ResScheduler任务具有最高优先级,不可被抢占。中断优先级始终高于任务。AUTOSAR OS不支持动态优先级管理,但在特定场景下可调整。解析了任务优先级的代码,包括优先级类型定义和查找最高优先级的算法。
摘要由CSDN通过智能技术生成

1 任务静态优先级

  • AUTOSAR OS 将值 0 指定为操作系统中最低的任务优先级。数字越大,任务的优先级越高。

    如下图所示:

    • 1、Idle task的优先级为0。
    • 2、ResScheduler所代表的调度程序优先级是任务中最高的优先级. 也就是拥有这个资源「ResScheduler」的任务的优先级最高,不能被其他task抢占。
    • 3、中断的优先级总是高于任务的优先级。
      在这里插入图片描述
  • [在 AUTOSAR OS 中,优先级是静态分配给每个任务的,并且不能在运行时更改。不支持动态优先级管理。但是,在特定情况下,操作系统可以更改任务优先级,具体可参考优先级天花板协议。

  • 当执行重新调度时,调度器总是切换到就绪任务和正在运行的任务中优先级最高的任务。

2 任务优先级代码解析

2.1 优先级类型定义

一般优先级定义的类型取决于不同优先级任务的数量多少;uint8可以支持254个任务级数量(去除0和255,这两个预留给Idle和ResScheduler了)

 typedef   uint8  OsPriority
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

糖果Autosar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值