Flash配置写到一半突然掉电,下次启动还能信任这份数据吗?

浏览量:8
时间: 2026-10-29 22:30:30


这不是“多写一次CRC”就能完全解决的问题,还关系到擦除单位、更新顺序和提交标记。

核心判断

可靠保存参数的关键不是“写成功就算完成”,而是保证掉电后能选出一份完整、可验证的旧版本或新版本。

浮栅Flash存储单元编程的物理机制示意图          
图中展示浮栅Flash单元的编程概念。真实MCU还需考虑页/扇区擦除和控制器写入粒度。

0101 / 为什么会出现半写入

多数嵌入式Flash存在最小编程单位和扇区/页擦除单位,更新参数可能涉及先擦除再写入;掉电发生在其中任一时刻,数据或元数据都可能处于中间状态。不能假定一次写入过程具备数据库式的原子性。

0202 / 一个可落地的双槽方案

准备A/B两份记录,各含magic、格式版本、递增序号、长度、数据、CRC及有效提交标志。先在非当前有效槽写入新数据和校验值,读回验证后再完成提交标记;启动时只在校验通过的有效记录中选最新版本。标记写法必须符合目标Flash的1→0编程约束。

0303 / 注意擦写寿命

如果参数每秒更新一次,不能只看“单次保存”是否正确;还需计算扇区耐久次数、写入频次和温度条件,必要时做轮换日志或磨损均衡,并设置写操作触发策略。

0404 / 面试参考回答

“我会先查芯片手册的擦除/写入粒度、供电下限和掉电行为,再设计双槽或追加日志;通过序号+CRC+提交标识选择最后一次完整记录,最后用任意相位断电试验覆盖关键写入窗口。”

容易失分的回答

CRC只能发现数据损坏,不能独自保证“写操作原子提交”。

追问

如果写到有效标志的瞬间掉电,怎样确保不会把半写数据误判为有效?


声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。仅供学习交流使用,不构成商业目的。版权归原作者所有,如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时删除。侵权投诉
相关推荐HOT
面试官问“你的职业规划是什么”,电子工程师怎么回答?求职面试策略

其他类面试基础求职策略题本文概述“你的职业规划是什么”几乎每场面试都会被问,回答得好能加分,回答得虚会让面试官怀疑你的稳定性。面试官真正想听的,不是“五年当经理... 详情>>

2026-09-03 13:55:48
射频工程师面试:P1dB和IP3有什么区别?双音测试、线性度和动态范围怎么答

P1dB和IP3经常一起出现在射频器件指标表里,但它们描述的不是同一件事。一个更接近大信号压缩,另一个用三阶互调外推线性度。面试时如果只会背定义,很容易在双音测... 详情>>

2026-10-17 15:22:20
PCB串扰怎么分析与控制?PCB仿真面试从近端远端串扰讲到3W规则

PCB仿真中高级技术基础题本文概述串扰是PCB信号完整性中最常见的问题之一,由相邻走线之间的容性耦合和感性耦合引起。面试中需要讲清串扰的产生机制(互电容Cm、互... 详情>>

2026-08-30 11:11:58
嵌入式系统的定义

(1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠 性、成本、体积、功耗严格要求的专用计算机系统。 (2)嵌入式系统发展的4个... 详情>>

2024-03-12 16:01:47
硬件面试:MCU为什么不能直接带继电器?线圈电流、续流和驱动器怎么选?

继电器看起来只是一个“高低电平控制”的器件,但线圈本质上是感性负载。真正的硬件设计要同时处理GPIO驱动能力、线圈吸合电流、开关器件损耗、关断反向电压以及供电压... 详情>>

2026-10-20 21:50:26
开班信息