LD文件 详解

ld 组合了许多对象文件和归档文件,重新定位它们的数据并绑定符号引用。通常编译程序的最后一步是运行 ld。

每个可加载或可分配的输出节都有两个地址。第一个是 VMA,即虚拟内存地址。这是运行输出文件时该节所拥有的地址。第二个是 LMA,即加载内存地址。这是将加载该节的地址。在大多数情况下,这两个地址将是相同的。当它们可能不同时的一个例子是当一个数据段加载到 ROM,然后在程序启动时复制到 RAM (这种技术通常用于在基于 ROM 的系统中初始化全局变量)。在这种情况下,ROM 地址是 LMA,RAM 地址是 VMA。

section [address] [(type)] :
  [AT(lma)]
  [ALIGN(section_align) | ALIGN_WITH_INPUT]
  [SUBALIGN(subsection_align)]
  [constraint]
  {
    output-section-command
    output-section-command
    …
  } [>region] [AT>lma_region] [:phdr :phdr …] [=fillexp] [,]

其中AT 是表示加载内存地址。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值