Part1.4链接器脚本

arm-linux编译过程:

交叉工具链arm-linux-gcc -g -c led.S,产生.o文件

链接器脚本arm-linux-ld -T led.lds -o led.elf led.o  ;   lds脚本文件

第三步格式转换arm-linux-objcopy -o binary led.elf led.bin

只要用make指令就能实现以上三步,需要Makefile文件;make clean消除make指令生成的文件

在前面我们已经知道了链接器脚本在ld链接命令中有着重要的作用

 

 

1、链接器脚本的组成

  1、1段的概念

有代码段,数据段,bss段

  1、2创建链接器脚本

vim led.lds

SECTIONS说明这是段的信息。代码段什么都在里面

 

 

首先是代码段,格式如下,代码段里面包含的是所有文件的代码,*表示所有文件

 

同理,数据段和ess段也相同

 

在Makefile中使用这个脚本可以工作,说明基本的功能可以实现

  1、3设置其实链接器地址

 

加了这句话,  .点表示当前地址,这句话表示编译地址从0x0开始

显示在汇编文件中就是起始地址

   1、4对齐           (对齐概念:对齐几就是能够整除几)

. =ALIGN(4);当前地址对四字节对齐

  1、5使用变量

  1、5设置代码段首文件

这个设置会体现完全不同的两种效果;  比如上电时候必须保证CPU初始化代码在最前面,这就需要以下设置

start.o是start.c编译生成的

这里必须是.o文件

posted @ 2017-05-21 15:16  郁兴力  阅读(123)  评论(0)    收藏  举报