FPGA SoC 的 RISC-V 固件开发全攻略(六):Flash 参数持久化——双备份与循环磨损 FPGA SoC 的 RISC-V 固件开发全攻略(六):Flash 参数持久化——双备份与循环磨损本文是《FPGA SoC 的 RISC-V 固件开发全攻略》专栏第 6 篇。上一篇:第 5 篇《SPI NOR Flash 驱动与 XIP 优化》 | 下一篇:第 7 篇《Bootloader 设计详解》一、为什么要做参数持久化嵌入式设备总有一些"掉电不能丢"的数据:设备序列号、用户配置、校准参数、以及 Bootloader 的启动状态(当前启动哪个分区、失败了几次等)。这些数据不能放 RAM(掉电就没了),通常放在 Flash 里,模拟成一个"小 EEPROM"。但 Flash 有两个天生缺陷:擦写寿命有限:单个扇区擦写次数有上限(典型几万到十万次);擦写中途断电会损坏数据:擦到一半断电,这个扇区就是垃圾。针对这两个缺陷,参数持久化方案要解决两个问题:掉电安全(双备份)和寿命均衡(循环磨损)。二、双备份:防掉电损坏2.1 单份数据的风险如果参数只存一份,擦写中途断电会导致这份数据损坏。对 Bootloader 来说,环境标志一旦损坏,就无法判断启动