arm交叉编译器的常用工具集简介
本人新手,想记录一下自己学习的过程笔记,希望有朋友可以一起学习指正。
很多arm芯片厂商都提供自己的交叉编译器。像arm-none-linux-gnueabi-xxx之类的,其中arm自然不用解释就是arm公司嘛,如果厂商开源的话后面则是none,若不是的话可能会是其他的。linux是指该编译器提供linux接口调用,gnueabi意思是开源嵌入式的意思,下面就比较常用的工具集进行简单介绍一下:
arm-none-linux-gnueabi-readelf(以下就直接简写xxx的内容):不管是在windows下或者linux下每个文件都有自己的头,在linux下定义了目标文件内部信息如何组成和组织的文件格式。内核会根据这些信息加载可执行文件,内核根据这些信息可以知道从文件哪里获取代码,从哪里获取初始化数据,在哪里应该加载共享库,等信息。
-objcopy:在arm中运行可执行程序时,只认识机器码,所以当我们在运行裸板程序时,由于没有跑操作系统,需要将附加信息从代码中剥离出来。去掉elf头,只剩下代码段、数据段等等。
-size:读取可执行程序的大小。
-objdump:反汇编,在调试代码时会很有用。
-strings:可以查看文件中有哪些字符串可以用。
-um:可以获得符号列表(我自己现在还不知道这个具体在写代码时有什么用 ̄□ ̄||)
-strip:剔除符号表。