[bsp][stm32]fix stm32 ld flash oversize #11124 - #11805
Conversation
📌 Code Review Assignment🏷️ Tag: bsp_stm32Reviewers: @Liang1795 @hamburger-os @wdfk-prog Changed Files (Click to expand)
🏷️ Tag: bsp_stm32f103-blue-pillReviewers: @Liang1795 Changed Files (Click to expand)
📊 Current Review Status (Last Updated: 2026-09-16 23:57 CST)
📝 Review Instructions
|
|
👋 感谢您对 RT-Thread 的贡献!Thank you for your contribution to RT-Thread! 为确保代码符合 RT-Thread 的编码规范,请在你的仓库中执行以下步骤运行代码格式化工作流(如果格式化CI运行失败)。 🛠 操作步骤 | Steps
完成后,提交将自动更新至 如有问题欢迎联系我们,再次感谢您的贡献!💐 |
|
经排查,该修复在llvm工具链下 lld 有个问题,.stack没有添加NOLOAD,导致生成的bin文件异常。 一并添加到该PR中修复。 |
拉取/合并请求描述:(PR description)
[
为什么提交这份PR (why to submit this PR)
修复 #11124
STM32 部分 GCC 链接脚本使用
.data : AT(_sidata)指定初始化数据的加载地址,但未将其关联到对应的 ROM/CODE 内存区域。因此,代码和常量未超限、加上.data初始化镜像后超限时,链接仍可能成功,生成超出配置容量的固件。你的解决方案是什么 (what is your solution)
参考ST官方的链接脚本:跳转地址
修改方式相同:
注:脚本数量太多,但是修改比较简单,就使用AI自动化修改了下。
该修复会暴露一个新的问题:使用
.data >RAM AT>ROM后,后续.stack的加载地址变到了RAM,在llvm工具链下生成的bin文件大小异常:解决方案: 官方的链接脚本stack放在了.bss后,因此没问题,该问题的正确解决方式是 .stack 添加 noload
请提供验证的bsp和config (provide the config and bsp)
]
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up