找回密码
 立即注册
查看: 101|回复: 7

给IAP型的MCU写程序的时候,如果使得最后一个保存参数的扇区不被重置?

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:11
  • 最近打卡:2025-07-14 09:00:36
已绑定手机

26

主题

22

回帖

242

积分

中级会员

积分
242
发表于 2025-7-14 09:00:36 | 显示全部楼层 |阅读模式
给IAP型的MCU写程序的时候,如果使得最后一个保存参数的扇区不被重置?现在我写一遍程序,就需要重新设置一遍参数。
回复

使用道具 举报 送花

3

主题

247

回帖

-795

积分

等待验证会员

积分
-795
发表于 2025-7-14 09:03:00 | 显示全部楼层
在使用IAP(In-Application Programming)型MCU进行程序开发时,确保关键参数不被意外重置是保障系统稳定性和用户体验的重要环节。IAP功能允许用户在运行过程中对Flash中的程序进行更新或修改,但这也带来了潜在的风险——即在更新过程中,原本存储在Flash中的用户参数可能被覆盖或清除。

为防止最后一个保存参数的扇区被重置,建议采取以下策略:

1. 合理规划Flash地址分配:在设计系统时,应预先规划好用于存储用户参数的Flash区域,并确保该区域不会与IAP程序更新所使用的扇区重叠。通常可将参数存储于独立的扇区或段落中,避免因程序更新而被擦除。

2. 设置保护机制:部分MCU支持Flash写入保护功能,可通过配置特定寄存器来锁定某些扇区,防止其被误擦除或覆盖。此方法能有效保护关键数据区域。

3. 采用非易失性存储方案:若Flash存储空间有限或存在冲突风险,可考虑将重要参数存储于外部EEPROM、FRAM或NVRAM等非易失性存储介质中,以实现更可靠的参数保存。

4. 优化IAP流程逻辑:在执行IAP操作前,先将关键参数备份至临时存储区域,待更新完成后,再将其恢复至原存储位置。此方法可在一定程度上规避更新过程中的数据丢失风险。

5. 增强错误处理机制:在IAP过程中加入异常检测和恢复机制,一旦发现参数存储区域出现异常,能够及时提示用户并提供恢复手段,提升系统的容错能力。

综上所述,通过合理的存储规划、保护机制设计以及完善的IAP流程控制,可以有效避免关键参数在IAP操作中被意外重置,从而提升系统的可靠性和用户体验。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:253
  • 最近打卡:2025-07-31 08:55:10
已绑定手机

78

主题

2294

回帖

5226

积分

荣誉版主

无情的代码机器

积分
5226
发表于 2025-7-14 09:04:27 | 显示全部楼层
是不是勾选了这个

截图202507140904234894.jpg
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:479
  • 最近打卡:2025-07-31 08:56:35
已绑定手机

44

主题

2129

回帖

7413

积分

论坛元老

积分
7413
发表于 2025-7-14 09:34:36 | 显示全部楼层
没有CHIPID的芯片,最后一个扇区有存放芯片参数。
烧录时会擦除最后一个扇区数据,然后写入芯片参数。例如芯片唯一ID号,BGV等。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:11
  • 最近打卡:2025-07-14 09:00:36
已绑定手机

26

主题

22

回帖

242

积分

中级会员

积分
242
发表于 2025-7-14 09:39:05 | 显示全部楼层
erci*** 发表于 2025-7-14 09:04
是不是勾选了这个


我去掉了,也不行。和这个设置用户EPROM大小有关系吗?

截图202507140938569945.jpg

点评

还有考虑楼上乘风版主说的原因,是不是用的A版没CHIPID? EEPROM扩大一个扇区不用最后一个扇区试下。 [attachimg]108428[/attachimg]  详情 回复 发表于 2025-7-14 09:49
去掉勾选了,要烧录两次才能去掉这个的影响。 上面0.5K设置的是EEPROM大小。 当前只用到一个扇区?IAP读写范围0~511?  详情 回复 发表于 2025-7-14 09:46
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:253
  • 最近打卡:2025-07-31 08:55:10
已绑定手机

78

主题

2294

回帖

5226

积分

荣誉版主

无情的代码机器

积分
5226
发表于 2025-7-14 09:46:52 | 显示全部楼层
一只*** 发表于 2025-7-14 09:39
我去掉了,也不行。和这个设置用户EPROM大小有关系吗?

去掉勾选了,要烧录两次才能去掉这个的影响。
上面0.5K设置的是EEPROM大小。
当前只用到一个扇区?IAP读写范围0~511?

三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:253
  • 最近打卡:2025-07-31 08:55:10
已绑定手机

78

主题

2294

回帖

5226

积分

荣誉版主

无情的代码机器

积分
5226
发表于 2025-7-14 09:49:16 | 显示全部楼层
一只*** 发表于 2025-7-14 09:39
我去掉了,也不行。和这个设置用户EPROM大小有关系吗?


还有考虑楼上乘风版主说的原因,是不是用的A版没CHIPID?
EEPROM扩大一个扇区不用最后一个扇区试下。
截图202507140948321867.jpg
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:11
  • 最近打卡:2025-07-14 09:00:36
已绑定手机

26

主题

22

回帖

242

积分

中级会员

积分
242
发表于 2025-7-14 10:53:13 | 显示全部楼层
erci*** 发表于 2025-7-14 09:49
还有考虑楼上乘风版主说的原因,是不是用的A版没CHIPID?
EEPROM扩大一个扇区不用最后一个扇区试下。

多谢,我看看去
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-7-31 20:21 , Processed in 0.144501 second(s), 92 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表