[AutoSar] FEE NVM BUG记录

[AutoSar] FEE NVM BUG记录 目录关键词平台说明背景一、功能说明1.1 FEE1.2.双扇区算法和垃圾回收机制二、关于NVM在空DFLASH的时候错误问题关键词嵌入式、C语言、autosar平台说明项目ValueOSautosar OS芯片厂商Infineon ,TC234,TLF35584编程语言CC编译器tasking回到总目录背景在开发memory相关工作时出现的问题记录。一、功能说明1.1 FEEFEE是属于内存硬件抽象层的一部分是为了给上层提供一中虚拟内存分区和计算方案以实现几近于无限次数的擦写FLS。1.2.双扇区算法和垃圾回收机制将同一个物理扇区的分为了两个逻辑扇区每个扇区大小为64KWL大小为512B页大小为8K。原则上定义了两种页面一种数数据页用于放置用户的请求数据和管理数据状态页用于存储FEE的状态。每次有新的数据将其堆栈放置更新即可。当堆栈达到设定的阈值的时候启动垃圾收集机制。垃圾回收机制1.从激活的扇区满了拷贝到另一个空的扇区。2.激活扇区切换到另一个扇区。3.擦除老的扇区。4.检测是否擦除完毕。状态页可以确定当前激活的是哪个页面也可以保证垃圾回收过程不会被以外打断或者复位。二、关于NVM在空DFLASH的时候错误问题在以前的工程中我们在Readll的时候强制调用mainfunction目的是快速的读出NV的内容或者恢复ROM到NVRAM。如图所示。如果Dflash不为空是可以。但是如果Dflash为空在上电初始化的时候Fee会认为section状态为非法执行写入WL对齐操作。但是因为强制do while 调用mainfuntion操作会导致写超时这个时候如果再重新上电源FEE会检测到之前没写完的section为非法会先擦除后再重新写入这样又会导致擦除超时进入DET。解决方案进行do while 前先获取当前FEE的状态只要FEE不是在normal 状态下都避免快速的调用mainfunction延迟为250us。回到总目录