电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

第11章 ARM连接器VIP免费

第11章  ARM连接器_第1页
1/30
第11章  ARM连接器_第2页
2/30
第11章  ARM连接器_第3页
3/30
第11章ARM连接器11.1ARM映像文件ARM中各种源文件(包括汇编程序、C语言程序以及C++程序)经过ARM编译器编译后生成ELF格式的目标文件。这些目标文件和相应的C/C++运行时库经过ARM连接器处理后,生成ELF格式的映像文件(image)。这种ELF格式的映像文件可以被写入嵌入设备的ROM中。本节介绍这种ELF格式的映像文件的结构。11.1.1ARM映像文件的组成本小节介绍ARM映像文件的组成部分,以及这些组成部分的地址映射方式。1.ARM映像文件的组成部分2.ARM映像文件各组成部分的地址映射11.1.2ARM映像文件的入口点1.ARM映像文件中的两类入口点2.定义初始入口点3.普通入口点的用法11.1.3输入段的排序规则通常情况下,一个输出段中各输入段的排列顺序是由下面几个因素决定的。用户也可以通过连接选项-first和-last来改变这些规则。输入段的属性。输入段的名称。各输入段在连接命令行的输入段列表中的排列顺序。按照输入段的属性,其排列顺序如下所示:只读的代码段。只读的数据段。可读写的代码段。其他已经初始化的数据段。未初始化的数据。11.2ARM连接器介绍ARM开发包中包含了连接器armlink,它将编译得到的ELF格式的目标文件以及相关的C/C++运行时库进行连接,生成相应的结果文件。具体来说,armlink可以完成以下操作:连接编译后得到的目标文件和相应的C/C++运行时库,生成可执行的映像文件。将一些目标文件进行连接,生成一个新的目标文件,供将来进一步连接时使用,这成为部分连接。指定代码和数据在内存中的位置。生成被连接文件的调试信息和相互间的引用信息。11.2ARM连接器介绍Armlink在进行完全连接生成可执行的映像文件时执行下面的操作。解析输入的目标文件之间的符号引用关系。根据输入目标文件对C/C++函数的调用关系,从C/C++运行时库中提取相应模块。将个输入段排序,组成相应的输出段。删除重复的调试信息段。根据用户指定的分组和定位信息,建立映像文件的地址映射关系。重定位需要重定位的值。生成可执行的映像文件。Armlink在进行部分连接生成新的目标文件时执行下面的操作。删除重复的调试信息段。最小化符号表的大小。保留那些未被解析的符号。生成新的目标文件。11.3ARM连接器生成的符号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中所列的符号没有意义,如果应用程序使用了这些符号将可能得到错误的结果,这时应该使用上一小节中介绍的与域相关的符号。符号名称含义Image$$RO$$BaseRO输出段运行时起始地址Image$$RO$$LimitRO输出段运行时存储区域界限Image$$RW$$BaseRW输出段运行时起始地址Image$$RW$$LimitRW输出段运行时存储区域界限Image$$ZI$$BaseZI输出段运行时起始地址Image$$ZI$$LimitZI输出段运行时存储区域界限11.3.3连接器生成的与输入段相关的符号ARM连接器为映像文件中的每一个输入段生成两个符号,如表11.4所示。符号名称含义SectionName$$BaseSectionName输入段运行时起始地址SectionName$$LimitSectionName输入段运行时存储区域界限11....

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

第11章 ARM连接器

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部