Chinaunix首页 | 论坛 | 博客
  • 博客访问: 157366
  • 博文数量: 40
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 355
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-27 18:05
文章分类
文章存档

2011年(1)

2010年(9)

2009年(16)

2008年(14)

我的朋友

分类: LINUX

2009-01-08 17:12:19

对多个输入文件进行链接得到一个输出文件
节:节名称,大小,节数据
输入节:输入文件中的节
输出节:输出文件中的节
加载节:节内数据,在运行时,被加载到内存
重加载节:节内无数据,在内存中要预留一个空间
调试节:含调试信息的节

符号名:带双引号, 不带双引号(不能同已有的关键字冲突)
在输入节中,未处理的孤儿节,被链接器放置在具有相同属性节的后面,若放不下,则放在文件尾部
ALIGN(align)  按指定数据对齐
ALIGN(exp,align)  按指定数据对齐 等同于ALIGN(.,align)
ORIGIN(ram) 计算内存区域的起址地址
LENGTH(ram) 计算内存区域的长度
. 表示定位计数器
VMA(virtual memory address):运行时的地址
LMA(load memory address):存储地址

输出节
SECTION [ADDRESS] [(TYPE)] : [AT(LMA)]
      {
        OUTPUT-SECTION-COMMAND
        OUTPUT-SECTION-COMMAND
        ...
      } [>REGION] [AT>LMA_REGION] [:PHDR :PHDR ...] [=FILLEXP]
SECTION输出节名
ADDRESS:运行的地址,若无,则用REGION设置它,若也无REGION,则用当前定位计数器
TYPE:默认即可, 也可用NOLOAD表示,这个节,运行时不加载
>REGION 将这个输入节放到哪个内存中
LMA_REGION
=FILLEXP 填充空白的数据
 
自定义一个内存区域
MEMORY
  {
    name [(attr)] : ORIGIN = origin, LENGTH = len
    …
  }
name 内存区名称
attr 属性  R W X A(Allocatable section) I(Initialized section) L(Same as 'I') !(插入以前的属性)
ORIGIN  开始地址
 LENGTH 区域长度

程序头
PHDRS
{
  name type [ FILEHDR ] [ PHDRS ] [ AT ( address ) ]
        [ FLAGS ( flags ) ] ;
}
附英文 帮助文档
文件: ld-2.18.chm
大小: 250KB
下载: 下载
阅读(1663) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~