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

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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)

4477769 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档