我使用GCC(arm-none-eabi-gcc)开发嵌入式平台。对于大小分析,我使用:arm-none-eabi-size和.map文件。
因为我的代码大小有问题,我的问题是:是否有任何尺寸分析工具更强大?任何有文件或大小的文件?或者可以按尺寸订购功能?
欢迎任何建议。
答案 0 :(得分:1)
您可以使用MELT为此目的自定义GCC。
justcountipa
文件中的xtramelt-ana-simple.melt
传递正在做类似的事情(计算函数中的Gimple指令)
答案 1 :(得分:1)
您可以使用arm-none-eabi-objdump -t Application.elf
。它将显示所有函数和全局变量的大小(作为十六进制数)。
address type section size name ------------------------------------------------ 0000d600 l F .text 00000198 uip_arp_update
全局变量位于.bss
部分,函数位于.text
部分,常量数据位于.data
部分。
您还可以在相应的目录中使用arm-none-eabi-size *.o
来查看所有中间文件的大小。
也可以使用nm
工具
arm-none-eabi-nm -t d -S --size-sort Application.elf
使用-ffunction-sections -fdata-sections
作为编译参数和-Wl,--gc-sections
作为链接器参数也是有用的,因此它将从二进制文件中删除所有未使用的函数和数据。