打印
[应用相关]

FAQ0110_擦除FLASH零等待区期间需注意事项

[复制链接]
2574|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hoop|  楼主 | 2021-6-24 18:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hoop 于 2022-3-19 13:33 编辑

Questions有零等待区的MCU系列,在擦除零等待区时需注意事项?
Answer
FLASH擦除操作,如果满足以下两个条件会导致程序跑飞出错:
1.     擦除的是零等待区;
2.     擦除过程中CPU有以下顺序的动作,零等待区取指令->非零等待区取指令。
例如:擦除一个零等待区扇区,擦除开始后,程序会去检查FLASH忙的标志(检查标志这句代码位于零等待区),然后中断正常响应,如果中断函数有非零等待区的代码,此时就会出错。
解法1:调用擦除操作前后,操作中断使能的开关,如下:
  
__disable_irq();
  
Erase();
  
__enable_irq();
  
解法2:保证芯片在擦除期间所有执行的函数代码都位于零等待区。
类型:MCU应用
适用型号:AT32F413, AT32F403, AT32F403A, AT32F407
主功能:FLASH
次功能:

FAQ0110_擦除FLASH零等待区期间需注意事项_V2.0.0.pdf

108.52 KB

使用特权

评论回复
沙发
foxsbig| | 2021-7-1 10:59 | 只看该作者
啊,这个不说的话,又是一头汗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

80

主题

322

帖子

0

粉丝