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

STM32G0 FLASH快速写入发生HardFault

[复制链接]
kkkkkkkkkkkkfed 提问时间:2024-7-12 10:42 / 未解决

芯片:STM32G0B1RCT6 256KB,双BANK Flash。

1.HAL_FLASH_Unlock()调用,返回OK。

2.HAL_FLASHEx_Erase(); 返回OK

3.HAL_FLASH_Program(FLASH_TYPEPROGRAM_FAST, address, FlashWrite[0]);

第3步中,使用FASH模式进行写入,返回Hardfault.

其中地址定义的是:0x0800F800,FLASH中的最后1个page,写入前通过IAR View Memory可以看到即将写入的地址已经完全被清成0xFF了。

FlashWrite[]定义的是一个size为32的,成员是64bit的数组。

调用第3步写入函数就会发生hardfault,查了很多资料没有找到原因,求指导

收藏 评论2 发布时间:2024-7-12 10:42

举报

2个回答
废鱼 回答时间:2024-7-13 14:37:19

注意这里是一次性写入256个字节。我测试输入一个256字节的数组是没有问题的。

The main purpose of this mode is to reduce the page programming time. It is achieved by

eliminating the need for verifying the Flash memory locations before they are programmed,

thus saving the time of high voltage ramping and falling for each double word.

This mode allows programming a row (32 double words = 256 bytes).

xmshao 回答时间:2024-8-20 11:21:47

调FLASH往往是个伤筋动骨的事,调试可能有些局限性。

你可以换个IDE试试,比方STM32CubeIde 或 IAR。

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