你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32G0擦除FLASH进入hardFault?

[复制链接]
华仔 提问时间:2023-5-27 10:29 / 未解决

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

image.png

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

image.png

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

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

收藏 评论2 发布时间:2023-5-27 10:29

举报

2个回答
lemonboard 回答时间:2023-5-27 16:29:43

需要按页擦除,而不是按8字节擦除。

话说,为什么要指定内存地址啊~~

你这段内存地址可以被系统分配了哟

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




关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版