ST意法半导体
直播中

一曲作罢

9年用户 846经验值
擅长:可编程逻辑 电源/新能源 MEMS/传感技术
私信 关注
[问答]

stm32g474ccu6 MCU的闪存布局是怎样的?

我目前正在为 STM32g474ccu6 MCU(256kB 闪存)设计引导加载程序和应用程序。今天我想实现一个引导加载程序功能,允许用户应用程序在闪存中占用多个闪存组(我在双组模式下工作——默认配置)。我不太清楚 128 或 256 kB 闪存的 RM0440 闪存布局是什么样的。让我们假设一个 256 kB 版本:
  • 银行是否分为两个 128 kB 块,然后第二个银行起始地址等于 0x08002000?
  • 还是它们之间有一个间隙闪存区域而停止使用(RM 中的 bank2 起始地址似乎是恒定的?)
我对其进行了测试,令我惊讶的是,我能够使用 HAL 库中的 bank1 设置和从 0x08001f800(大概是 bank 1 的最后一页)开始的地址为 40 kB(大概是 bank 2 的第一页)对闪存进行编程!这实际上与我的两个理论相矛盾 - 似乎我的 stm32g474ccu6 完全充当 512 kB 单元(即使考虑到银行部门)。这怎么可能?
我实际上可以读取整个 512 kB 内存(它在不同的闪存版本中是相同的芯片,只是没有经过测试,对吗?),所以我猜银行之间的划分总是在 0x0804 0000 处进行,但是有一个不连续的区域可能或可能不起作用(取决于制造过程?)。

回帖(1)

徐夕武

2022-12-14 13:57:50
在这一点上,RM 明确表示它们在单银行模式下是连续的。
举报

更多回帖

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