存储器在AUTOSAR架构中是不可缺少的一部分,其内部既是源码存放的空间,也有程序运行时使用的空间。目前存储器类型主要有两种,分别是EEPROM和FLASH。这两种存储器各有优劣,并且在AUTOSAR中由不同的驱动程序驱动。
存储器在AUTOSAR中包含以下模块:
NvM:提供存储管理服务
MemIf:NvM访问不同模块的抽象层
Ea:基于Eep的Nv Block管理
Fee:基于Flash的Nv Block管理
Eep:内部或外部的Eep驱动程序
Fls:内部或外部的Flash驱动程序
NvM模块通过MemIf模块实现对每一个数据块的管理,由MemIf决定数据块调用下层哪一个驱动。
一、NvM简介
在单片机中,对存储器的访问需要考虑以下几个方面:
1.访问存储器需要驱动程序,没有驱动将无法识别该硬件;
2.在访问存储器时,是对存储器内的地址进行访问,所以要对存储器进行地址管理;
3.对于Flash存储器,每次刷写都会减少其固件的使用次数,所以不能频繁对同一部分进行刷写访问,这就要对刷写位置进行管理;
4.对大数据进行读写时,会持续占用处理器,所以需要对大数据读写进行管理,进行异步读写。
所以,在AUTOSAR中,存储器需要NvM模块来进行管理。
二、NvM作用
1.掉电后能保护Nv数据;
2.上电时能从非易失拷贝到RAM;
3.应用程序访问的是Nv数据的拷贝;
4.非易失数据能随时读写;
5.异步操作不阻塞其他程序;
6.用户不关注底层的地址信息;
7.支持用户回调接口;
8.数据备份与恢复机制。