我需要一种分析用于ARM的GCC编译器的输出文件的方法。我正在为裸机进行编译,并且我非常担心大小。我可以使用交叉编译器提供的arm-none-eabi-objdump
,但是如果有用于此任务的工具,那么我就不希望解析输出。您知道现有这样的工具吗?我的搜索没有结果。
还有一件事,我自己代码中的每个函数都在其自己的部分中。
您可以使用nm
和size
来获取函数和ELF部分的大小。
获得函数(和具有静态存储持续时间的对象)的大小:
$ nm --print-size --size-sort --radix=d tst.o
第二列显示功能和对象的十进制大小。
获取部分的大小:
$ size -A -d tst.o
第二列显示小数部分的大小。
readelf实用程序可方便地显示各种节信息,包括节大小,例如:
arm-none-eabi-readelf -e foo.o
如果您对运行时内存占用量感兴趣,则可以忽略未设置'A'(分配)标志的部分。
puncover
使用puncover
和其他一些gcc工具生成html页面,您可以轻松地浏览以找出代码和数据空间的去向。
这是比gcc工具的文本输出更好的前端。