我需要一种分析ARM体系结构GCC编译器输出文件的方法,我正在为裸机编译,对程序大小非常关注。我可以使用由交叉编译器提供的 arm-none-eabi-objdump
,但是如果存在用于此任务的工具,我不愿意解析输出。你知道是否存在这样的工具吗?我的搜索结果没有任何结果。
另外,我的代码中每个函数都在自己的部分中。
我需要一种分析ARM体系结构GCC编译器输出文件的方法,我正在为裸机编译,对程序大小非常关注。我可以使用由交叉编译器提供的 arm-none-eabi-objdump
,但是如果存在用于此任务的工具,我不愿意解析输出。你知道是否存在这样的工具吗?我的搜索结果没有任何结果。
另外,我的代码中每个函数都在自己的部分中。
您可以使用 nm
和 size
来获取函数和 ELF 片段的大小。
要获取函数(和具有静态存储期限的对象)的大小:
$ nm --print-size --size-sort --radix=d tst.o
第二列显示函数和对象的十进制大小。$ size -A -d tst.o
第二列显示了各节的十进制大小。
nm
和size
是GNU工具的一部分,也是binutils
的一部分。为了在跨平台上运行这些工具,请添加所需的平台前缀(例如,输入arm-none-eabi-nm
和arm-none-eabi-size
)。 - ouaharm-none-eabi-readelf -s build/program.out|perl -ne 'if(/(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/) { print $3 . " " . $8. "\n";}'|sort -n
- RushPL