我刚刚从Keil uVision(使用Keil ARM编译器)移植到CooCox CoIDE(使用GCC ARM嵌入式编译器)的STM32微控制器项目。使用GCC ARM Embedded进行编译时代码大小增加了一倍?
问题是,与Keil uVision相比,使用GCC编译CoIDE时,代码大小是双倍大小。
这怎么可能?我能做什么?
码量凯尔:54632b(的.text) 码量CoIDE:100844b区(.text)
GCC编译器标志:
arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -g2 -Wl,-Map=project.map -Os
-Wl,--gc-sections -Wl,-TC:\arm-gcc-link.ld -g -o project.elf -L -lm
我怀疑CoIDE和GCC编译了很多项目中存在的函数和文件,但尚未使用。即使我只使用20个函数中的1个函数,是否有可能编译整个文件? (即使我有-Os)..
除了@ greydet的回答,您还可以在链接器命令行中添加'--specs = nano.specs'。 –
查看地图文件,看看它是什么 –