项目

一般

简介

功能 #3387

稚媛 黄 更新于 3 个月 之前

参考软件“DR-003701-707985 Unused Memory Execution” 
 需求描述 
 本设计规则支持 RQT-003701-705381《未使用内存执行监控(Unused Memory Execution)》,适用于包含以下类型软件的所有电子控制模块: 
     非AUTOSAR操作系统(Non-AUTOSAR OS) 
     AUTOSAR Classic 平台 
     AUTOSAR Adaptive 平台 
     并作为该RQT的合规性实施方法。 
 核心要求: 
     若执行未使用的可执行内存地址,必须在执行监控器(execution supervisor,如看门狗)超时时间的2倍时间内触发微控制器硬件复位,且此时间需进一步受功能安全要求约束。 
     若程序计数器(program counter)取值超出编程地址范围(programmed address range),微控制器硬件复位(microcontroller hardware reset)是最安全的恢复方法。仅通过执行全部或部分程序初始化序列(program initialization sequence)作为运行时恢复措施(runtime recovery action)而不进行硬件复位是不充分的,因为程序计数器损坏(program counter corruption)属于根本性故障(fundamental fault),无法在发生损坏的同一电源周期(power cycle)内信任程序化异常处理(programmatic exception handling)。 
     微控制器硬件复位及后续冷启动初始化(cold boot initialization)是应对并防止运行环境级异常(operating environment level exceptions)复发的稳健、普适且场景适配的恢复方法。 
 注: 子微控制器(sub-microcontroller)的数据或可执行映像不属于未使用内存——其应被视为大型数据表(large data table)的类比。 
 强制复位实现方法(当执行未使用内存时): 
 由于内存对齐(memory alignment)可能引发问题,仅允许使用与对齐无关的指令。依赖执行监控器(execution supervisor)超时的策略不可用,因为当程序执行超出范围(fundamental error)时无法保证监控器的正常运行。福特核准的强制复位技术如下(其他技术须按"分析/讨论"章节的例外流程实施): 
 将内存填充为SWl指令。在SWl中强制执行复位。 
 分析/讨论 
 本设计规则支持所有带软件的电子模块的RQT-003701-705381“未使用的内存执行”,是符合RQT的一种方法。 
 设计规则关闭机制:这些设计规则的关闭是软件技术设计的完成 
 审查(TDR),并通过“SWQA常见TDR检查表”问题解决: 
 IRH08004            A) 您如何确保在重置时初始化未使用的RAM? 
                           B) 如何确保RAM变量在重置时初始化? 
 IRH08012                RAM可执行性(RAM Executability) 
                           A) RAM是否可执行?(包含堆栈) 
                           B) 若未使用的可执行RAM被执行,MCU复位的最大延迟时间(最坏情况时间)是多少? 
                           C) 若在MCU堆栈中发生执行,描述您系统的反应。

返回