ST意法半导体
直播中

陈存楼

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

如何使用双闪存银行与银行交换启动?

我正在阅读具有双闪存组(F4、H7...)的 STM32 型号的 RM,但不太了解如何使用组切换。
采取当旧固件在 bank1 中而新固件被编程到 bank2 时的固件更新场景。所以它编写了一些选项字节来切换银行,下次应该从银行 2 启动。
如果新版本不好,我想从 bank1 自动启动。但是怎么办?写入选项字节。有没有办法通过外部引脚控制银行切换?
在我以前见过的一些系统上,我们是通过以下方式实现的:我们制作了一个简单的看门狗(CPLD 或其他),它可以自动切换引导选择器引脚。
如果 CPU 在复位后的规定时间内没有接触看门狗,它将切换选择器引脚并再次复位。
因此,如果新固件无法启动,系统将重新启动到旧固件。
我想在 STM32 上实现相同的功能,如果需要的话可以使用外部小部件,但最好不要使用它。
另一方面,对于 H7,您可以在选项字节中为 BOOT0 高位和低位定义替代起始地址。但是如果没有银行转换,这将没有用。我的固件不是位置独立的,它是为第一银行的特定地址构建的。如果不切换银行,它不会耗尽 bank2。
有什么想法吗?












回帖(1)

刘婷婷

2023-1-13 15:03:29
的确,STM32H7 设备具有双银行组织的闪存,但它不支持硬件级别的双引导。这就是为什么没有STM32H7的双bank启动流程图。
在文档级别,如果你拿RM0410,STM32F76x 的闪存的主要特性之一是“双启动模式”。例如,STM32H742 ( RM0433 ) 就不是这种情况。
举报

更多回帖

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