AutoSAR系列讲解(入门篇)4.4-BSW的Memory功能


一、架构与术语解释


总所周知,用户能用的ROM存储方式现在一般有两种:EEPROM和FLASH仿EEPROM;而存储可以是片内的,也可以是片外的。
因此,一般就有2*2=4种ROM存储方式:

  • 1. 主芯片片内FLASH仿EEPROM
  • 2. 主芯片片内EEPROM(前提是该芯片内有的话,很多低端一点的芯片都不带片内EEP)
  • 3. 板载片外FLASH仿EEPROM
  • 4. 板载片外EEPROM

注:EEPROM 和 FLASH
都是ROM一种,相同大小容量下Flash相对便宜一些,但是只能按块擦写,不能按位擦写。想要让Flash做到按位擦写,就需要先将Flash原来的数据备份一份,再修改其中想要修改的位,再按块擦除,最后将改写好的数据再烧录回原块中。这个过程需要软件的处理,所以称为FLASH仿EEPROM。
特别注意:
图中的模块,大家一定要对照下面的解释仔细理解以下,弄清楚到底是怎么一回事,千万不能再这里走马观花或者昏昏欲睡。即使看不太懂,也一定要坚持自己看完,等以后慢慢就会理解了。因为不需要真的去弄懂其代码是怎么实现的(直接DaVinci配置就好了),所以这些模块我们也只介绍功能和工作流程。大家掌握到能弄懂DaVinci怎么配就行,当然这些内容在实践篇中再讲了


术语解释:
NVRAM Manager:
简称NVM,是应用层访问非易失性数据的唯一接口,提供非易失数据的管理服务。这里是统一按块编写的,不关心是哪种存储类型;写完后有回调函数通知Memory Abstraction,然后再通知NVM
Memory Abstraction Interface:
主要作用是将需要读写的信息解耦,分别分派给EEPROM或FLASH
EEPROM Abstraction:
EEPROM的抽象层,主要作用就是进一步封装片外或片内EEPROM驱动,给上层提供统一的API接口
Flash EEPROM Emulation: 同上,此为Flash
External E² Drv:
ECU抽象层中片外EEPROM的驱动,下面是SPI的驱动,由于片外的EEPROM要通过SPI通信才能访问。因此,片外EEPROM的驱动要放到
ECU抽象层中。
Ext Fls Drv: 同上,此为Flash
SPI Handler Drv: MCAL中对片上SPI的驱动
EEPROM Drv: MCAL中对片上EEPROM的驱动
Flash Drv: MCAL中对片上FLASH的驱动
SPI EEPROM FLASH: 片内的SPI、EEPROM和FLASH功能模块
External E² Memory:
片外EEPROM,就是板载的EEPROM,需要通过SPI访问
External flash Memory:
片外Flash,就是板载的Flash,需要通过SPI访问


二、片内存储


片内其实没什么好说的,比较简单。图中的两种颜色的箭头分别代表了从EEP和FLASH存储数据的流向,最终到达主芯片上的EEPROM和FLASH。它们不经过片外驱动、SPI和片外设备。


三、片外存储

 
用过片外存储的童鞋应该相对了解一些,大部分都是用的SPI通信,加上一些其他的控制命令,如果是我们直接手写,就需要查阅存储芯片的手册,然后配置SPI,再将定义好的命令通过SPI发送进去。而AutoSAR其实也是一样的,只不过是将这么些流程封装成了模块,使得这个流程看起来更加清楚了。大家可以看看下图中的流程,对比一下片内的流程。

猜你喜欢

转载自blog.csdn.net/qq_42700289/article/details/131474598