概述
NvM(NVRAM Manager)属于AUTOSAR BSW中一个基本软件模块,该模块用来抽象非易失性(non-volatile)存储的使用,可以是EEPROM或者Flash。为了避免数据访问时的冲突以及不一致,NvM是唯一可以访问非易失性存储的模块。在应用层,采用基于block形式对NvM进行访问。
NvM访问MEMIF(Memory Abstraction Interface),其抽象了底层存储设备,比如Flash模拟的EEPROM(FEE)或者EEPROM(EA)。所以说NvM是硬件独立的。FEE和EA抽象了对Flash以及EEPROM驱动的访问。NvM使用句柄来识别底层访问的存储设备类型是FEE或者EA。
NvM提供了同步/异步的服务,用于NV数据的管理和维护(init/read/write/control)。
AUTOSAR Memory Stack层级关系图如下:
NvM使用CRC例程(8/6/32 bit)为NVRAM blocks作为配置项去检查和生成CRC。
为什么需要NV Data
在车辆ECU单元中,有一些不变的信息比如车辆VIN码,还有一些变化的信息比如车辆行驶里程,车辆行驶中产生的故障DTC等需要保存在存储中不能丢失,这些数据都需要保存在NV block中,另外由于NV Memory有写次数的限制(比如10,0000次写寿命),所以需要为了维护产品更长的生命周期,需要将NV