下载此文档

有关ELF文件格式.doc


文档分类:办公文档 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
有关ELF文件格式.doc有关ELF文件格式这里所说的ARM系统基本文件格式,都是在基于ARM的嵌入式系统开发中常会碰到的文件格式。ARM系统棊本文件格式有三种:DBIN,平板式二进制格式,一般用于直接烧写到Flash中,也可以用于加载SlJmonitor程序中。ELF,EXECUTABLEANDLINKABLEFORMAT,—种通用的OBJECT文件格式,PILERCOLLECTION(GCC)产生。AXF,BIN格式的扩展版,主休部分同BIN,在文件头和尾加入了调试用的信息,用于AXD。本文主要讨论BIN与ELFo首先说明,ELF格式是一种OBJECT文件格式。-般OBJECT文件都可以分成三类:可重定位0BJECT文件,可执行OBJECT文件,共享0BJECT文件。ELF格式文件也可以分成这三种。首先说说可重定位OBJECT文件。屮的ASSEMBLER(as)产生(只是编译器),里而除了二进制的机器代码,还冇一些可用于进行重定位的信息。它主要是作为LINKER(ld)的输入,LINKER将跟据这些信息,将需耍巫定位的符号巫定位,进而产生可执行的0BJECT文件。ELF格式的可重定位OBJECT文件由header与section组成。,用于存储目标机器的架构,大小端配置,ELFheader大小,object文件类型,sectionheader在文件中的偏移,sectionheader的大小,sectionheader中的项目数等信息。Sectionheader则定义了文件中每个section的类型,位置,大小等信息。Linker就是通过查找ELFheader,找到sectionheader的入口,再在sectionheader中找到相应的section入口,进而定位到目标seclion的。:经过编译的机器代码。.rodata:只读的数据,例如printfC'hello!”)中的字符串hello®•data:已初始化的全局变虽:,局部变虽将在运行时被存放在堆栈中,。.bss:未初始化的全局变量,在这里只是-•个占位符,在object*件中并没有实际的存储空间。-symtab:符号表,用于存放程序中被定义的或被引用到的全局变量和函数的信息。.:。这些位置将在linker把这个文件与其它object文件合并时被修改,一般來说,这些位置都是保存着一些引用到全局变量或者外部函数的指令。引用局部变量或者木地畅数的指令是不需耍被修改的,因为局部变量和木地畅数的地址一般都是使用PC相対偏移地址的。需耍注意的是,,生成可执行的ELFobject文件时会去掉这个sectiono•:保存全局变量的重定位信息。一般來说,如果一个全局变量它的初始化值是另一个全局变量的地址,或者是外部函数的地址,那么它就需要被重定位。•debug:保存debug信息。.slrtab:一个字符串表,,和各个section的名字<>.symtab,.debug和sectiontable里面,凡是保存

有关ELF文件格式 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人sssmppp
  • 文件大小86 KB
  • 时间2020-09-16