1 简介和功能概述
AUTOSAR基础软件模块“RAM测试”的功能、API和配置。
RAM测试是对RAM单元的物理健康状况的测试。它不是为了测试RAM的内容。用于寄存器的RAM也经过测试。
在本文档中,RAM单元被理解为内存单位,可由处理器单独寻址。因此,对于16位处理器,单元大小(以位为单位)例如为16。
存在不同的RAM测试算法。它们针对不同的故障模型集,实现不同的覆盖率,导致不同的运行时间,并且具有破坏性或非破坏性。覆盖率还取决于底层物理RAM架构。ISO 26262仅区分了三个基本覆盖率级别:低(60%)、中(90%)和高(99%)[11]。AUTOSAR规范也使用了这种基本区别。
必须进行ECU安全分析,以确定需要哪种RAM测试诊断覆盖率(低、中或高)。然后在编译时选择适当的RAM测试算法和其他配置参数。在运行时,应用软件可以在编译的算法之间(以及其他参数之间)进行选择。
RAM测试可以由测试环境同步调用(以下称为“前台测试”),也可以由OS任务或其他循环调用方法循环调用(以下称为“后台测试”)。测试环境可以选择测试参数、启动和停止测试以及获取状态报告。开发错误会报告给默认错误跟踪器(DET),生产错误会报告给诊断事件管理器(DEM)。
RamTst模块由用于后台测试的RamTst_MainFunction()、用于前台测试的API、多个配置和状态API(应用程序编程接口)以及多个配置容器组成。
RamTst_MainFunction()是用于后台测试的调度函数。
- 对于后台测试,RamTst_MainFunction()由调度程序,并且可以中断。一个完整的测试包括使用一个在当前选定的配置定义的内存空间上执行算法。整个测试将分为多次预定的通话进行。
- 对于前台测试,RamTst_RunFullTest()或RamTst_RunPartial