[STM32G0] STM32CubeIDE 与 Keil µVision 生成的代码大小对比

[复制链接]
我的牙白 发表于 2025-8-23 11:00 | 显示全部楼层 |阅读模式
我过去通常使用 STM32CubeMX 生成代码,然后通过 Keil µVision(默认配置)进行编辑、编译并烧录到开发板。

最近,我用 STM32CubeIDE 的引导加载程序教程,但完全相同的源代码生成的代码体积却大得多(47k 对比 27k),而我需要将其控制在 32k 以内...

我对 Debug / Release 配置以及编译器指令不太清楚。从技术上讲,是否有可能通过配置 STM32CubeIDE,使其基于完全相同的源文件生成与 Keil µVision 完全一致的代码?


公羊子丹 发表于 2025-8-24 07:27 | 显示全部楼层
Keil默认用ARMCC编译器,CubeIDE用GCC,两边优化差异很大。
周半梅 发表于 2025-8-24 07:28 | 显示全部楼层
你可以在CubeIDE里把编译配置改成Release模式,再开 -Os 优化,体积会小很多。
帛灿灿 发表于 2025-8-24 07:29 | 显示全部楼层
Debug配置里带了调试信息和断言代码,自然比Keil的Release大。
童雨竹 发表于 2025-8-24 07:30 | 显示全部楼层
记得关掉 printf、HAL库里一些冗余功能,这些在G0里空间占用明显。
万图 发表于 2025-8-24 07:30 | 显示全部楼层
你对比的时候要确认链接脚本是不是完全一致,不然段对齐也会影响大小。
Wordsworth 发表于 2025-8-24 07:31 | 显示全部楼层
CubeIDE里 C/C++ Build → Settings → MCU GCC Compiler/Linker 可以单独设置优化参数。
Bblythe 发表于 2025-8-24 07:32 | 显示全部楼层
有些时候打开 -flto 链接时优化,可以接近Keil编译出来的大小。
Pulitzer 发表于 2025-8-24 07:35 | 显示全部楼层
如果真要极限压缩,可以考虑用LL库替换部分HAL,代码会小不少。
Uriah 发表于 2025-8-24 07:36 | 显示全部楼层
Keil编译器对Thumb模式支持更精细,GCC这边需要手动指定 -mthumb。
Clyde011 发表于 2025-8-24 07:37 | 显示全部楼层
我的经验是CubeIDE调好参数后,体积能和Keil差不多,不会差到一倍那么大。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

41

主题

41

帖子

0

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

41

主题

41

帖子

0

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