[其他ST产品] 如何在STM32CubeIDE中编写带有起始地址的bin文件。

[复制链接]
yunfu1117 发表于 2025-8-25 03:50 | 显示全部楼层 |阅读模式
本帖最后由 yunfu1117 于 2025-8-22 23:01 编辑

如何在包含独立Boot和App的项目中调试应用程序?我正在使用一个实现了独立引导加载程序(bootloader)和应用程序(application)的STM32系统。这次我想修改并调试应用程序部分,但不知道如何在STM32CubeIDE中实现这一点。
公羊子丹 发表于 2025-8-25 07:16 | 显示全部楼层
你要在App工程的链接脚本里修改FLASH起始地址,比如从0x08008000开始。
周半梅 发表于 2025-8-25 07:17 | 显示全部楼层
在CubeIDE里 Project → Properties → C/C++ Build → MCU Settings,可以直接改起始地址和大小。
帛灿灿 发表于 2025-8-25 07:18 | 显示全部楼层
Bootloader和App分开的话,调试App时要关掉boot,否则复位后会跳不到App。
童雨竹 发表于 2025-8-25 07:19 | 显示全部楼层
最常用的办法是给App单独加个调试配置,下载到指定地址。
万图 发表于 2025-8-25 07:20 | 显示全部楼层
记得在App入口处手动设置VTOR寄存器,不然中断向量会错。
Wordsworth 发表于 2025-8-25 07:21 | 显示全部楼层
你可以先用.bin文件测试,把它烧到偏移地址,确认能跑通。
Bblythe 发表于 2025-8-25 07:22 | 显示全部楼层
在IDE里可以生成带offset的bin,用 objcopy 加参数 --change-addresses。
Pulitzer 发表于 2025-8-25 07:22 | 显示全部楼层
Boot和App工程最好分开维护,App的链接文件里只保留自己那段Flash区域。
Uriah 发表于 2025-8-25 07:23 | 显示全部楼层
调试时如果想直接跳过boot,可以用ST-LINK attach模式挂到App入口。
Clyde011 发表于 2025-8-25 07:25 | 显示全部楼层
我的经验是先保证App单独能跑,再和Boot拼一起测试,问题会少很多。
duo点 发表于 2025-8-25 15:28 | 显示全部楼层
通过objcopy直接生成指定地址的BIN文件
duo点 发表于 2025-8-25 15:28 | 显示全部楼层
或者通过后处理脚本生成指定地址的BIN文件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

48

帖子

0

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