你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于STM32G474 双BANK的测试问题

[复制链接]
AdvanceMotorCon 提问时间:2025-4-25 11:31 / 未解决

工程师朋友,您好 有一个关于STM32G474 双BANK的测试问题请教各位: 一个LED 闪烁的测试程序已经在IAR环境构建成功, 使用STM32CubeProgrammer 加载到0X800 0000开始的BANK1,DBANK=1,BFB2=0,程序运行OK 当加载到0X804 0000开始的BANK2,DBANK=1,BFB2=1,程序不能运行 请教各位工程师,看看我的应用设置有什么问题

收藏 评论6 发布时间:2025-4-25 11:31

举报

6个回答
butterflyspring 回答时间:昨天 11:59
HAL庫中有示例程序可以參考對比一下
AdvanceMotorCon 回答时间:昨天 12:07

butterflyspring 发表于 2025-4-25 11:59
HAL庫中有示例程序可以參考對比一下

已经参考了,这个只是验证双bank运行模式,还不知道问题所在!

我直接将固件下载到0X8040000,并更改了对应的OPT,上电运行,还是不行!

butterflyspring 回答时间:昨天 15:07
将 icf 文件的起始地址改为 0X0804 0000


同时将 VECT_TAB_OFFSET  定义成 0x40000UL

我这边测试可以了。
AdvanceMotorCon 回答时间:昨天 15:48

butterflyspring 发表于 2025-4-25 15:07
将 icf 文件的起始地址改为 0X0804 0000</p>
<p>

谢谢您的回复,谢谢

其实我测试双BANK的目的是为了在数字电源中的固件升级,G474在启动时在双BANK模式下会自动定位到固件,而不应该在开发时定位固件地址;

早先用F103做IAP时是这样,G4用双BANK方式就简单、直接多了。

但遗憾的是现在还没有找到第一步的验证确定:手动将固件放在BANK2,Opt定位从BANK2启动!

butterflyspring 回答时间:昨天 16:56
还有一种方式,就是设定寄存器位,
理论上不需要复位,但是这个逻辑会比较复杂。
个人觉得类似与IAP的方式逻辑简单些。

STM32G474 duBAL BANK BOOT.PNG
AdvanceMotorCon 回答时间:昨天 18:24

butterflyspring 发表于 2025-4-25 16:56

谢谢你

AN4767 的即时固件更新也描述得很详细了,那个可以满足电源的“不停机固件升级”

我现在将目标降低了些:应用在固件更新后,热复位重新启动。

已经验证了 Cube库中的参考例子:FLASH_FastProgram

的确非常快!

现在就差双BANK指定启动这一项了,也就是本问题!

尊敬的工程师朋友,麻烦您用例子:FLASH_DualBoot直接手动放在bank2,手动配置OPT,帮忙试试看。麻烦您了!

我将测试固件放在BANK2,如下:

微信图片_20250425193045.png

微信图片_20250425193143.png

微信图片_20250425193211.png

微信图片_20250425193232.png

微信图片_20250425193255.png

微信图片_20250425193314.png

微信图片_20250425193350.png

可见,下载都是OK的,只是运行不了;重新上电也不能运行

谢谢!

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版