NvM RAM、ROM Default 与 NV Block 数据模型¶
核心结论¶
NvM 管理的是逻辑非易失数据块。RAM Block 是运行时镜像,ROM Block 是可选默认数据来源,NV Block 是非易失保存的数据对象;它们不是三个等价的备份副本。实际块结构与启动恢复行为取决于配置。
数据流¶
flowchart TD
A[SW-C 更新 RAM 镜像] --> B{是否需要持久化}
B -- 否 --> C[保留运行时数据]
B -- 是 --> D[NvM 写入请求]
D --> E[NvM 异步作业]
E --> F[MemIf]
F --> G[Fee 或 Ea]
G --> H[Fls 或 Eep]
H --> I[检查作业状态与错误]
该图是常见路径示意,不表示每个 ECU 都同时使用 Fee、Ea、Fls 和 Eep。
RAM / ROM / NV 对照¶
| 对象 | 主要职责 | 调试重点 |
|---|---|---|
| RAM Block | 应用和 BSW 当前使用的数据 | 地址、写入时机、RAM 镜像是否与 NV 内容同步 |
| ROM Block | 配置提供的默认数据,可参与缺省恢复 | 默认值配置、有效 NV 数据缺失时的恢复策略 |
| NV Block | 跨复位/掉电保存的数据 | 读写作业状态、底层存储、校验与冗余行为 |
排障步骤¶
- 查看目标 NvM Block 的 RAM 地址、ROM 地址、NV Block 数量、管理类型、CRC/校验、默认值和初始化回调配置。
- 核实启动流程中的 NvM 初始化与 ReadAll,以及项目要求的完成判据。
- 同时观察 RAM 镜像、NvM 作业状态与 Fee/Ea/Fls/Eep 相关状态,不要只凭最终 RAM 数值判断数据来源。
- 验证 RAM 修改后未写入即复位、写入排队时断电、写入中断电、写入完成后断电等边界。
- 如果使用冗余、CRC 或默认值恢复,分别注入无效数据,确认恢复路径和诊断记录。
Immediate 与 Periodic 策略提醒¶
不要仅凭“关键数据”标签机械地选 Immediate。要评估数据丢失后果、更新频率、Flash 擦写寿命、写入队列与调度能力、关机预算和可接受的数据回退窗口。调用写入 API 不代表数据已经物理持久化,必须按项目定义确认作业完成状态。