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

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

image

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

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

image

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

转载请注明:http://blog.csdn.net/andyzhao00

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值