ARM体系结构与编程(第2版)第11章.ppt

ARM体系结构与编程(第2版)第11章

11.8 ARM连接器的命令行选项 25.??-callgraph 26.??-info topics 27.??-map 28.??-symbols 29.??-symdefs file 30.??-edit file 31.??-xref 32.??-xreffrom object(section) 33.??-xrefto object(section) 34.??-errors file * 11.8 ARM连接器的命令行选项 35.??-list file 36.??-verbose 37.??-unmangled 38.??-mangled 39.??-via file 40.??-strict 41.??-unresolved symbol 42.??-input-file-list * 11.9 使用scatter文件定义映像文件的地址映射 根据映像文件中地址映射的复杂程度,有两种方法来告诉ARM连接器这些相关的信息。对于映像文件中地址映射关系比较简单的情况,可以使用命令行选项;对于映像文件中地址映射关系比较复杂的情况,可以使用一个配置文件。 当映像文件中包含最多两个域,每个域中可以最多有3个输出段时,可以使用如下的连接器连接选项告诉连接器相关的地址映射关系: -ropi -rwpi -ro_base -rw_base -split 当映像文件中地址映射关系更复杂时,可以使用一个配置文件告诉连接器相关的地址映射关系。这可以通过下面的连接选项来实现。关于配置文件格式,在后面有详细的介绍。 ?-scatter filename * 11.9.1 scatter文件概述 scatter文件是一个文本文件,它可以用来描述ARM连接器生成映像文件时需要的信息。具体来说,在scatter文件中可以指定下列信息: 各个加载时域(Load Region)的加载时起始地址(Load Address)和最大尺寸。 各个加载时域的属性。 从每个加载时域中分割出的运行时域。 各个运行时域的运行时起始地址(Excution Address)和最大尺寸。 各个运行时域的存储访问特性。 各个运行时域的属性。 各个运行时域中包含的输入段。 * 11.9.2 scatter文件中各部分的介绍 1. 加载时域的描述 2. 运行时域的描述 3. 输入段描述 4. 输入段选择符 * 11.9.3 scatter文件使用举例 1. 一个加载时域和3个连续的运行时域 2. 一个加载时域和3个不连续的运行时域 3. 两个加载时域和3个不连续的运行时域 4. 固定运行时域 5. 使用FIXED属性将某个域放置在ROM中的固定位置 6. 一个接近实际系统的例子 * 11.1 ARM映像文件 ARM中的各种源文件(包括汇编程序、C语言程序以及C++程序)经过ARM编译器编译后,生成ELF格式的目标文件。这些目标文件和相应的C/C++运行时库经过ARM连接器处理后,生成ELF格式的映像文件(Image)。这种ELF格式的映像文件可以被写入嵌入式设备的ROM中。 本节介绍这种ELF格式的映像文件的结构。 * 11.1.1 ARM映像文件的组成 1.??ARM映像文件的组成部分 一个映像文件由一个或多个域组成。 每个域包含一个或多个输出段。 每个输出段包含一个或多个输入段。 各输入段包含了目标文件中的代码和数据。 * 11.1.1 ARM映像文件的组成 2. ARM映像文件各组成部分的地址映射 ARM映像文件各组成部分在存储系统中的地址有两种:一种是在映像文件位于存储器中时(也就是该映像文件开始运行之前)的地址,称为加载时地址;一种是在映像文件运行时的地址,称为运行时地址。 在图11.2给出的例子中,RW段的加载时地址为0x6000(指该段所占的存储区域的起始地址),该地址位于ROM中;RW段的运行时地址为0x8000(指该段所占的存储区域的起始地址),该地址位于RAM中。 * 11.1.2 ARM映像文件的入口点 1.??ARM映像文件中的两类入口点 2. 定义初始入口点 3. 普通入口点的用法 * 11.1.3 输入段的排序规则 通常情况下,一个输出段中,各输入段的排列顺序是由下面几个因素决定的。用户也可以通过连接选项-first和-last来改变这些规则。 输入段的属性。 输入段的名称。 各输入段在连接命令行的输入段列表中的排列顺序。 按照输入段的属性,其排列顺序如下所示。 (1) 只读的代码段。 (2) 只读的数据段。 (3) 可读写的代码段。 (4) 其他已经初始化的数据段。 (5) 未初始化的数据。 * 11.2 ARM连接器介绍 ARM开发包中包含了连接器armlink,它将编译得到的ELF格式的目标文件以及

文档评论(0)

1亿VIP精品文档

相关文档