久芯网

stm32G0擦除FLASH进入hardFault?

avatar 华仔 提问时间: 2023-06-30 20:16:42 / 未解决

请教各位大佬,我再使用STM32g051c8tb时,发现擦除单页时,会出现HardFault中断,然后读取FLASH状态显示为CFGBSY一直为1,用软件清不了零,不清楚是什么原因?有时候可以正常擦除,擦除数据地址可以被8整除的。

stm32G0擦除FLASH进入hardFault? [相关图片]

通过仿真执行擦除这段代码,有时可以正常,有时就异常进入HardFault里面。

stm32G0擦除FLASH进入hardFault? [相关图片]

这是我要保存到芯片内部FLASH的数据内容,指定起始地址,可以被8整除的。

通过百度也查询了一下解决措施,将未初始化的变量都初始化了,没有用的变量都去掉了,擦除页错误还是会偶尔出现的。


如需获得 stm32G0 等器件的更多信息,请点击链接或 点击此处 联系在线客服!

2个回答
  • avatar lemonboard
    回答时间: 2023-06-30 20:38:18

    需要按页擦除,而不是按8字节擦除。 话说,为什么要指定内存地址啊~~ 你这段内存地址可以被系统分配了哟

  • avatar butterflyspring
    回答时间: 2023-06-30 21:09:26

    指定的地址应该是FLASH中的地址要对齐。楼主也可以参考有下库中的例程。另外仿真擦除部分代码时可平时其他的会稍有区别,不同编译器的状态也会有不同,所以断点最好不要放在中间,最后结果正常就达到目的了。

会员中心 微信客服
客服
回到顶部