请选择 进入手机版 | 继续访问电脑版

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

STM32G031进hardfault的问题

[复制链接]
Hyacincher 提问时间:2021-8-23 11:13 /
收藏 评论6 发布时间:2021-8-23 11:13

举报

6个回答
Hyacincher 回答时间:2021-8-23 11:18:59
1234568
Hyacincher 回答时间:2021-8-23 11:25:12
项目使用的STM32G031G8U6这个片子,最新hal库。经过反复测试发现,在IWDG没有init的情况下,调用IWDG_Refresh会造成FLASH操作随机进hardfault。
每次进hardfault之前的最后操作都是FLASH_LOCK,也就是FLASH->CR的bit31,只要写这个就有几率进hardfault。有时候是hardfault,有时候是能擦除但flash值不是0xff,有时候是flash擦除成功且值也改成了0xff。
而且不管是擦除还是写入双字,只要写了FLASH->CR的LOCK都有可能触发。请问这个是由什么原因造成的呢?
Hans.he 回答时间:2021-8-23 11:40:06
Hyacincher 发表于 2021-8-23 11:25
项目使用的STM32G031G8U6这个片子,最新hal库。经过反复测试发现,在IWDG没有init的情况下,调用IWDG_Refre ...

https://shequ.stmicroelectronics ... d=631073&extra=
请看这个帖子 我这个问题也会导致你说的hardfault。我发现过。
不过我目前找原厂,原厂还没有解决,只是简单证明他那里说是没问题。
xmshao 回答时间:2021-8-23 12:59:14
你在fash编程过程中要竭力避免电源波动或复位操作,否则可能发生flash-cr寄存器被锁住的情形,并导致总线错误,产生hardfualt中断。
Hans.he 回答时间:2021-9-17 12:01:34
Hyacincher 发表于 2021-8-23 11:25
项目使用的STM32G031G8U6这个片子,最新hal库。经过反复测试发现,在IWDG没有init的情况下,调用IWDG_Refre ...

我发现你这个问题应该是CR寄存器中的CFGBSY为1的情况下 操作了LOCK。导致出现hardfault故障。
Hans.he 回答时间:2021-9-17 12:02:27
Hyacincher 发表于 2021-8-23 11:25
项目使用的STM32G031G8U6这个片子,最新hal库。经过反复测试发现,在IWDG没有init的情况下,调用IWDG_Refre ...

我发现你这个问题应该是CR寄存器中的CFGBSY为1的情况下 操作了LOCK。导致出现hardfault故障。你可以仿真一下 keil软件会出现这个情况,我测试发现了这个问题。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版