调度表
AUTOSAR OS通过调度表(Schedule Table)来解决一个alarm只能激活一个任务的限制。调度表是预定义的行为序列,通过到期点实现。AUTOSAR OS遍历调度表并依次处理每个到期点,遍历由底层的counter来实现驱动。
到期点发生在从概念零开始的静态配置偏移量上。偏移量在静态绑定计数器的刻度中指定-就像alarm的过期一样。调度表和警报之间的关键区别是调度表上的到期点保持相对分离(彼此之间)。
参考调度表的结构,调度表涉及如下术语:
Initial Offset 是调度表第一个到期点的偏移,因此也是配置的最小偏移
Durartion 是调度表停止前从0开始的tick数
Final Delay 是最后一个到期点的偏移与duration的差
Delay 是相邻到期点之间的tick数,等于较长的偏移量减去较短的偏移量。如果计划表重复,那么最后一个和第一个到期点之间的Delay等于Final Delay加上Initial Offset 。
调度表的结构
到期点行为
从调度表的结构图可以看出,到期点的处理有两种,分别是激活任务或者设置事件
- ActivateTask()
- SetEvent()