• 106查看
  • 0回复

[Autosar] 聊一聊Autosar OS时间保护机制

[复制链接]

该用户从未签到

发表于 25-4-2024 20:04:44 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


新年第一差和第一篇,祝大家龙年工作顺利!SC2和SC4都支持时间保护功能。在SC4中,属于untrusted OS-Applications的所有任务和中断都需要配置时间保护属性,而trusted OS-Applications中的任务和中断可以选择性配置。我们知道一个任务或者中断的响应(response)时间包括三个部分:执行时间、被打断时间(如被高优先级抢占的时间)以及阻塞(block)时间(如autosar中的resource被其他任务占用,此时处于阻塞)。如下图所示
聊一聊Autosar OS时间保护机制w1.jpg

我们为什么不能用Deadlines来作为时间保护的基准呢?假设我们有三个任务A/B/C,其优先级、执行时间和Deadline如下所示。
聊一聊Autosar OS时间保护机制w2.jpg

聊一聊Autosar OS时间保护机制w3.jpg

图(a)显示了所有任务正确的执行情况下,都可以满足它们的deadline,图(b)中假如任务A和且任务B的第二次执行比预期提前了2个ticks,在这种情况下,任务A和B虽然运行时机不正确但都满足了各自的deadline,任务C虽然运行时机正确但是却没有满足deadline。因此假如用deadline来作为时间保护的基准就会出现错报。Autosar OS对于时间保护提供了以下服务:1)执行时间不能超过设定值;2)持有锁的时间不能超过给定值;3)关中断的时间不能超过给定值;4)运行时间间隔不能超过给定值。对于服务1)已在上文描述其<<Autosar OS和freeRTOS的任务运行时间监测机制>>详细描述。对于服务2)和服务3)而言,当任务或者中断在执行过程中有多次持有锁或者关闭中断的动作时,只统计运行时间最长的来作为超时判断。关于服务4),Autosar OS定义了Time Frames来捕获任务或者中断的连续到达时间间隔。对于任务而言,AutosarOS通过监测任务从挂起(阻塞)态或者等待态(扩展任务支持)到跳转至就绪态的时间间隔;对于中断而言,AutosarOS通过监测中断发生的间隔时间来实现。每次任务或者中断开始时,OS会记录本次开始的时间,然后根据上次到达的时间计算出来的时间间隔大于给定值,那么就会报错。需要注意的是time frame需要大于任务的执行时间,否则任务就算一直占用CPU也无法满足需求!这个时候你需要从架构层面来检查配置:
1)是不是有某个任务或者中断一直在占用CPU;

2)是不是其任务和中断加起来占用的CPU等于100%。

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 8-5-2024 12:20 , Processed in 0.201161 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.