[STM32H7] 在STM32H7上从Bank 2擦除FLASH Bank 1时出现错误

[复制链接]
425|9
jerry尧 发表于 2025-9-16 10:11 | 显示全部楼层 |阅读模式
在STM32H7上运行时从Bank 2擦除FLASH Bank 1时出现错误。我想使用STM32H753的FLASH存储库切换功能实现自定义固件更新。

当从Bank 1运行时,我可以正常擦除和编程FLASH Bank 2;但当从Bank 2运行时,擦除Bank 1的扇区会出现双总线错误。

在擦除前我会检查FLASH_OPTCR中的SWAP_BANK位以确定当前运行的存储库。我已通过STM32Programmer确认当前确实从Bank 2运行,并在CubeIDE中单步调试验证了正在尝试擦除Bank 1的扇区0。

请问是否有人遇到过类似问题?

豌豆爹 发表于 2025-9-16 15:03 | 显示全部楼层
STM32H7的Flash分为两个Bank,支持在擦除一个Bank的同时从另一个Bank运行程序。但跨Bank擦写时,如果未正确处理Bank切换标志,可能导致操作异常。
classroom 发表于 2025-9-16 16:04 | 显示全部楼层
目标扇区是否被保护了?
cr315 发表于 2025-9-16 18:04 | 显示全部楼层
中断干扰吧可能是。
duo点 发表于 2025-9-16 19:05 | 显示全部楼层
在Flash操作期间,如果有中断发生,尤其是高优先级的中断,可能导致时序问题。
elephant00 发表于 2025-9-16 15:06 | 显示全部楼层
在编程前禁用全局中断,并在完成后恢复。
flycamelaaa 发表于 2025-9-16 18:06 | 显示全部楼层
可能系统时钟配置过高或电压不稳。
jcky001 发表于 2025-9-16 15:37 | 显示全部楼层
检查Bank切换标志设置是否正确。
onlycook 发表于 2025-9-16 17:48 | 显示全部楼层
检查电压是否稳定。
powerantone 发表于 2025-9-16 19:58 | 显示全部楼层
检查函数的参数是否正确,包括Bank号、扇区号、编程模式等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

82

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部