打印
[STM32F0]

擦写FLASH导致程序复位

[复制链接]
2195|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jlyuan|  楼主 | 2021-8-7 15:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用stm32f030RC做的项目,准备做OTA,擦写FLASH就好导致系统重启,前面加延时就可以了,真是怪事,请高手指点
                          //delay_ms(100);
                         __disable_irq();
                        IWDG_ReloadCounter();
                        FLASH_Unlock();
                        FLASH_ClearFlag(FLASH_FLAG_EOP | FLASH_FLAG_PGERR | FLASH_FLAG_WRPERR);  
                        FLASH_ErasePage(FLASH_APP_ADDS);
                        __enable_irq();

如上,加上delay_ms(100);就可以,否则,就会重启

使用特权

评论回复
沙发
chuxh| | 2021-8-7 15:18 | 只看该作者
不怪,说明你不满足flash的时间要求。delay_ms必须要加在__disable_irq();前面吗?

使用特权

评论回复
板凳
llljh| | 2021-8-7 15:21 | 只看该作者
前面进行了什么操作呢,你要定位下,重启是发生在哪段代码执行之后呢?

使用特权

评论回复
地板
dingy| | 2021-8-7 15:23 | 只看该作者
可能是前面的操作没有执行完。

使用特权

评论回复
5
heweibig| | 2021-8-7 15:25 | 只看该作者
延时后,确保了前面其他内容完成了。

使用特权

评论回复
6
zhanghqi| | 2021-8-7 15:27 | 只看该作者
擦写 flash, 不能在 FLASH 里取指了

使用特权

评论回复
7
chuxh| | 2021-8-7 15:30 | 只看该作者
嗯, 所以你的代码先搬 SRAM 里执行就可以了

使用特权

评论回复
8
jlyuan|  楼主 | 2021-8-7 15:32 | 只看该作者
重启是发生在 执行FLASH_ErasePage(FLASH_APP_ADDS);这句。这段程序之前没有执行过擦或者写FLASH操作,应该不存在您说的FLASH延时要求。

使用特权

评论回复
9
jlyuan|  楼主 | 2021-8-7 15:33 | 只看该作者
如果必须放在SRAM里,为什么加上延时就好了呢

使用特权

评论回复
10
chenjunt| | 2021-8-7 15:39 | 只看该作者
复位是否跟看门狗的喂狗时机有关?

使用特权

评论回复
11
huangchui| | 2021-8-7 15:44 | 只看该作者
你的delay函数里是否有喂狗操作?

使用特权

评论回复
12
jlyuan|  楼主 | 2021-8-7 15:47 | 只看该作者
delay函数没有喂狗,喂狗是在主程序循环中设置喂狗次数,定时器中断中,如果喂狗次数不为0,喂狗并递减。

使用特权

评论回复
13
chuxh| | 2021-8-7 15:49 | 只看该作者
喂狗的问题

使用特权

评论回复
14
jlyuan|  楼主 | 2021-8-7 15:51 | 只看该作者
我再擦除前加了一次喂狗,看门狗复位时间也改成很长4秒以上,还是不行

使用特权

评论回复
15
jlyuan|  楼主 | 2021-8-7 15:53 | 只看该作者
我刚刚又试了一下,把狗关掉,程序就死机了。

使用特权

评论回复
16
zhanghqi| | 2021-8-7 15:55 | 只看该作者
现在要排查的问题是为什么擦写执行不下去

使用特权

评论回复
17
zwll| | 2021-8-7 15:57 | 只看该作者
所以我要问你,重启发生在哪个语句的时候

使用特权

评论回复
18
llljh| | 2021-8-7 16:01 | 只看该作者
你把延时加在FLASH_ErasePage(FLASH_APP_ADDS)之前是否解决呢?

使用特权

评论回复
19
jlyuan|  楼主 | 2021-8-7 16:04 | 只看该作者
可以

使用特权

评论回复
20
dingy| | 2021-8-7 16:07 | 只看该作者
是不是对时序要求很严格啊

使用特权

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

本版积分规则

880

主题

12030

帖子

4

粉丝