码迷,mamicode.com
首页 > 其他好文 > 详细

007.链接器命令脚本LD文件教程(1)

时间:2017-09-09 22:34:17      阅读:306      评论:0      收藏:0      [点我收藏+]

标签:tle   教程   arch   提高   条件跳转   文件   rpc   简单的   注意   

        开发人员如何指定一个二进制镜像文件的内部布局呢?可以传递给链接器一个链接描述文件,也成为链接器命令脚本。可以将这个特殊的文件看做一份构造二进制可执行镜像的“配方”。下面代码中显示了U-Boot引导加载程序使用的链接器描述文件的部分内容。

技术分享

该脚本从这里开始定义了二进制ELF镜像的输出段。它指示链接器将名为.resetvec的代码段放置在数据镜像的固定地址处,即地址0xFFFFFFFC。此外,它还指定这个段的剩余部分全部填充为1(0xffff)。这是因为一个闪存的存储阵列在被擦除后内容全部是1。这个技术不仅降低了闪存的耗损,同时也显著提高了将数据写入闪存相应扇区的速度。

        下图显示定义.resetvec代码段的汇编文件内容,它来自最新B-Boot发行版,位于….arch\powerpc\cpu\ppc4xx\resetvec.S的汇编文件中。注意,在一个只有32位地址的机器中,这段代码的长度不能超过4 B。这是因为,不论配置选项(文件中的宏)取值如何,这段代码都只定义了1条指令。

技术分享

        这个文件会生成一条无条件跳转指令(branch,在Power架构的编译器语法中表示为b),这条简单的跳转指令会被放置到输出镜像的闪存绝对地址0xFFFFFFFC处。如405GP处理器会从这个固定的地址处获取其第一条指令。





转载请注明:http://www.cnblogs.com/andyzhao365/

007.链接器命令脚本LD文件教程(1)

标签:tle   教程   arch   提高   条件跳转   文件   rpc   简单的   注意   

原文地址:http://www.cnblogs.com/andyzhao365/p/7499390.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!