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

[复制链接]
 楼主| 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。
hehhehee 发表于 2024-7-26 14:43 | 显示全部楼层
可能是因为 Flash 操作过程中有中断或时序要求未能满足。
公羊子丹 发表于 2025-2-9 09:11 | 显示全部楼层
我记得STM32 G0系列在不同BANK操作Flash时需要特别注意,你设置了相应的Flash解锁和中断屏蔽了吗?
周半梅 发表于 2025-2-9 09:12 | 显示全部楼层
有没有检查一下Flash控制寄存器的配置,比如确保写保护和错误中断都关闭?
帛灿灿 发表于 2025-2-9 09:13 | 显示全部楼层
通常擦写Flash时需要禁用中断和可能的预取功能,否则容易触发硬件错误。
童雨竹 发表于 2025-2-9 09:14 | 显示全部楼层
你是不是直接用CPU访问BANK2的内容了?擦写期间这样操作可能会导致HardFault。
万图 发表于 2025-2-9 09:16 | 显示全部楼层
我建议你检查一下Flash加速器的状态寄存器,看是否有提示具体错误。
Wordsworth 发表于 2025-2-9 09:17 | 显示全部楼层
可以试试看让程序执行到RAM中,再进行BANK2的擦写,这样可以避免运行Bank冲突。
Bblythe 发表于 2025-2-9 09:18 | 显示全部楼层
BANK1和BANK2的擦写权限和地址配置是独立的,可能需要单独检查擦写权限配置。
Pulitzer 发表于 2025-2-9 09:19 | 显示全部楼层
有没有用CubeMX生成代码?它能帮你正确配置Flash操作相关的寄存器。
Uriah 发表于 2025-2-9 09:20 | 显示全部楼层
STM32的不同系列芯片对于Flash操作支持会有差异,确认下G0是否有特别限制。
Clyde011 发表于 2025-2-9 09:21 | 显示全部楼层
你考虑过分步调试擦写流程吗?可能在某个步骤就出现了隐性问题。
中国龙芯CDX 发表于 2025-2-9 14:20 | 显示全部楼层
请问具体是有什么不同?
小迷糊仙 发表于 2025-6-4 07:54 | 显示全部楼层
我是来学习的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1448

主题

4810

帖子

0

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