背景:
1.中断周期的建模
在单片机中中断和任务是两类处理数据的主要形式,中断的形式主要分为周期和时间两类。比如,LIN中断是根据调度表的周期去响应的,滚轮这种则是根据外部事件响应的。
2.响应时间的建模
中断的响应时间建模和任务的响应时间的建模。
设计:
- 实际测量或者理论估算。其中实际测量则是两次最短的事件周期,理论估算可用于更为严谨的计算。
- 中断的的响应事件建模
① 测量中断的WCET
② 根据中断类型 Cat1/Cat2 计算Effective WCET,一般Cat1会设计成2us,Cat2则是4us,当然这些参数取决于使用的操作系统。Cat2因为涉及到os调度时间会长于Cat1
③ ResponseTime的时间建模:
ⅠWCET时间
Ⅱ阻塞时间 max(B, I),其中B为critical section区域的最大阻塞时间,这个可以根据实际测量去设置.I为所有优先级低于目标任务的其他任务抢占和延迟目标任务的总时间。注意critical section一般会被封装供应用调用。
Ⅲ高优先级抢占时间,即高优先级任务的Effective WCET - 任务的响应时间建模
① 任务的WCET
② 当前任务的响应时间被除所有优先级高于目标任务的其他任务的周期时间,值再乘以其他任务的WCET时间。可理解为能被抢占的次数乘以抢占的时间。
③ 把所有中断的占比乘以当前任务的WCET作为中断的裕量
结论:
基于标准RTA的迭代公式我们可以将复杂的场景抽象,计算出可视化的cpuload数据,帮助我们在实际工程项目中分析问题优化架构。
\[R_i = B_i + C_i + \sum_{J \in HP(i)} C_j \cdot \left\lceil \frac{R_i}{P_j} \right\rceil
\]
R Response time
B Blocking time
C Execution time
p Period
HP() Higher priority than
i,j Task indices
不一定完全遵循该式,但是计算的数学模型可以依据具体项目参考优化。