我刚把一个STM32微控制器项目从Keil uVision(使用Keil ARM编译器)移植到了CooCox CoIDE(使用GCC ARM嵌入式编译器)。问题是,用GCC在CoIDE中编译时,代码大小是Keil uVision的两倍。这怎么可能?我该怎么办?
Keil中的代码大小为:54632b(.text) CoIDE中的代码大小为:100844b(.text)
GCC编译器标志:
Keil中的代码大小为: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 选项)