- 3
- 0
- 约1.04万字
- 约 30页
- 2017-04-01 发布于四川
- 举报
第11章节ARM连接器
第11章 ARM连接器 11.1 ARM映像文件 ARM中各种源文件(包括汇编程序、C语言程序以及C++程序)经过ARM编译器编译后生成ELF格式的目标文件。这些目标文件和相应的C/C++运行时库经过ARM连接器处理后,生成ELF格式的映像文件(image)。这种ELF格式的映像文件可以被写入嵌入设备的ROM中。 本节介绍这种ELF格式的映像文件的结构。 11.1.1 ARM映像文件的组成 本小节介绍ARM映像文件的组成部分,以及这些组成部分的地址映射方式。 1. ARM映像文件的组成部分 2. ARM映像文件各组成部分的地址映射 11.1.2 ARM映像文件的入口点 1. ARM映像文件中的两类入口点 2. 定义初始入口点 3. 普通入口点的用法 11.1.3 输入段的排序规则 通常情况下,一个输出段中各输入段的排列顺序是由下面几个因素决定的。用户也可以通过连接选项-first和-last来改变这些规则。 输入段的属性。 输入段的名称。 各输入段在连接命令行的输入段列表中的排列顺序。 按照输入段的属性,其排列顺序如下所示: 只读的代码段。 只读的数据段。 可读写的代码段。 其他已经初始化的数据段。 未初始化的数据。 11.2 ARM连接器介绍 ARM开发包中包含了连接器armlink,它将编译得到的ELF格式的目标文件以及相关的C/C++运行时库进行连接,生成相应的结果文件。具体来说,armlink可以完成以下操作: 连接编译后得到的目标文件和相应的C/C++运行时库,生成可执行的映像文件。 将一些目标文件进行连接,生成一个新的目标文件,供将来进一步连接时使用,这成为部分连接。 指定代码和数据在内存中的位置。 生成被连接文件的调试信息和相互间的引用信息。 11.2 ARM连接器介绍 Armlink在进行完全连接生成可执行的映像文件时执行下面的操作。 解析输入的目标文件之间的符号引用关系。 根据输入目标文件对C/C++函数的调用关系,从C/C++运行时库中提取相应模块。 将个输入段排序,组成相应的输出段。 删除重复的调试信息段。 根据用户指定的分组和定位信息,建立映像文件的地址映射关系。 重定位需要重定位的值。 生成可执行的映像文件。 Armlink在进行部分连接生成新的目标文件时执行下面的操作。 删除重复的调试信息段。 最小化符号表的大小。 保留那些未被解析的符号。 生成新的目标文件。 11.3 ARM连接器生成的符号 ARM连接器定义了一些符号,这些符号中都包含字符$$。ARM连接器在生成映像文件时,用它们来代表映像文件中各域的起始地址以及存储区域界限、各输出段的起始地址以及存储区域界限、各输入段的起始地址以及存储区域界限。比如,Load$$region_name$$Base代表域region_name加载时的起始地址;image$$region_ name$$Base代表域region_name运行时的起始地址。 这些符号可以被汇编程序引用,用于地址重定位。这些符号可以被C程序作为外部符号引用。 所有这些符号,只有在其被应用程序引用时,ARM连接器才会生成该符号。 11.3.1 连接器生成的与域相关的符号 连接器生成的与域相关的符号如表11.1所示。各符号的命名规则是:如果使用了地址映射配置文件(scatter文件),该文件规定了映像文件中各域的名称;如果未使用地址映射配置文件(scatter文件),连接器按照下面的规则确定各符号中的region_name: 对于只读的域,使用名称ER_RO。 对于可读写的域,使用名称ER_RW。 对于使用0初始化的域,使用名称ER_ZI。 11.3.2 连接器生成的与输出段相关的符号 如果未使用地址映射配置文件(scatter文件),连接器生成的与输出段相关的符号如 表11.3所示;如果使用了地址映射配置文件(scatter文件),表11.3中所列的符号没有意义,如果应用程序使用了这些符号将可能得到错误的结果,这时应该使用上一小节中介绍的与域相关的符号。 11.3.3 连接器生成的与输入段相关的符号 ARM连接器为映像文件中的每一个输入段生成两个符号,如表11.4所示。 11.4 连接器的优化功能 ARM连接器的优化功能主要包括删除映像文件中重复的部分以及插入小代码段实现ARM状态到Thumb状态的转换以及长距离跳转。具体介绍如下。 1. 删除重复的调试信息段 2. 删除重复的代码段 3. 删除未使用的段 4. 生成小代码段(veneer) 11.5 运行时库的使用 ARM连接器使用C/C++运行时库的基本步骤如下: ARM连接器根据一定的规则确定需要使用哪些C/C++运行时库。具体的规则在11.5.1小节中介绍。 从各搜索路径中查找
您可能关注的文档
- 江苏省溧水高级中学2016年高三迎三模模拟卷[4月]生物附解析.doc
- 江苏省溧阳市埭头中学2013年高三第一次月考物理试题[无解析].doc
- 硬盘分区格式化与装系统.ppt
- 社会主义市场经济演示课件1.ppt
- 社会保险的基本知识点—人力资源.ppt
- 江苏省溧阳市光华高中2015-2016年度高一下学期期中考试英语试题(扫描无解析).doc
- 江苏省滨海县八滩中学2015年高三第一次学情调查数学文试题附解析.doc
- 社会工作导论第5章节社区工作.ppt
- 第10章节个人所得税法.ppt
- 江苏省灌云县2012-2013年度高二上学期期中考试地理试题.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)