打印
[其他ST产品]

stm32cubeide在哪里可以设置ROM 地址?

[复制链接]
318|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
地瓜patch|  楼主 | 2025-4-4 13:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
像 KEIL 这样设置 ROM 地址,如下图所示!

使用特权

评论回复
沙发
光辉梦境| | 2025-4-9 01:24 | 只看该作者
STM32CubeIDE 中设置 ROMFlash)地址(如修改代码的加载地址或定义特定段的位置)需要通过 链接脚本(Linker Script)或项目属性进行配置

使用特权

评论回复
板凳
远山寻你| | 2025-4-9 02:37 | 只看该作者
你可以通过项目属性修改 Flash 基地址导航到:C/C++ Build Settings Tool Settings MCU Settings。修改以下字段:Flash base address:默认通常是 0x08000000STM32 Flash 起始地址)。Flash size:根据芯片型号填写(如 0x200000 表示 2MB)。Flash Base Address

使用特权

评论回复
地板
冰春彩落下| | 2025-4-9 03:29 | 只看该作者
建议修改链接脚本(.ld 文件)STM32CubeIDE 使用 GNU LD 链接脚本(如 STM32H747XIHx_FLASH.ld)定义内存布局

使用特权

评论回复
5
别乱了阵脚| | 2025-4-9 04:34 | 只看该作者
一般可以修改脚本的,比如说在项目目录下展开 "Core" "ldscripts",找到对应的 .ld 文件(如 STM32H747XIHx_FLASH.ld)。修改 Flash 地址范围:在 .ld 文件中找到 MEMORY 部分,调整 FLASH 的起始地址和长度等等

使用特权

评论回复
6
江河千里| | 2025-4-9 05:11 | 只看该作者
如果你要是懂的话,可以使用分散加载(多区域 Flash 配置)

使用特权

评论回复
7
三生万物| | 2025-4-9 06:27 | 只看该作者
如果需要将代码分段存储(如 Bootloader + App),需在链接脚本中定义多个 Flash 区域,然后在代码中通过 __attribute__ 指定函数/变量的存储位置

使用特权

评论回复
8
夜阑风雨| | 2025-4-9 07:16 | 只看该作者
我觉得可以通过 CubeMX 配置打开 STM32CubeMX 视图(需在 .ioc 文件中配置)。不过这种配置最好编译之后,进入调试模式,观察程序计数器(PC)的初始值是否与设置的 Flash 地址一致

使用特权

评论回复
9
一秒落纱| | 2025-4-9 08:35 | 只看该作者
确保修改后的地址不与其他固件(如 Bootloader)重叠

使用特权

评论回复
10
淡漠安然| | 2025-4-9 09:46 | 只看该作者
STM32的启动文件(如 startup_stm32h747xx.s)默认从0x08000000开始执行,若修改基地址,需确保中断向量表同步偏移(通过 SCB->VTOR 设置)

使用特权

评论回复
11
如果目标是Bootloader设计或OTA升级,务必同步调整向量表地址和链接脚本

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:出一块TI-PLABS-AMP-EVM

1483

主题

13832

帖子

27

粉丝