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显示
编译器优化差异 Keil和STM32CubeIDE默认的编译器优化选项可能不同,导致生成的代码大小和变量布局有差异。 统一编译选项,在两个IDE中设置相同的优化级别、调试信息选项和堆栈大小。 用相同工具链,在CubeIDE中配置使用ARM Compiler,或导出Keil项目为Makefile格式在CubeIDE中编译。 统一优化选项和链接器脚本 基于 GNU 工具链,使用arm-none-eabi-gcc编译器和ld链接器。
页:
[1]