闲聊几句 AUTOSAR OS(三)
微信:gongkenan2013
承接各种线上培训
在上一篇文章中介绍了 AUTOSAR OS 的一些内容,和相关概念。本文将针
对这些概念继续深入的介绍。
一、 AUTOSAR OS Basic Task
在 AUTOSAR OS 中,一个非常重要的对象就是 Task,Task 是实现各种功能
的主要载体,例如 SWC 中的 Runnable 都是 Mapping 到某个 Task 中,由 OS 来
调度使用的。在 AUTOSAR OS 中 Task 分为了两类:Basic Task 和 Extended Task。
对于 Basic Task 来讲,有以下三种状态机,分别为 Suspended, Ready, Running。
在芯片启动代码运行时启动了 OS 之后,先处于 Suspended 状态,此时的 Baic
Task 对 OS 内核来说是不可见的。当用户通过利用 Alarm 等方式来去激活 Basic
Task,此时状态就变为了 Ready 状态,对 OS 内核可见,加入到 OS 内核调度中。
会根据 Task 的优先级来进行排队,如果此刻优先级最高,即可被 OS 调度起来,
进入到了 Running 状态。如果有其他优先级更高的 Task 在排队,那么就继续等
待。另外,如果 Basic Task 配置成了可被抢占式的,那么已经在 Running 状态的
Task 将有可能被其他优先级更高的 Task 所打断,此时 Task 的状态将由 Running
状态变为 Ready,继续等待下一次被 OS 调用。对于 Basic Task 而言,当任务执
行完毕以后,需要手动调用 TerminateTask,才能退出 OS 调度。不然,长时间存