【官方原创】LAT1724 STM32CubeIDE for VSCode 修改链接文件中的起始地址无效?

1.前言

近期在使用STM32CubeIDE for VSCode调试STM32的Boot-App时,发现一个问题:虽然修改了链接文件中的Flash的起始地址,但是elf中的地址一直未改变。


2.问题分析

通过STM32CubeMX2生成的CMake工程中,code区的起始地址是通过链接文件中的memory来定义的,如需调整,修改下图中的地址即可:

图1. 链接文件中的内存分配定义

我将ROM的起始地址由0x08000000修改为0x08001000后,在点击"build"按钮编译,得到如下的编译结果:

图2. 修改链接文件后的编译结果

仔细查看编译的输出信息,会发现编译器在这里什么也没干,这是为啥呢?我明明修改了ld文件中的flash地址了呀!

事实上,这是因为在默认生成的CMakelist文件中,并没有把ld文件当成链接依赖,自然不会每次编译都去重新加载链接文件。


3.解决方法

知道了原因,那么要想让CMake工程每次执行"build"时,都去加载ld链接文件的话,可以清除当前的编译结果,或者手动添加依赖命令,我们一起来看看具体的实现吧。

3.1方法一

简单的做法就是每次执行"build"之前,手动清理工程的编译结果,然后再次编译即可,这个方法不需要任何额外的命令,缺点就是每次都要手动清除,这对工程师明显不是友好的方法。

图3. 方法一 手动清除和编译

3.2方法二

我们可以把链接文件标记为链接阶段的依赖(在CMake工程的根目录下的CMakelist文件中添加),这样就可以每次执行"build"时,自动加载ld文件,任何ld文件的改变都能自动感知了。

上述依赖就是指定路径,并自动搜索可用的链接文件。添加后的结果如下图所示:

图4. 方法二 自动链接脚本编译


4.小结

链接文件改动是否能导致重新编译取决于依赖关系。现在AI工具非常丰富,我们可以让AI工具对这里的依赖给出详细的解答,这样就能做到对添加的内容知根知底。

点击下载《LAT1724 STM32CubeIDE for VSCode 修改链接文件中的起始地址无效?》原文档。


重要通知 - 请仔细阅读

意法半导体公司及其子公司 ("ST")保留随时对 ST 产品和 / 或本文档进行变更的权利,恕不另行通知。买方在订货之前应获取关于 ST 产 品的最新信息。 ST 产品的销售依照订单确认时的相关 ST销售条款。 买方自行负责对 ST 产品的选择和使用, ST 概不承担与应用协助或买方产品设计相关的任何责任。 ST 不对任何知识产权进行任何明示或默示的授权或许可。 转售的 ST 产品如有不同于此处提供的信息的规定,将导致 ST 针对该产品授予的任何保证失效。 ST 和 ST 徽标是 ST 的商标。若需 ST 商标的更多信息,请参考 www.st.com/trademarks。所有其他产品或服务名称均为其 各自所有者的财产。 本文档是ST中国本地团队的技术性文章,旨在交流与分享,并期望借此给予客户产品应用上足够的帮助或提醒。若文中内容存有局限或与ST 官网资料不一致,请以实际应用验证结果和ST官网最新发布的内容为准。您拥有完全自主权是否采纳本文档(包括代码,电路图等)信息, 我们也不承担因使用或采纳本文档内容而导致的任何风险。 本文档中的信息取代本文档所有早期版本中提供的信息。 © 2020 STMicroelectronics - 保留所有权利

相关推荐
女神下凡11 小时前
芯参谋(77):裸机(无 OS)存储驱动开发指南
arm开发·单片机·嵌入式硬件·设计规范·1024程序员节
weixin_4640780711 小时前
反激原副边之间的Y电容
单片机·嵌入式硬件
花月mmc11 小时前
FPGA数字信号处理与深度学习
嵌入式硬件·深度学习·fpga开发·信号处理
Zw-awa12 小时前
串口:一条调试信息是怎么从芯片出来的
stm32
女神下凡12 小时前
芯参谋(76):电源监控复位芯片电路设计指南
arm开发·单片机·嵌入式硬件·fpga开发·设计规范
Tel1992530800412 小时前
旋转变压器型编码器转多种绝对值协议 旋变转SSI/BISS-C/ENDAT2.2 RS422RTU协议+增量 转换器
单片机·自动化·工业自动化·仪器仪表·工控设备
国科安芯12 小时前
LEO卫星里的IO脉冲事件通信,毛刺误触发解析及处理方案
单片机·嵌入式硬件·fpga开发·低轨卫星·商业航天·抗辐射
2501_9226395813 小时前
率能半导体 SS6813H双通道H桥驱动芯片:40V/2.5A,覆盖POS打印机、安防相机、办公自动化、游戏机、机器人五大应用场景
单片机·嵌入式硬件·硬件工程
智购科技无人售货机厂家13 小时前
自动售货机物联网平台为什么会出现在线状态不一致?~YH
python·单片机·嵌入式硬件·django·pygame
zhangrelay1 天前
新版|-|单片机原理与接口技术-2026持续改进优化-从MEGA2560-ESP32与Wokwi到ROS2-Lyrical与具身智能栈
笔记·单片机·嵌入式硬件·学习