我使用 GCC (arm-none-eabi-gcc) 为嵌入式平台开发。对于大小分析,我使用: arm-none-eabi-size 和 .map 文件。
因为我的代码大小有问题,所以我的问题是:有没有更强大的大小分析工具?有统计数据或文件大小吗?或者可以按大小订购功能?
欢迎任何建议。
您可以使用arm-none-eabi-objdump -t Application.elf. 它将显示所有函数和全局变量的大小(以十六进制数表示)。
地址类型节大小名称 ------------------------------------------------ 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作为连接参数,所以它会删除你的二进制所有未使用的功能和数据。