目录
关键词
嵌入式、C语言、autosar、OS、BSW
平台说明
项目 | Value |
---|---|
OS | autosar OS |
autosar厂商 | vector , EB |
芯片厂商 | TI 英飞凌 |
编程语言 | C,C++ |
编译器 | HighTec (GCC) |
autosar版本 | 4.3.1 |
>>>>>>>>>>>>>>>>>>>>>>>>>回到总目录<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
缩写 | 描述 |
---|---|
EEPROM | Electrically Erasable Programmable read only memory |
NVM | NVRAM Manager |
MEMIF | Memory Abstraction Interface |
EA | EEPROM Abstraction |
EEP | internal/external EEPROM DRIVER |
FEE | Flash EEPROM Emulation |
FLS | internal/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 包含了多个Logical Sectors。
Logical Sectors: 由多个PFLASH and DFLASH 字行组成。是芯片级上的最小擦除单位,也就是我们通常说得 “sector”。
**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。
三、EEPROM(DFLASH)和Flash
参考:一、 存储类型
EEPROM 和 FEE 都是Non-volatile memory,用于mcu在断电后的数据存储。
3.1EEPROM(DFLASH)
EEPROM (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
相比于EEPROM,FLASH 有着更大的存储单元,不能被单page擦除,只能以sector为单位进行擦除。一个sector由多个page组成。
四、实现总览
NVM
- 提供抽象数据存储。
- 启动和下电的时候数据的处理。
- 将NV数据与rom默认值和RAM工作副本包括永久块或临时块的关联。
- 数据可能分布在多个“设备”上。
- 显式同步。
- 改进工作处理
- BSWM支持*
MEMIF
- 提供在FLASH或者EEPROM 和上层之间的调度。
FEE/EA
- 对NVM 的抽象。
FLS/EEP
- 访问memory 的驱动或者通过SPI访问片外内存的驱动。
>>>>>>>>>>>>>>>>>>>>>>>>>回到总目录<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<