# Flash 测试需求规范 > **文档标题**: Requirements on Flash Test > **AUTOSAR CP Release**: 4.4.0 > **文档编号**: 260 > **文档类型**: SRS (Software Requirements Specification) --- ## 文档标识 | 项目 | 内容 | |------|------| | Document Title | Requirements on Flash Test | | Document Owner | AUTOSAR | | Document Responsibility | AUTOSAR | | Document Identification No | 260 | | Document Status | Final | | Part of AUTOSAR Standard | Classic Platform | | Part of Standard Release | 4.4.0 | --- ## 文档变更历史 | 日期 | 版本 | 变更者 | 变更描述 | |------|------|--------|----------| | 2018-10-31 | 4.4.0 | AUTOSAR Release Management | 编辑性修订 | | 2017-12-08 | 4.3.1 | AUTOSAR Release Management | 移除 HIS 引用;将"default error"重命名为"development error";小幅更正/澄清/编辑性修订 | | 2016-11-30 | 4.3.0 | AUTOSAR Release Management | 编辑性修订 | | 2014-10-31 | 4.2.1 | AUTOSAR Release Management | 编辑性修订 | | 2013-10-31 | 4.1.2 | AUTOSAR Release Management | 编辑性修订 | | 2013-03-15 | 4.1.1 | AUTOSAR Administration | 将需求与 BSW Feature 文档关联;根据 TPS_StandardizationTemplate 更新需求格式 | | 2010-02-02 | 3.1.4 | AUTOSAR Administration | 初始版本发布 | --- ## 目录 1. [文档范围](#1-文档范围) 2. [使用的约定](#2-使用的约定) 3. [缩略语](#3-缩略语) 4. [功能概述](#4-功能概述) 5. [需求追溯](#5-需求追溯) 6. [需求规范](#6-需求规范) - 6.1 [功能性需求](#61-功能性需求) - 6.2 [非功能性需求](#62-非功能性需求) 7. [参考文献](#7-参考文献) --- ## 1 文档范围 本文档规定了 Flash Test 模块的需求。 --- ## 2 使用的约定 - AUTOSAR 文档中需求的表示形式遵循 [TPS_STDT_00078] 中规定的表格格式。 - 需求中应使用以下特定语义(基于 IETF)。 本文档中的关键字 "MUST"、"MUST NOT"、"REQUIRED"、"SHALL"、"SHALL NOT"、"SHOULD"、"SHOULD NOT"、"RECOMMENDED"、"MAY" 和 "OPTIONAL" 需按下述方式解读: - **SHALL**:规范的绝对要求 - **SHALL NOT**:规范的绝对禁止 - **MUST**:由于法律问题而构成的规范绝对要求 - **MUST NOT**:由于法律约束而构成的规范绝对禁止 - **SHOULD** / **RECOMMENDED**:特定情况下可能存在忽略的合理理由 - **SHOULD NOT** / **NOT RECOMMENDED**:特定情况下可能存在该行为可接受的合理理由 - **MAY** / **OPTIONAL**:真正可选 --- ## 3 缩略语 | 缩略语 | 描述 | |--------|------| | ECU | Electric Control Unit(电子控制单元) | | EOL | End Of Line(下线) | | CRC | Cyclic Redundancy Check(循环冗余校验) | | MCAL | Microcontroller Abstraction Layer(微控制器抽象层) | | MCU | Microcontroller Unit(微控制器单元) | | NMI | Non maskable interrupt(不可屏蔽中断) | | OS | Operating System(操作系统) | | DEM | Diagnostic Event Manager(诊断事件管理器) | | SFR | Special Function Register(特殊功能寄存器) | | RTE | Runtime environment(运行时环境) | | WP | Work Package(工作包) | | ECC | Error Correction Code(纠错码) | | 缩写 | 描述 | |------|------| | STD | Standard(标准) | | REQ | Requirement(需求) | | UNINIT | Uninitialized(未初始化) | | 术语 | 描述 | |------|------| | signature | 特定内存块内容的唯一计算结果 | | Memory scrubbing | 自动顺序数据读取以触发检测/验证机制(典型如 ECC) | | Invariable memory(不变内存) | 不变内存可以是程序 Flash、程序 SRAM、锁定缓存和 ROM | | Background test(后台测试) | 由调度程序周期性调用且可中断,测试在多个调度任务上分散执行 | | Foreground test(前台测试) | 通过用户调用启动 | | Test interval(测试间隔) | 后台模式下完整 Flash 测试的间隔 | --- ## 4 功能概述 本软件模块提供测试不变内存的算法。不变内存可以是数据/程序 Flash、程序 SRAM、锁定缓存,要么嵌入微控制器中,要么通过内存映射与微控制器相连。为简化,该软件模块称为 Flash Test Driver。 测试服务可在 MCU 初始化后随时执行,由 Flash Test Driver 的用户选择合适的测试算法和正确的执行位置,以满足系统的安全需求。测试服务本身依赖于系统的存储概念。因此,不同测试算法的可用性是可配置的。 Flash Test 驱动旨在集成于整体安全概念中,本身不会提供所需的诊断覆盖率。 --- ## 5 需求追溯 | 需求 | 描述 | 满足者 | |------|------|--------| | RS_BRF_00129 | AUTOSAR 应支持数据损坏检测与保护 | SRS_FlsTst_14200~14209、14211~14217、14219、14221~14225 | | RS_BRF_01024 | AUTOSAR 应为公共符号提供命名规则 | SRS_FlsTst_14225 | | RS_BRF_02168 | AUTOSAR 诊断应提供异常运行条件的集中分类和处理 | SRS_FlsTst_14223 | | RS_BRF_02224 | AUTOSAR 应支持运行时硬件测试 | SRS_FlsTst_14200, 14201, 14208, 14209, 14211~14217, 14219, 14221~14225 | --- ## 6 需求规范 ### 6.1 功能性需求 Flash Test 模块使用 Diagnostic Event Manager (DEM) 进行错误报告。错误通过 DEM API(BSW,`Dem_SetEventStatus()`)报告。开发错误报告给 Default Error Tracer (DET)。 #### 6.1.1 配置 本章列出对模块可配置性的需求。 ##### 6.1.1.1 [SRS_FlsTst_14222] 内存块测试应被配置 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 配置待测试的内存块。块大小应可配置。应可配置多个 Flash 块区域(例如通过配置其起始与结束地址)。此外,如适用,应为每个内存块配置已存储签名或校验和位置的链接。 | | 理由 | 定义待测试的内存块。 | | 用例 | -- | | 依赖 | -- | | 支持材料 | -- | ⌋(RS_BRF_02224, RS_BRF_00129) ##### 6.1.1.2 [SRS_FlsTst_14200] Flash 测试服务应被配置 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 应可配置每个内存块可使用的测试算法。 | | 理由 | 使 Flash 测试服务适应系统存储概念并优化驱动代码 | | 用例 | -- | | 依赖 | -- | | 支持材料 | AUTOSAR_SWS_RAM_Test.pdf (AUTOSAR Release 2.1) | ⌋(RS_BRF_02224, RS_BRF_00129) ##### 6.1.1.3 [SRS_FlsTst_14201] 应支持后构建配置 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 应支持后构建配置 | | 理由 | 1. 用于目标代码交付;2. Flash 测试配置依赖于地址,可能随 SW 版本而变化 | | 用例 | 为不同 ECU 变体加载配置 | | 依赖 | -- | | 支持材料 | AUTOSAR_SWS_RAM_Test.pdf (AUTOSAR Release 2.1) | ⌋(RS_BRF_02224, RS_BRF_00129) #### 6.1.2 初始化 未收集特殊初始化需求。 #### 6.1.3 正常运行 本章列出模块"正常"功能的需求。 ##### 6.1.3.1 [SRS_FlsTst_14202] 应使用 ECC 检查数据完整性 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 主动使用 ECC 测试数据完整性。应提供算法,在读取字时检查数据和扩展到内存字的冗余位的正确性。如果不变内存支持此机制,此算法可适用。测试在出现任何故障时应报告 DEM 错误。 | | 理由 | 检测 16 位字内的单位故障、双位故障、三位故障 | | 用例 | SW ECC 或 HW ECC。可用于"内存清洗"。 | | 依赖 | -- | | 支持材料 | -- | ⌋(RS_BRF_00129) ##### 6.1.3.2 [SRS_FlsTst_14203] 应使用校验和检查数据完整性 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 使用校验和检查数据完整性。应提供算法,重新计算内存块的校验和,并与存储在不变内存中定义地址处的校验和进行比较。如果 Flash 内存包含校验和,此算法可适用。已存储校验和位置的链接应可配置。测试在校验和不匹配时应报告 DEM 错误。 | | 理由 | 检测位故障 | | 用例 | -- | | 依赖 | SRS_FlsTst_14222 | | 支持材料 | -- | ⌋(RS_BRF_00129) ##### 6.1.3.3 [SRS_FlsTst_14204] 应使用 CRC 签名(8 位长度)检查数据完整性 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 应提供算法,使用 CRC 算法重新计算内存块的签名,并与存储在不变内存中定义地址处的签名进行比较。CRC 校验和长度应为 8 位字。如果 Flash 内存包含块签名,此测试可适用。已存储签名位置的链接应可配置。测试在签名不匹配时应报告 DEM 错误。 | | 理由 | 检测字内的位故障以及 99.6% 的所有可能位故障 | | 用例 | -- | | 依赖 | -- | | 支持材料 | -- | ⌋(RS_BRF_00129) ##### 6.1.3.4 [SRS_FlsTst_14205] 应使用 CRC 签名(16 位长度)检查数据完整性 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 应提供算法,使用 CRC 算法重新计算内存块的签名,并与存储在不变内存中定义地址处的签名进行比较。CRC 校验和长度应为 16 位字。 | | 理由 | 检测字内的位故障以及 99.998% 的所有可能位故障 | | 用例 | -- | | 依赖 | -- | | 支持材料 | -- | ⌋(RS_BRF_00129) ##### 6.1.3.5 [SRS_FlsTst_14206] 应使用 CRC 签名(32 位长度)检查数据完整性 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 应提供算法,使用 CRC 算法重新计算内存块的签名,并与存储在不变内存中定义地址处的签名进行比较。CRC 校验和长度应为 32 位字。 | | 理由 | 检测字内的位故障以及 99.99999995% 的所有可能位故障。 | | 用例 | -- | | 依赖 | -- | | 支持材料 | -- | ⌋(RS_BRF_00129) ##### 6.1.3.6 [SRS_FlsTst_14207] 应通过比较重复内存块检查数据完整性 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 应提供测试以比较两个相同的内存块。测试用例在内存重复时适用。测试在不匹配时应报告 DEM 错误。 | | 理由 | 根据块复制技术检测所有位故障 | | 用例 | -- | | 依赖 | -- | | 支持材料 | -- | ⌋(RS_BRF_00129) ##### 6.1.3.7 [SRS_FlsTst_14208] 后台 Flash 测试应可中断 ⌈ | 字段 | 内容 | |------|------| | 类型 | Changed | | 描述 | -- | | 理由 | 测试旨在用于调度的后台任务。因此不应阻塞其他操作。 | | 用例 | -- | | 依赖 | -- | | 支持材料 | AUTOSAR_SWS_RAM_Test.pdf (AUTOSAR Release 2.1) | ⌋(RS_BRF_02224, RS_BRF_00129) ##### 6.1.3.8 [SRS_FlsTst_14209] 待测内存应被划分为更小的部分 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 待测内存应被划分为更小的单独部分,可根据系统需要进行调度。 | | 理由 | 与并发任务共享 CPU 资源 | | 用例 | -- | | 依赖 | -- | | 支持材料 | AUTOSAR_SWS_RAM_Test.pdf (AUTOSAR Release 2.1) | ⌋(RS_BRF_02224, RS_BRF_00129) ##### 6.1.3.9 [SRS_FlsTst_14211] Flash 测试执行状态应可用 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | Flash 测试执行的当前状态应通过 get status 接口可用。此功能应为可选。 | | 理由 | 能够监视当前运行的测试以进行测试流控制。 | | 用例 | -- | | 依赖 | -- | | 支持材料 | AUTOSAR_SWS_RAM_Test.pdf (AUTOSAR Release 2.1) | ⌋(RS_BRF_02224, RS_BRF_00129) ##### 6.1.3.10 [SRS_FlsTst_14212] Flash 测试执行完成应通过通知机制提供 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 关于测试已完成的信息应通过通知机制提供给用户。此功能应为可选。 | | 理由 | 能够指示当前运行测试的完成以进行测试流控制。 | | 用例 | -- | | 依赖 | -- | | 支持材料 | AUTOSAR_SWS_RAM_Test.pdf (AUTOSAR Release 2.1) | ⌋(RS_BRF_02224, RS_BRF_00129) ##### 6.1.3.11 [SRS_FlsTst_14213] 应提供已完成测试的签名/校验和计算 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 已完成测试的签名/校验和计算应提供给用户。此功能应为可选。 | | 理由 | 已完成测试的通过/失败判定可在本软件模块之外做出。 | | 用例 | 通过或失败判定可由外部安全单元完成 | | 依赖 | -- | | 支持材料 | AUTOSAR_SWS_RAM_Test.pdf (AUTOSAR Release 2.1) | ⌋(RS_BRF_02224, RS_BRF_00129) ##### 6.1.3.12 [SRS_FlsTst_14214] 应提供 Flash 测试执行结果服务 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 应在 SW 请求时提供关于已完成测试的信息。此功能应为可选。 | | 理由 | 能够监视已完成测试以用于诊断目的。 | | 用例 | -- | | 依赖 | -- | | 支持材料 | AUTOSAR_SWS_RAM_Test.pdf (AUTOSAR Release 2.1) | ⌋(RS_BRF_02224, RS_BRF_00129) ##### 6.1.3.13 [SRS_FlsTst_14215] 应可能暂停 Flash 测试执行 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 应提供服务以暂停正在运行的 Flash 测试。暂停将在下一个原子边界停止测试执行并保存中间状态。此功能应为可选。 | | 理由 | 在更高优先级任务出现时暂停后台 Flash 测试任务。 | | 用例 | -- | | 依赖 | -- | | 支持材料 | AUTOSAR_SWS_RAM_Test.pdf (AUTOSAR Release 2.1) | ⌋(RS_BRF_02224, RS_BRF_00129) ##### 6.1.3.14 [SRS_FlsTst_14216] 暂停的 Flash 测试执行应可恢复 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 应提供服务以恢复已暂停的 Flash 测试。此功能应为可选。 | | 理由 | 完成已暂停的 Flash 测试。 | | 用例 | -- | | 依赖 | -- | | 支持材料 | AUTOSAR_SWS_RAM_Test.pdf (AUTOSAR Release 2.1) | ⌋(RS_BRF_02224, RS_BRF_00129) ##### 6.1.3.15 [SRS_FlsTst_14217] 需要时应停止 Flash 测试执行 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 应提供服务以停止 Flash 测试。测试应被取消,重新启动测试应从头开始。 | | 理由 | -- | | 用例 | 在出现 DEM 错误时,用户可取消正在运行的 Flash 测试执行 | | 依赖 | -- | | 支持材料 | -- | ⌋(RS_BRF_02224, RS_BRF_00129) ##### 6.1.3.16 [SRS_FlsTst_14219] 应提供前台 Flash 测试 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 应提供服务以前台模式测试内存块。此功能应为可选。 | | 理由 | -- | | 用例 | 启动阶段测试完整程序 Flash;关键操作前测试特殊内存块 | | 依赖 | -- | | 支持材料 | -- | ⌋(RS_BRF_02224, RS_BRF_00129) ##### 6.1.3.17 [SRS_FlsTst_14223] 应报告 Flash 测试错误细节 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 应提供服务以报告从 ECC 测试中检测到的特定错误数据。

该服务应为可选,适用于以下情况:
- 硬件配备了不变内存的 ECC
- 硬件能够报告硬件特定错误细节
- 调用方需要此数据

调用方负责解释此服务提供的数据。 | | 理由 | 这些详细错误数据用于诊断目的。 | | 用例 | ECU 启动期间应测试不变内存的 ECC 故障。出现故障时,此功能应用于收集硬件特定的故障数据,如 ECC 故障的故障地址 | | 依赖 | -- | | 支持材料 | -- | ⌋(RS_BRF_02224, RS_BRF_00129, RS_BRF_02168) ##### 6.1.3.18 [SRS_FlsTst_14224] 应测试 ECC 电路 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 应提供服务以测试 ECC 电路并报告测试结果。

该服务应为可选,适用于以下情况:
- 硬件配备了不变内存的 ECC
- 硬件提供测试 ECC 电路的机制
- 调用方需要此测试 | | 理由 | 在安全相关应用中,可能有必要确定硬件内存测试机制功能正常。这可以通过验证可用电路(ECC)无错误运行来实现。 | | 用例 | ECU 启动期间验证 ECC 硬件逻辑。 | | 依赖 | -- | | 支持材料 | -- | ⌋(RS_BRF_02224, RS_BRF_00129) ##### 6.1.3.19 [SRS_FlsTst_14225] 每个 Flash 测试间隔应具有一个标识符 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 每个 Flash 测试间隔应具有一个标识符,该标识符应在后台模式下每次启动有效测试间隔时递增。Flash 测试间隔的值应提供给上层。标识符的结束值应可配置。 | | 理由 | 将测试结果或测试签名分配给一个测试间隔,以便上层监视 ECU 测试流。 | | 用例 | -- | | 依赖 | -- | | 支持材料 | -- | ⌋(RS_BRF_02224, RS_BRF_00129, RS_BRF_01024) #### 6.1.4 关机操作 未收集关机操作的专用需求。 #### 6.1.5 故障操作 本软件模块未收集故障/恢复操作的专用需求。 ### 6.2 非功能性需求 未收集专用非功能性需求。 #### 6.2.1 时序需求 未收集专用时序需求。 #### 6.2.2 资源使用 ##### 6.2.2.1 [SRS_FlsTst_14221] 测试期间被测试内存内容不应有效 ⌈ | 字段 | 内容 | |------|------| | 类型 | Valid | | 描述 | 测试基于内容,要求测试期间内容不变。这必须由调用方确保。 | | 理由 | 被测内存块的内容在测试期间不应有效 | | 用例 | 运行时测试数据 Flash | | 依赖 | -- | | 支持材料 | -- | ⌋(RS_BRF_02224, RS_BRF_00129) --- ## 7 参考文献 ### AUTOSAR 交付物 - [DOC_LAYERED_ARCH] Layered Software Architecture, AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf - [AUTOSAR_GLOSSARY] Glossary, AUTOSAR_TR_Glossary.pdf - [SRS_BSW_GENERAL] General Requirements on Basic Software Modules, AUTOSAR_SRS_BSWGeneral.pdf - [SRS_BSW_SPAL] General Requirements on SPAL, AUTOSAR_SRS_SPALGeneral.pdf - [SWS_BSW] Specification of Diagnostic Event Manager, AUTOSAR_SWS_DiagnosticEventManager.pdf - [SWS_BSW] Specification of Default Error Tracer, AUTOSAR_SWS_DefaultErrorTracer.pdf - [SWS_BSW_MCAL] Specification of RAM Test, AUTOSAR_SWS_RAMTest.pdf - [SWS_BSW] Specification of ECU state manager, AUTOSAR_SWS_ECUStateManager.pdf - [TPS_STDT_0078] Software Standardization Template, AUTOSAR_TPS_StandardizationTemplate.pdf --- ## 翻译说明 - 本文档完整翻译自 AUTOSAR_SRS_FlashTest v4.4.0(Document ID 260)。 - 保留所有需求 ID(SRS_FlsTst_xxxxx、RS_BRF_xxxxx)。 - 保留 AUTOSAR 方框符 ⌈⌋。 - 模块缩写(FlsTst、Fls、ECC、CRC、DEM、DET 等)保持英文。