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文件

浙公网安备 33010602011771号