上一篇 | 返回主目录 | 下一篇
Autosar模块介绍:Memory_5(FEE-Flash模拟EE
- 1 基本术语解释
- 2 Fee组成结构图
- 3 Fee基本操作
- 3.1 寻址方式和段划分
- 3.2 地址计算
- 3.3 擦除循环限制
- 3.4 处理立即数据
- 3.5 管理块的正确信息
- 4 Fee常用操作时序
- 4.1 Fee_Init
- 4.2 Fee_SetMode
- 4.3 Fee_Write
- 4.4 Fee_Cancel
1 基本术语解释
编号 | 缩写 | 原文 | 解释 |
---|---|---|---|
1 | EA | EEPROM Abstraction | EE抽象 |
2 | EEPROM | Electrically Erasable and Programmable ROM (Read Only Memory) | 电可擦除式ROM |
3 | FEE | Flash EEPROM Emulation | Flash模拟EEPROM |
4 | (Logical) block | —— | 逻辑块 |
5 | Virtual page | —— | 虚拟页 |
6 | Internal residue | —— | 内部残余(为对齐而进行插入的地址) |
9 | Virtual address | —— | 虚拟地址(16位块编号,16位块偏移) |
10 | Physical address | —— | 物理地址(用于访问逻辑块的设备特定格式(取决于底层EEPROM驱动程序和设备)的地址信息) |
11 | Dataset | —— | 数据集 |
12 | Redundant copy | —— | 冗余数据(数据备份,可用于恢复) |
2 Fee组成结构图
3 Fee基本操作
3.1 寻址方式和段划分
FEE提供了一个32位的虚拟地址和均匀的地址划分方式,包括两个参数:
- 16位块编号:提供65536个逻辑块
- 16位块偏移:提供64K的逻辑块大小
16位块编号代表了一个虚拟的分页机制,地址对齐可源于底层flash。虚拟页大小可通过参数FeeVirtualPageSize进行配置(必须为物理页的整数倍)
#注意事项:
- 逻辑块编号和块编号差异
- 块偏移为逻辑块偏移的虚拟块个数(1,5,17)
- 通过虚拟页大小以及偏移地址可以计算出物理首地址
- Fee模块配置虚拟页大小必须为物理页大小的整数倍
- 逻辑块不能相互重叠,也不能相互包含
- 0x0000、0xFFFF不能配置为逻辑块编号
3.2 地址计算
- 根据FEE模块的实现和所使用的确切地址格式,FEE模块的功能应结合16位块号和16位地址偏移量,以获得底层flash驱动程序所需的物理flash地址
- NVM_DATASET_SELECTION_BITS可用于配置冗余数据、数据集的地址计算
例,
将Block Number中4Bit用于数据集编号,则最多可表示16个数据集
3.3 擦除循环限制
- FeeNumberOfWriteCycles用于定义预期的写入/擦除循环数(使用寿命)
- 如果底层闪存设备或设备驱动程序没有提供每个物理存储单元至少配置的擦除/写周期数,则FEE模块应提供扩展写访问的机制,使物理设备不会过载。这也应适用于FEE模块内部使用的所有管理数据
例,
逻辑块号1被配置为预期的500.000个写周期,底层的闪存设备和设备驱动程序仅被指定为100.000个擦除周期。在这种情况下,FEE模块必须提供(至少)5个单独的存储区域,并在这些区域之间交替访问,以便每个物理存储位置仅在指定的100.000个周期中最大被擦除
3.4 处理立即数据
- 包含即时数据的块必须立即写入,即FEE模块必须确保它可以写入这样的块而不需要擦除相应的内存区域(例如通过使用预擦除的内存),并且写入请求不会因为当前运行的模块内部管理操作而延迟
#注意事项:
- 在写入即时数据之前,NVRAM经理应取消持续的较低优先级的读取/擦除/写入或比较作业。FEE模块只需要确保此写请求可以立即执行
- 在Flash已经开始的操作(例如写入页、擦除扇区)不能中止。因此,即使对于即时数据,硬件的操作延时必须接收(最大值)
3.5 管理块的正确信息
- FEE模块应管理该模块是否正确(即“未损坏”)。此信息应只涉及块的内部处理,而不涉及块的内容
- 当块写入操作启动时,FEE模块应将相应的块标记为“已占用”
- 块写入操作成功结束后,块应标记为“未占用”(corrupted)
4 Fee常用操作时序
4.1 Fee_Init
4.2 Fee_SetMode
4.3 Fee_Write
4.4 Fee_Cancel
上一篇 | 返回主目录 | 下一篇