lds链接脚本的基本规则

arm-linux-ld -Ttext 0x00000000 crt0.o led_on_c.o -o led_on_c_elf

-o选项设置输出文件的名字为 led_on_c_elf;

“-Ttext 0x00000000”设置代码段的起始地址为0x00000000;

这条指令的作用就是将crt0.o和led_on_c.o连接成led_on_c_elf可执行文件,

此可执行文件的代码段起始地址为0x00000000。 

-T后面的地址在复杂程序时一般用lds脚本文件表示,lds脚本一般形式如下:
 
完整的连接脚本文件形式如下: 
SECTIONS { 
... 
secname start BLOCK(align) (NOLOAD) : AT ( ldadr ) 
  { contents } >region :phdr =fill 
... 

并非每个选项都是必须的,仅介绍nand.lds用到的:

SECTIONS {  
   firtst   0x00000000 : { head.o init.o } 
   second   0x30000000 : AT(4096) { main.o } 
}  

1、secname:段名,对于nand.lds,段名为first和second 

2、start:本段运行时的地址,如果没有使用AT(xxx),则本段存储的地址也是start 

3、AT( ldadr ):定义本段存储(加载)的地址 

4、{ contents }:决定哪些内容放在本段,可以是整个目标文件,也可以是目标文件中的某段(代码段、数据段等) 
 

nand.lds的含义是:head.o放在0x00000000地址开始处,init.o放在head.o

后面,它们的运行地址是0x00000000;main.o放在地址4096(0x1000)开始处,但

是它的运行地址在0x30000000,在运行前需要从4096处复制到0x30000000处。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值