接上文:
2.3逻辑监控
逻辑监控是一种用于检查软件正确执行的技术,侧重于控制流错误。
在应用程序的无差错执行期间,控制流错误会导致与有效(即编码/编译)程序序列的背离。如果以不正确的顺序处理一个或多个程序指令,或者甚至根本不处理,则会发生不正确的控制流。例如,控制流错误可能导致数据不一致、数据损坏或其他软件故障。
2.3.1故障模式
根据ISO26262,以下与时序和执行相关的故障可被视为 SWC之间干扰的原因:
- 执行阻塞
- 死锁
- 活锁
- 执行时间分配不正确
- 软件要素之间的同步不正确
程序序列的逻辑和时间符号在汽车行业中使用,例如在ISO26262中提到,作为检测处理单元(即CPU,微控制器)故障的度量,以及作为检测硬件时钟故障的度量。
程序序列执行中的错误(即程序序列执行无效)可能导致数据损坏、进程崩溃或违反故障静默。ISO26262、IEC61508、MISRA要求/建议对程序序列进行逻辑监控。
2.3.2描述
对程序执行序列的逻辑监控允许在应用程序的无差错执行期间检测导致与有效程序序列背离的错误。如果以不正确的顺序处理单个或多个程序指令,或者根本没有处理,则会发生不正确的程序流。
Watchdog Manager监控AUTOSAR ECU中应用软件的执行。监控的逻辑单元称为监控单元。在AUTOSAR中,受监控实体和AUTOSAR构建模块之间没有固定的关系。通常,受监控实体可以表示一个SWC或一个可运行的SWC、BSW模块或CDD,具体取决于开发者的选择。
与受监控实体中的逻辑监控相关的位置定义为检查点。受监控实体的代码与Watchdog Manager的函数调用交互。这些调用用于向Watchdog Manager报告已到达检查点。
每个受监控实体都有一个或多个检查点。受监控实体的检查点和检查点之间的过渡形成一个图形。
图形可以有一个或多个始检查点和一个或多个终检查点。假设检查点属于同一图形,则从任何始检查点开始到最后一个终检查点结束的任何顺序都是正确的。
受监控实体中的图形,称为内部图形。来自不同监控实体的检查点可以通过外部转移连接,从而形成外部图形。
图11显示了While-Loop的图形表示形式,它由检查点和转移组成。
图11:While-Loop的抽象控制流图
在运行时,Watchdog Manager将验证受监控实体是否根据配置的图形执行。这称为逻辑监控。
此外,Watchdog Manager可以验证图形中检查点和转移的时间。
检查点之间的转移时间可以通过时限监控进行验证,而逻辑监控则验证检查点的正确顺序。
2.3.3检测与响应
在设计阶段,将识别有效的程序序列并对其进行建模。在运行时,Watchdog Manager使用此模型来监控或监控序列的正确执行。
Watchdog Manager为时序和逻辑程序流监控提供了三种机制:时限监控、活体监控和逻辑监控。
监控机制是静态配置的。对于受监控实体的监控,可以采用多种监控机制。
根据每个已启用机制的结果,计算受监控实体的状态(称为“局部状态”)。当确定每个受监控实体的状态时,然后根据每个局部监控状态,确定整个MCU的状态(称为全局监控状态)。
根据每个受监控实体的局部监控状态和全局监控状态,Watchdog Manager会启动一系列机制,以从监控失败中恢复。这些范围从受监控实体内的本地错误恢复到ECU的全局重置。
可以采用以下错误恢复机制:
受监控实体中的错误处理
如果受监控实体是SWC或CDD,则Watchdog Manager可以通过RTE模式机制通知受监控实体监控失败。然后,受监控实体可以采取措施从该故障中恢复。
Watchdog Manager可能会在检测到监控故障时向诊断事件管理器(DEM)注册一个条目。受监控实体可能会根据该错误条目执行恢复操作。分区关闭
如果Watchdog Manager模块在位于不受信的分区中的受监控实体中检测到supervision故障,则Watchdog Manager模块可以通过调用BswM来请求分区关闭。
通过硬件看门狗重置
Watchdog Manager向看门狗接口指示看门狗接口何时不再触发硬件看门狗。在硬件看门狗超时后,硬件看门狗将重置ECU或MCU。这导致ECU和/或MCU硬件的重新初始化以及软件的完全重新初始化。
- 立即复位MCU
如果需要对监控故障立即做出全局响应,Watchdog Manager可能会直接导致MCU复位。这将导致MCU硬件和整个软件的重新初始化。
注:AUTOSAR文档“应用程序级错误处理说明”提供了有关错误处理的其他信息。在文档中,解释了如何执行错误处理以及可以从何处获取所需数据(例如替代值)。此外,本文档还提供了有关如何在AUTOSAR中执行 OS-Applications/分区终止和重新启动的详细说明(用户手册)。
2.3.4限制
- 对于逻辑监控,Watchdog Manager不支持任何重叠的图形-一个检查点应属于最多一个图形。这是能够将收到的检查点通知分配给图形所必需的。
- Watchdog Manager不支持对并发执行的监控实体进行逻辑监控,因为它一次只跟踪图形的一个实例。
为了关闭或重新启动(作为错误响应)包含受监控实体的分区,集成代码( OS-Applications的重新启动任务)必须通过调用Watchdog Manager的可用功能来停用(或停用+激活)所有受监控实体(或停用+激活)所涉及的分区。
引用来源:AUTOSAR document 2021
作者: 杨玉柱
来源:智能汽车开发者平台
微信公众号:
推荐阅读:
更多汽车电子干货请关注汽车电子与软件专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。