cutfall 发表于 2025-10-23 16:30

ROM 和 RAM 使用总量

我在两个不同的 IDE(Keil 和 STM32CubeIDE)中编译了同一个项目。为什么它们显示的 RAM 和 ROM 使用量不同。为什么这些 IDE 之间会存在差异呢?应用代码是相同的,而且两个 IDE 的 HAL 代码都是由 STM32CubeMX 生成的。
Keil 的映射文件显示:
Total RO Size (Code + RO Data)      21156 ( 20.66kB)

Total RW Size (RW Data + ZI Data)       2360 (2.30kB)

Total ROM Size (Code + RO Data + RW Data)   21284 ( 20.79kB)
STM32CubeIDE显示


cr315 发表于 2025-10-24 10:08

编译器优化差异

cr315 发表于 2025-10-24 10:09

Keil和STM32CubeIDE默认的编译器优化选项可能不同,导致生成的代码大小和变量布局有差异。

duo点 发表于 2025-10-24 11:10

统一编译选项,在两个IDE中设置相同的优化级别、调试信息选项和堆栈大小。

elephant00 发表于 2025-10-24 10:11

用相同工具链,在CubeIDE中配置使用ARM Compiler,或导出Keil项目为Makefile格式在CubeIDE中编译。

flycamelaaa 发表于 2025-10-24 16:12

统一优化选项和链接器脚本

怎么总是重复啊 发表于 2025-10-29 23:29

基于 GNU 工具链,使用arm-none-eabi-gcc编译器和ld链接器。
页: [1]
查看完整版本: ROM 和 RAM 使用总量