欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

arm交叉编译器的常用工具集简介

程序员文章站 2023-10-27 14:17:34
本人新手,想记录一下自己学习的过程笔记,希望有朋友可以一起学习指正。 很多arm芯片厂商都提供自己的交叉编译器。像arm-none-linux-gnueabi-xxx之类的,其中arm自然不用解释就是arm公司嘛,如果厂商开源的话后面则是none,若不是的话可能会是其他的。linux是指该编译器提供 ......

  本人新手,想记录一下自己学习的过程笔记,希望有朋友可以一起学习指正。

  很多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:剔除符号表。