Fee(Flash EEPROM Emulation)位于 MemIf 与 Fls 之间,在 Flash 硬件上模拟 EEPROM 行为——将 NV 块请求转换为扇区布局/页操作,支持块管理、扇区擦除、垃圾回收、磨损均衡。
| 缩略语 | 描述 |
|---|---|
| Fee | Flash EEPROM Emulation(Flash 模拟 EEPROM) |
| NV Block | Non-Volatile Block(非易失性块) |
| Sector | 扇区(最小擦除单位) |
| Garbage Collection | 垃圾回收(合并有效块、释放旧扇区) |
| Wear Leveling | 磨损均衡(将写操作分散到不同扇区) |
| DET | Default Error Tracer(默认错误追踪器) |
AUTOSAR_EXP_NVDataHandlingAUTOSAR_SWS_MemoryAbstractionInterfaceAUTOSAR_SWS_FlashDriverFee 仅支持单一底层设备(Fls)。扇区布局、垃圾回收策略、磨损均衡由配置决定。
Fee 依赖 Fls(底层驱动)、MemIf(上层抽象)、DET、DEM。
SWS_Fee_NNNNN 规范项 ID 约 100+ 条。
扇区布局(扇区数、起始地址、大小)、块到扇区映射、擦除时间、垃圾回收策略、磨损均衡策略、通知回调。
Fee 实现块管理(写时复制 + 失效旧块 + 垃圾回收)。每次写操作:
| 错误码 | 含义 |
|---|---|
FEE_E_UNINIT | Fee 未初始化 |
FEE_E_ALREADY_INITIALIZED | 已初始化 |
FEE_E_PARAM_BLOCKNUMBER | 无效的块号 |
FEE_E_PARAM_OFFSET | 无效的偏移 |
FEE_E_PARAM_LENGTH | 无效的长度 |
FEE_E_PARAM_POINTER | 无效的指针 |
FEE_E_BUSY | 操作忙 |
FEE_E_INVALID_BLOCK_NO | 块号超出配置 |
FEE_E_BLOCK_INVALIDATED | 块已失效 |
无。
Std_ReturnType、Std_VersionInfoType、Std_ConfigType。
| 类型 | 描述 |
|---|---|
Fee_ConfigType | Fee 抽象配置 |
Fee_BlockNumberType | 块号(uint16) |
Fee_OffsetType | 偏移(uint16) |
Fee_LengthType | 长度(uint16) |
Fee_DataType | 数据(uint8/16/32) |
| API | 功能 |
|---|---|
Fee_Init | 初始化 Fee |
Fee_SetMode | 设置模式(Fast/Slow) |
Fee_Read | 读块 |
Fee_Write | 写块(含垃圾回收触发) |
Fee_Cancel | 取消操作 |
Fee_GetStatus | 获取状态 |
Fee_GetJobResult | 获取作业结果 |
Fee_InvalidateBlock | 使块失效 |
Fee_GetVersionInfo | 获取版本信息 |
Fee_EraseImmediateBlock | 立即擦除块 |
Fee_JobEndNotification | 作业结束通知回调(应用实现) |
Fee_JobErrorNotification | 作业错误通知回调(应用实现) |
Fee_MainFunction | 主函数(异步处理 + 垃圾回收) |
共 13 个 API 函数(含 2 个通知回调模板 + 1 个调度函数)。
Fee_Read(Block, Offset, Length, Buf) → 扫描块链查找最新有效数据 → 异步通知;Fee_Write(Block, Buf) → 检查空闲扇区 → 复制有效数据 → 写入新数据 → 标记旧数据失效 → 异步通知;Fee_MainFunction() → 检查扇区 → 选择最旧扇区 → 复制所有有效数据 → 擦除整个扇区 → 释放;Fee_InvalidateBlock(Block) → 写入失效标志 → 通知。| 容器 | 描述 |
|---|---|
| Fee | 根容器(开发错误检测、版本 API、立即块擦除 API 等) |
| FeeGeneral | 通用配置(块数、扇区布局) |
| FeeBlockConfiguration | 块配置(块号、大小、起始地址、立即数据) |
| FeeSector | 扇区配置(起始地址、大小) |
| FeePublishedInformation | 发布信息 |
共 5 个 ECUC 容器,含 20+ 配置参数。
发布信息包括 Fee 模块版本、配置变体、块数、扇区数、最大块大小等。
校对轮次:L1 自动校对(2026-06-13)
FEE_E_UNINIT/ALREADY_INITIALIZED/PARAM_BLOCKNUMBER/PARAM_OFFSET/PARAM_LENGTH/PARAM_POINTER/BUSY/INVALID_BLOCK_NO/BLOCK_INVALIDATED)完整翻译。