STM32
直播中

孔朱磊

7年用户 956经验值
私信 关注
[问答]

STM32G0B1CBT6双Bank升级,程序运行在Bank2时,就不能正确的写flash配置数据了,为什么?

我把Flash的最后一部分区域用来存储配置数据, 双Bank升级操作,在程序运行在bank1时, 读写对应flash区域的配置数据都正常, 当程序运行在Bank2时,就不能正确的写flash 配置数据了。查Spec没找到相关的说明,请问是不是双bank 时就不能这样使用flash了? 还是我没使用正确的读写方法?

回帖(1)

卞轮辉

2024-5-27 17:24:56
STM32G0B1CBT6是一款STM32G0系列的微控制器,具有双Bank Flash存储功能。在双Bank Flash存储模式下,Flash被分为两个独立的存储区域,即Bank1和Bank2。这种设计可以提高数据的安全性和可靠性,同时也可以支持在线升级等功能。

根据您的描述,当程序运行在Bank1时,读写Flash配置数据都正常。但是当程序运行在Bank2时,就不能正确写入Flash配置数据。这种情况可能是由以下几个原因导致的:

1. 权限问题:在双Bank Flash存储模式下,两个Bank可能具有不同的访问权限。当程序运行在Bank2时,可能没有足够的权限来写入Flash配置数据。您需要检查您的程序是否具有访问Bank2 Flash的权限。

2. 地址映射问题:在双Bank Flash存储模式下,两个Bank的地址映射可能不同。当程序运行在Bank2时,可能需要使用不同的地址来访问Flash配置数据。请检查您的程序是否正确地使用了Bank2的地址映射。

3. 写入操作问题:在双Bank Flash存储模式下,写入操作可能需要额外的步骤或者配置。例如,您可能需要先解锁Bank2的Flash,然后才能进行写入操作。请检查您的程序是否正确地执行了这些步骤。

4. 配置数据保护问题:在双Bank Flash存储模式下,配置数据可能受到保护,以防止在程序运行时被意外修改。您需要检查您的程序是否正确地禁用了这些保护措施。

5. 硬件问题:如果以上原因都排除了,那么可能是硬件本身存在问题。您可以尝试联系ST官方技术支持,寻求进一步的帮助。

为了解决这个问题,您可以尝试以下步骤:

1. 仔细阅读STM32G0B1CBT6的数据手册和参考手册,了解双Bank Flash存储模式下的操作和配置要求。

2. 检查您的程序,确保在运行在Bank2时,具有访问Bank2 Flash的权限,并且使用了正确的地址映射。

3. 在程序中添加必要的步骤,以解锁Bank2的Flash并执行写入操作。

4. 检查程序中是否正确地禁用了配置数据保护措施。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分