打印
[STM32G0]

STM32 G0系列,程序运行在BANK1,擦写BANK2失败

[复制链接]
818|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cr315|  楼主 | 2024-7-10 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32 g0系列双BANK芯片,程序运行在BANK1时,想要擦写BANK2,会发生Error或者HardFault。

是否不支持这样的操作?

使用特权

评论回复
沙发
cr315|  楼主 | 2024-7-10 16:39 | 只看该作者

使用特权

评论回复
板凳
两只袜子| | 2024-7-11 16:00 | 只看该作者
STM32 G0系列的Flash可能具有保护机制,以防止在程序运行时对正在使用的Bank进行擦写操作。

使用特权

评论回复
地板
jcky001| | 2024-7-12 16:00 | 只看该作者
在Dual bank模式下,Bank1和Bank2的切换需要特定的操作,如设置FB_MODE寄存器。如果切换操作不正确或时机不合适,可能导致无法访问或擦写目标Bank。

使用特权

评论回复
5
hehhehee| | 2024-7-26 14:43 | 只看该作者
可能是因为 Flash 操作过程中有中断或时序要求未能满足。

使用特权

评论回复
6
公羊子丹| | 2025-2-9 09:11 | 只看该作者
我记得STM32 G0系列在不同BANK操作Flash时需要特别注意,你设置了相应的Flash解锁和中断屏蔽了吗?

使用特权

评论回复
7
周半梅| | 2025-2-9 09:12 | 只看该作者
有没有检查一下Flash控制寄存器的配置,比如确保写保护和错误中断都关闭?

使用特权

评论回复
8
帛灿灿| | 2025-2-9 09:13 | 只看该作者
通常擦写Flash时需要禁用中断和可能的预取功能,否则容易触发硬件错误。

使用特权

评论回复
9
童雨竹| | 2025-2-9 09:14 | 只看该作者
你是不是直接用CPU访问BANK2的内容了?擦写期间这样操作可能会导致HardFault。

使用特权

评论回复
10
万图| | 2025-2-9 09:16 | 只看该作者
我建议你检查一下Flash加速器的状态寄存器,看是否有提示具体错误。

使用特权

评论回复
11
Wordsworth| | 2025-2-9 09:17 | 只看该作者
可以试试看让程序执行到RAM中,再进行BANK2的擦写,这样可以避免运行Bank冲突。

使用特权

评论回复
12
Bblythe| | 2025-2-9 09:18 | 只看该作者
BANK1和BANK2的擦写权限和地址配置是独立的,可能需要单独检查擦写权限配置。

使用特权

评论回复
13
Pulitzer| | 2025-2-9 09:19 | 只看该作者
有没有用CubeMX生成代码?它能帮你正确配置Flash操作相关的寄存器。

使用特权

评论回复
14
Uriah| | 2025-2-9 09:20 | 只看该作者
STM32的不同系列芯片对于Flash操作支持会有差异,确认下G0是否有特别限制。

使用特权

评论回复
15
Clyde011| | 2025-2-9 09:21 | 只看该作者
你考虑过分步调试擦写流程吗?可能在某个步骤就出现了隐性问题。

使用特权

评论回复
16
中国龙芯CDX| | 2025-2-9 14:20 | 只看该作者
请问具体是有什么不同?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1373

主题

4252

帖子

0

粉丝