[AutoSar]BSW_Memory_Stack_001 存储栈概述
目录关键词平台说明背景一、存储栈的组成和功能二、名称定义和描述2.1 片上单次最小擦除范围和单次最小写入范围三、EEPROMDFLASH和Flash3.1EEPROMDFLASH3.2 Flash四、实现总览关键词嵌入式、C语言、autosar、OS、BSW平台说明项目ValueOSautosar OSautosar厂商vector EB芯片厂商TI 英飞凌编程语言CC编译器HighTec (GCC)autosar版本4.3.1回到总目录缩写描述EEPROMElectrically Erasable Programmable read only memoryNVMNVRAM ManagerMEMIFMemory Abstraction InterfaceEAEEPROM AbstractionEEPinternal/external EEPROM DRIVERFEEFlash EEPROM EmulationFLSinternal/external Flash Driver背景以下内容参考英飞凌TC3XX系列。一、存储栈的组成和功能如下图所示存储栈由NVM,MEMIF,EA,FEE,EERDRV,FLSDRV组成。其中NVM 处于服务层MEMIF,EA,FEE处于ECU抽象层EERDRV,FLSDRV 处于微控制器抽象层MCAL。这些模块共同组成了autosar 存储栈用于实现工程的memory管理读写。二、名称定义和描述Data Memory Unit (DMU):控制在所有程序和数据闪存上执行的命令序列。Flash Standard Interface (FSI):对所有闪存执行擦除、编程和验证操作。Program Flash (PFLASH):PFLASH分为一个或多个Bank每个Bank连接到一个CPU。用于储存编程代码和常量数据。通过点对点传输来优化性能以尽量减少延迟和最大限度地提高带宽。每个PFLASH连接一个PFLASH Read PFRWB (Write Buffer)用于ECC校正和检测并将读数据提供给系统。Data Flash (DFLASH):DFLASH用于模拟EEPROM和存储数据分为两个BANK。与PFLASH访问相比DFLASH读访问相对较慢。DFRWB (Read Write Buffer)是指FSI接口中的DFlash向DFlash提供读数据。DFLASH模块还包含存储配置数据的区域-User Configuration Blocks(ucb)和用户无法访问的Configuration Sector(CFS)。Program Flash Interface (PFI):每个PFLASH Bank 都有一个独特的点对点快速连接到PFI提供的CPU。PFI是CPU和PFRWB之间的接口包含用于存储推测数据的预取缓冲区。Boot ROM (BROM):通过DMU SRI端口连接到系统。BANK:包含一个或者多个 DFLASH Logical sector也可以包含一个或者多个PFLASH Logical sector。以TC3XX为例如下图所示三个BANK 分别为1M 2M 3M 。Physical Sectors:与其他内存区域间的物理隔离只要该BANK没用到物理存储丢了也没啥事。一个Physical Sectors 包含mapping关系了多个Logical Sectors。Logical Sectors由多个PFLASH and DFLASH 字行组成。是芯片级上的最小擦除单位也就是我们通常说得“sector”。在FEE 中将 一个physical flash 分为了两个 Logical Sectors。page一组对齐的数据双字加上ECC扩展。它是可编程写入的最小单位。在PFLASH 中长度为32 bytes 22-bit ECC extension。在DFLASH 中长度为8 bytes 22-bit ECC extension。Wordline:一组对齐的字节。PFLASH: 1024 bytes.DFLASH: 512 bytes in single ended mode and 256 bytes in complement sensing mode.Program Burst:爆发时写入比单page写快得多。PFLASH: 8 pages (256 bytes).DFLASH: 4 pages (32 bytes).(Logical) block:属于在autosar中的概念,这是用户看到的最小可写/可擦单元。由一个或多个虚拟页组成。2.1 片上单次最小擦除范围和单次最小写入范围以TC3XX 为例最小擦除范围为一个Logical Sectors最小写入范围为一个page。三、EEPROMDFLASH和Flash参考一、 存储类型EEPROM 和 FEE 都是Non-volatile memory用于mcu在断电后的数据存储。3.1EEPROMDFLASHEEPROM (Electrically Erasable Programmable read only memory)是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片作为MCU中一种重要的存储位置但是价格昂贵。EEPROM 一般用于需要经常改变的信息的存储例如DTC上下电计数等。EEPROM 由EEP block 组成一个EEP block一般1-4bytes。写入的时候最小单位为EEP block在写入之前可以擦写也可以不擦直接修改。如下图所示擦除仅会影响一个EEP block。上图为TC3XX 中的DPFLASH_EEPROM 的sector structure。3.2 Flash相比于EEPROMFLASH 有着更大的存储单元不能被单page擦除只能以sector为单位进行擦除。一个sector由多个page组成。四、实现总览NVM提供抽象数据存储。启动和下电的时候数据的处理。将NV数据与rom默认值和RAM工作副本包括永久块或临时块的关联。数据可能分布在多个“设备”上。显式同步。改进工作处理BSWM支持*MEMIF提供在FLASH或者EEPROM 和上层之间的调度。FEE/EA对NVM 的抽象。FLS/EEP访问memory 的驱动或者通过SPI访问片外内存的驱动。回到总目录