麝香对孕妇有什么危害性| 岔气吃什么药最管用| 皮肤科属于什么科室| 成人自考本科需要什么条件| 什么样的电动牙刷好| 十月23日是什么星座| 梦见吃饭是什么预兆| 最难做的饭是什么| ctc什么意思| 白带什么时候来| 五月是什么星座的啊| 什么假什么威| 鲍鱼是什么意思| 月经老提前是什么原因| 什么床品牌最好| 什么叫御姐| 忆苦思甜下一句是什么| 黑色裤子配什么颜色t恤| 大脑缺氧有什么症状| 鬼打墙什么意思| 武则天什么朝代| 爆菊是什么意思| 治疗阴虱子用什么药最好| 什么时候开放二胎| 乌金是什么| 血钾查什么项目| 筋膜炎是什么| 保税区是什么意思| 前列腺多发钙化灶是什么意思| 全身疼是什么病| 有尿意但是尿不出来是什么原因| 瘦西湖为什么叫瘦西湖| 肥皂水是什么| 盘是什么意思| 尿蛋白三个加号吃什么药| 处女座是什么| 腋毛上有白色附着物是什么| 皮肤科挂什么科| 喝石斛水有什么禁忌| 冠心病有什么症状| 什么叫业力| alba手表是什么牌子| item是什么意思| 贫血是什么症状| 梦见发大水是什么预兆| s牌运动鞋是什么牌子| 米杏色是什么颜色| 1月12日什么星座| 2022年属什么生肖| 梦见刀是什么意思| 什么补钙| 脚一直出汗是什么原因| 沉默是什么意思| 本座是什么意思| 农历5月25日是什么星座| 粉领是什么意思| 重度贫血是什么原因引起的| 嘛哩嘛哩哄是什么意思| 逍遥丸配什么治失眠| 胆切除后吃什么好| 沉不住气什么意思| 茄子不能和什么一起吃| 心影饱满是什么意思| 南音是什么意思| 白头发越来越多是什么原因| 梦见蟒蛇是什么意思| 27虚岁属什么生肖| 前胸后背长痘痘是什么原因| 付诸行动是什么意思| 排卵日是什么时候| offer是什么意思| 包皮发炎用什么药| 尿频繁吃什么药最见效| 有什么办法可以怀孕| 一直放屁是什么原因| 什么样的疤痕影响当兵| 牙齿松动吃什么药最好| 车加昆念什么| 拉肚子去医院挂什么科| 尿很臭是什么原因| 脑供血不足什么症状| 梦见好多死人是什么征兆| 两个b型血能生出什么血型的孩子| 林彪为什么叛逃| 三级残疾是什么程度| 遭罪什么意思| 对什么有好处| dpd是什么意思| 吃什么可以提高代谢| 虾头部黄黄的是什么| 刘亦菲是什么国籍| 爱彼手表什么档次| 玉米是什么植物| 黄疸是什么意思| 什么app可以买烟| 登革热是什么症状| 鼻炎咳嗽吃什么药| 七九年属什么生肖| 女人吃什么水果最好| 右下眼皮跳是什么原因| pnh是什么病的简称| 清酒是什么酒| 雪花鱼是什么鱼| 孕吐什么时候开始| 晕车吃什么能缓解| 吃马齿菜有什么好处| 1986年属什么生肖| 耳语是什么意思| 什么蔬菜含铁高| 阳痿吃什么药效果好| 便秘挂什么科| 辛巳五行属什么| 痛风吃什么菜| 红曲是什么| 新疆人为什么长得像外国人| 肌肉一跳一跳什么原因| 为什么会得人乳头瘤病毒| 8.9是什么星座| 常州冬至吃什么| pbg是什么意思| 西夏是现在的什么地方| 1109是什么星座| 指甲月牙代表什么意思| 什么是碧玺| 氩弧焊对身体有什么危害| 蛋糕用什么面粉| 血小板降低是什么病| 厘清是什么意思| 什么叫消融术治疗| 美女的阴暗是什么样的| 螃蟹不能和什么一起吃| gb什么意思| 黄瓜生吃有什么好处| 荨麻疹是由什么引起的| 腹股沟淋巴结肿大是什么原因| 肌酐偏低是什么意思| 神奇是什么意思| bp是什么职位| 吃李子有什么好处和坏处| 艾滋病有什么症状图片| 九月十五日是什么星座| 18k金是什么材质| 47岁属什么| 女性内科检查什么| 壁虎吃什么| 清明节一般开什么生肖| 肌肉疼是什么原因| 猫的胡须有什么作用| 舅舅的儿子叫什么| 晚上口渴是什么原因引起的| 鱼休子是什么| 发粉是什么| 什么地眨眼| 脸上发红是什么原因| 什么叫脂肪瘤| 母亲节送什么礼物好| 霸道是什么车| 女人蜕变是什么意思| 三教九流代表什么生肖| 扬字五行属什么| hvi是什么病| 宫颈粘液栓是什么样的| 薄荷叶泡水喝有什么功效和作用| 脸部出汗多是什么原因引起的| 喉咙干燥吃什么药| 洛神花茶有什么功效| 草莓什么时候种植最好| edifice是什么牌子手表| 羊可以加什么偏旁| 一吃就吐是什么病症| 不走寻常路是什么品牌| 耳朵痒是什么原因引起的| 尿酸高注意什么| 心存芥蒂是什么意思| 小孩为什么会流鼻血| 查怀孕挂什么科| 眼花是什么原因引起的| 早泄吃什么药最好| 六味地黄丸什么牌子的好| 酒石酸是什么| 月经2个月没来是什么原因| 躯体化什么意思| 手心发热什么原因| 东成西就是什么生肖| 眼睛出血什么原因| ipadair2什么时候上市的| 心率过速是什么原因| 脚干裂用什么药膏| 早餐吃什么有营养| 吃什么补筋和韧带最快| 打嗝吃什么中成药| 肉是什么结构的字| 婴儿湿疹用什么药膏| 碧是什么颜色| 电轴不偏是什么意思| 为什么空调外机会滴水| 为什么会失眠| 乳腺增生有什么症状| img是什么意思| 婴儿哭久了有什么危害| 体脂是什么意思| 花椒泡脚有什么好处| 眼角发白是什么原因| 生蚝有什么功效与作用| 立场是什么意思| 什么是树莓| 太虚幻境是什么意思| 护肝吃什么好| 脖子左侧疼是什么原因| 不解之谜的意思是什么| 低血糖平时要注意什么| 三叉神经痛吃什么药| 粉红色泡沫痰见于什么病| 腌肉用什么淀粉| 月经推迟什么原因| 冠心病是什么病| 嘴唇周围长痘痘是什么原因导致| 十八反是什么意思| 艮宫代表什么| 什么是凤凰男| 门静脉增宽是什么意思| VH是什么品牌| 娇喘是什么| 女儿红是什么酒| dpm值阳性什么意思| 业障什么意思| 癣是什么| 桂花是什么颜色的| 睡眠不足会引起什么症状| 脚环肿是什么原因引起的| 腹泻肚子疼吃什么药| 缓刑什么意思| 丹字五行属什么| 摩登女郎是什么意思| 身上长扁平疣是什么原因造成的| 腺肌症是什么病| 闯空门什么意思| 子宫肌瘤是什么原因造成的| 蛋白酶是什么东西| hpc是什么| 脖子左侧疼是什么原因| 排休是什么意思| 寝不言食不语什么意思| 为什么抽筋| dx是什么药| 97年什么生肖| 重庆有什么烟| 智齿前面一颗牙叫什么| 乙肝145阳性是什么意思| 胚芽是什么意思| 胃泌素瘤是什么意思| 日本为什么经常地震| 靖国神社是什么| 冲动是什么意思| 刺猬是什么动物| 平舌音是什么意思| 冠心病是什么| 降血脂有什么好办法| 开封有什么大学| 氯吡格雷是什么药| 情花是什么花| 第一次坐飞机要注意什么| 拆线去医院挂什么科| 花孔雀是什么意思| 百度
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 ? 论坛首页 ? 嵌入式开发 ? MCU ? MCU驱动Flash读写数据的常见陷阱

共1条 1/1 1 跳转至

MCU驱动Flash读写数据的常见陷阱

菜鸟
2025-08-03 17:39:03     打赏
百度 急救人员到场后发现孩子已经死亡。

在嵌入式开发中,许多工程师都曾经历过这样的绝望时刻:产品即将量产,却发现存储在Flash中的数据神秘丢失或损坏;系统运行中偶尔死机,追踪数周才发现是Flash操作引发的中断异常;或者更糟产品出厂数月后因Flash磨损导致批量故障。


今天,就让我们一起揭开MCU驱动Flash读写背后的技术陷阱,这些经验教训都来自于真实项目的血泪史。


在深入探讨陷阱之前,我们先来了解Flash存储器的基本特性。Flash分为NOR Flash和NAND Flash两种,MCU中通常使用NOR Flash,因为它支持随机读取,适合存储程序代码。Flash的典型操作包括:

  • 读取:可以按字节或任意大小读取数据,速度较快。
  • 写入:只能将1改为0,且通常需要先擦除目标区域。
  • 擦除:将整个扇区或块置为全1(0xFF),耗时较长。
HAL_FLASH_Unlock(); // 解锁Flash
FLASH_EraseInitTypeDef EraseInitStruct;
EraseInitStruct.TypeErase = FLASH_TYPEERASE_SECTORS;
EraseInitStruct.Sector = FLASH_SECTOR_5; // 指定扇区
EraseInitStruct.NbSectors = 1; // 擦除1个扇区
uint32_t SectorError;
HAL_FLASHEx_Erase(&EraseInitStruct, &SectorError); // 执行擦除
HAL_FLASH_Lock(); // 锁定Flash


时序管理不当

Flash的擦除和写入操作耗时较长(擦除可能需要几毫秒,写入每字节约50μs)。如果开发者未等待操作完成就进行后续操作,可能导致数据不完整或程序错误。


所以操作完成后可以使用状态寄存器或标志位检查操作是否完成。



读写冲突

在某些MCU中,Flash在写入或擦除期间无法同时读取。如果程序尝试在Flash操作期间从Flash读取代码或数据,可能会引发总线错误或硬故障。


为了避免这种情况,可以在Flash操作期间禁用中断,确保处理器不访问Flash。



误解代码执行方式

许多开发者误以为MCU程序会从Flash复制到RAM执行。实际上,大多数MCU直接从Flash执行代码,只有在特定高性能场景下才将代码复制到RAM。这种误解可能导致错误的内存分配或性能优化策略。



错误分配内存

在定义变量时,如果未明确指定存储位置,编译器可能默认将变量分配到RAM中。但对于需要掉电保存的数据,应存储在Flash中。反之,将大段代码或数据错误分配到Flash可能导致性能下降。


所以要合理规划内存分配,避免RAM溢出或Flash空间浪费。



忽略擦写次数限制

Flash存储器的擦写次数有限,通常为10,000至100,000次/扇区。频繁写入同一扇区可能导致存储器失效。例如,在存储频繁更新的参数时,可能很快耗尽擦写寿命。解决方案如下:

  • 减少不必要的Flash写入,使用RAM缓存数据,仅在必要时写入Flash。
  • 实现磨损均衡,通过轮换使用多个扇区分散擦写次数。在同一扇区内轮流写入多份数据,待存满后再统一擦除,可实现寿命提升。
  • 选择耐久性更高的存储器(如EEPROM)用于高频写入场景。



缺乏数据验证

写入Flash后,未验证数据是否正确写入,可能在使用时发现数据错误。例如,STM32社区曾报告因未验证Flash内容导致读取错误数据的问题。


最简单的办法是写入后读取数据,比较是否一致。例如使用校验和或CRC验证数据完整性。


Flash 是 MCU 上最珍贵的“非易失存储”资源,其特性决定了操作细节万万不可掉以轻心。务必严格参照数据手册、采用完善的擦写流程、做好磨损均衡与中断管理,才能确保系统可靠运行,延长产品寿命。





关键词: MCU     驱动Flash    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
杨贵妃属什么生肖 生产批号是什么意思 什么叫白癜风 环磷酰胺是什么药 如常是什么意思
不能吃辣是什么原因 掉头发严重是什么原因 有口无心是什么意思 女人打掉孩子说明什么 避孕药什么时候吃有效
群青色是什么颜色 咳嗽有黄痰吃什么消炎药 有时头晕是什么原因 吃什么会食物中毒 陶土色是什么颜色
f是什么 猫的舌头为什么有刺 什么来什么去的四字词语 火眼是什么症状 荨麻疹吃什么药最管用
痛风为什么要禁欲hcv9jop2ns9r.cn 腌鱼放什么调料hcv8jop0ns2r.cn 小孩吃什么可以长高xianpinbao.com 额头炎是什么症状hcv8jop4ns9r.cn lf是什么意思hcv8jop5ns8r.cn
肾结石吃什么比较好hcv9jop7ns0r.cn 刚怀孕吃什么水果对胎儿好hcv8jop4ns4r.cn 后背出汗是什么原因hcv9jop4ns4r.cn 狐臭去医院挂什么科hcv8jop4ns7r.cn 金刚石是由什么构成的zsyouku.com
手脚经常发麻是什么原因hcv7jop7ns3r.cn 属猪的是什么命hcv9jop5ns5r.cn 什么情况下需要做肠镜hcv9jop0ns9r.cn 为什么一到晚上就痒xinjiangjialails.com 酷儿是什么意思hcv9jop2ns1r.cn
雷猴是什么意思hcv8jop1ns9r.cn 宝宝体检挂什么科hcv9jop2ns0r.cn 慈禧和溥仪是什么关系hcv7jop9ns8r.cn 泄露是什么意思hcv9jop3ns8r.cn 血脂高低看什么指标hcv8jop0ns5r.cn
百度