我剛剛從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'。 –
查看地圖文件,看看它是什麼 –