ARM映像文件的结构
来源:互联网 发布:java一行一行写入文件 编辑:程序博客网 时间:2024/04/30 11:49
今天把ARM映像文件的结构给看了,下面是我做的笔记:
ARM映像文件的结构包括物理结构和逻辑结构。
所谓物理结构就是目标文件.o和可执行映像文件.axf的内部组织结构,它们都是ELF格式的,但还是有区别,目标文件.o的基本结构由ELF Header,Program Header Table optional,Section,Section Header Table组成,其中Section包含了目标文件真正有用的信息,基本的Section有.text .bss .data .symtab,另外Program Header Table 可由可无。可执行映像文件的基本结构由ELF Header,Program Header Table,Segment,Section Header Table optional组成,与目标文件不同的是其中的Program Header Table是必需的,因为它提供了程序执行所需要的基本信息。Segment是可执行映像文件的主要组成,我们知道编译器输出的目标文件的主要组成部分是区(Section),当链接器链接目标文件的时候,就会将目标文件中相同属性的区组合成段,主要包含三个段:Text段(代码段),Data段(初始化数据段),BSS段(未初始化数据段),在实际的嵌入式系统中,链接器生成.axf格式的可执行映像文件,用它来做调试,如果通过调试,需要装载到最终的产品里,还必需用fromelf工具掐头去尾,掐掉ELF头,去掉.symtab,.debug和.symtab区里的信息,最终生成纯的二进制(binary image),然后把它装载到最后的产品里。
映像文件的逻辑结构中有三个概念,它们由小到大分别为:输入区,输出区,域,属性相同的输入区组成了输出区,其实输出区就是前面提到的组成映像文件物理结构中的段,而一个或几个输出区也就是段组成了域,这些域就组成了可执行映像文件。域又分为装载域和运行域,装载域描述了运行前输出段和域在ROM/RAM里的分布状态;运行域描述了运行时输出段和域在ROM/RAM里的分布状态。大多数情况下,映像文件在执行前把它装载在ROM里,而当运行时,域里的有些输出段(比如RW类型的输出段)必须复制到RAM里,程序才能正常运行,所以,在装载和运行时,RW类型的输出段处在不同的位置(地址空间)。另外ZI输出段在装载域是不存在的,在运行域里才建立它,并把它初始化为0.
- ARM映像文件的结构
- arm映像文件
- ARM映像文件
- ARM映像文件
- ARM映像文件
- ARM映像文件
- ARM映像文件
- ARM基础知识 -- ELF映像文件
- ARM基础知识 -- ELF映像文件
- ARM映像文件与SCATTER
- ADS1.2下ARM映像文件
- ARM基础知识教程(六): ARM映像文件
- ARM RealView® 编译工具映像结构(分散加载)
- 封装的内存映像文件.
- 软盘映像文件的格式
- arm 映像文件存储器映射调整 android ld link script
- ARM映像文件格式
- 映像文件
- SQL Server2000中的IAM链
- android之单选框
- 软件开发环境搭建
- iis问题汇总(网页被arp木马篡改的问题)
- JAVA格式化字符串速查
- ARM映像文件的结构
- 诫子书
- struts1与struts2的区别
- error C2143的原因及解决办法
- Qt中使两个部件同步,这里为spin和slider
- Windows程序设计 sysmets
- linux kernel man docs
- PreferencePage 和 PropertyPage
- Monkey tool usage