FlexNVM写入过程中掉电致数据损坏的精准检测方法咨询
S32K148 FlexNVM(EEPROM模拟器)底层掉电损坏数据检测机制
针对你提出的掉电中断写入后的数据损坏检测需求,S32K148的FlexNVM EEPROM模拟器本身具备以下底层硬件/固件级机制:
双块镜像与有效性校验
FlexNVM模拟EEPROM时,会将数据存储在两个互为镜像的物理块中。写入操作会先完成其中一个块的更新,再同步到另一个块。如果掉电中断写入,仅会导致其中一个块处于未完成状态。底层驱动会在读取时检查两个块的状态标记,自动选择状态为VALID的完整块,跳过处于PROGRAMMING或INVALID状态的损坏块。块状态标记位
每个FlexNVM块都内置状态标记字段,用于标识块的当前状态:VALID:块数据完整有效INVALID:块已被标记为无效PROGRAMMING:块正在编程中(掉电后会保留此状态)
掉电中断写入后,未完成的块会被锁定在PROGRAMMING状态,底层逻辑会直接忽略该块的数据,不会将其作为有效数据读取。
页编程完成标志
针对每个数据页,FlexNVM在完成整页编程后会设置一个硬件完成标志位。如果掉电发生在页编程中途,该标志位不会被置位。读取时,底层驱动会检查此标志,未置位的页会被判定为损坏数据,直接跳过。BOD硬件联动保护
当BrownOut Detection(BOD)触发时,FlexNVM的硬件逻辑会立即终止当前的编程操作,同时将正在操作的块标记为异常状态,避免部分写入的数据被误识别为有效。这个联动是硬件级的,不需要上层软件干预。
需要注意的是,这些机制都是FlexNVM EEPROM模拟器的底层固有逻辑,无需额外编写CRC或冗余校验代码即可识别掉电导致的损坏数据;若需更精细的单数据校验,仍可配合上层CRC校验使用。
内容的提问来源于stack exchange,提问作者Arian
相关产品推荐
相关产品推荐

