一、体验:
首先先看一个例子:图1-1:
编译烧写的过程:

main.c的截图:

可以看到在main函数中点亮了第一个盏灯:

图1-1 点灯
在这个例子中的gboot.lds的代码为:
OUTPUT_ARCH(arm)
ENTRY(_start)
SECTIONS {
. = 0x50008000;
. = ALIGN(4);
.text :
{
start.o (.text) //.text指明的是代码段,代码段里指定第一个执行的文件是start.o.
//接下来改变这个文件,改为main.o的运行结果如下。图1-2
*(.text)
}
. = ALIGN(4);
.data :
{
*(.data)
}
. = ALIGN(4);
bss_start = .;
.bss :
{
*(.bss)
}
bss_end = .;
}
当在lds文件里改变第一个运行的文件后的截图:图1-2:
Gboot.lds代码:
OUTPUT_ARCH(arm)
ENTRY(_start)
SECTIONS {
. = 0x50008000;
. = ALIGN(4);
.text :
{
main.o (.text)//改变为main.o为第一个运行的文件。结果等点不亮。图1-2:
*(.text)
}
. = ALIGN(4);
.data :
{
*(.data)
}
. = ALIGN(4);
bss_start = .;
.bss :
{
*(.bss)
}
bss_end = .;
}

图1-2
这就是链接器脚本的作用,能够影响整个工程的结果。下面对链接器脚本进行介绍。
二、链接器脚本:
链接器脚本的构成:
基本构成是:段
起始链接地址
对齐
变量
代码段首文件
一个可执行程序通常包括:代码段,数据段,bss段。由此,一个链接器用于链接这个程序,就会反映这几个段的信息。
SECTIONS {//固定格式
. = 0x50008000;//.点表示程序的起始地址,现在设置程序运行的起始地址是0x50008000
//可以反汇编查看程序运行的起始地址图1-3:
. = ALIGN(4);//设置四字节对齐,就是地址能整除4。这是因为ARM访问内存是4字节
//对齐的,为了提高效率,所以在存放数据的时候做到4字节对齐。所以ALIGN(4)的功
//能就是使当前的地址调整为四字节对齐。例如当前的地址是1,它会自动加上3,变
//四字节对齐。
.text :
{
start.o (.text) //设置段首文件为start.o,就是上电第一个运行的代码。
*(.text) //.text代码段,代码段是所有文件(*)的代码段
}
. = ALIGN(4);
.data :
{
*(.data) //.data数据段,数据段是所有文件(*)的数据段
}
. = ALIGN(4);
bss_start = .;//链接器脚本的变量,记录当前的地址
.bss : //bss段开始
{
*(.bss) //.bss段,bss段是所有文件(*)的bss段
}
bss_end = .; //链接器脚本的变量,记录当前的地址。通过与前面的bss_start的差就是这
//bss段的大小。
}
查看程序运行的起始地址确实是0x50008000:图1-3:


图1-3
这里,只要知道可以从这里改变程序的起始链接地址就可以了。后面会讲该操作的重要性。
这些就是lds链接文件的基本知识。
上一篇:5.Eclipse集成开发环境
下一篇:3.Makefile工程管理
推荐阅读最新更新时间:2026-03-25 12:45
- 用于 7VIN 至 16VIN、1.5V 和 1.2V 输出的 LTM4628EV DC/DC 模块稳压器的典型应用电路
- 使用 Analog Devices 的 LTC3728LIGN 的参考设计
- DER-406 - 适用于 A19 灯的 5.76 W 高 PF 非隔离降压-升压型 TRIAC 调光 LED 驱动器
- ADR5045B 5V 输出精密微功率并联模式电压基准的典型应用
- LT3970EDDB-3.42 2.5V 降压转换器的典型应用
- MC78M08BDTG 8V 电流调节器的典型应用
- LT1021DCN8-5 精密电压基准的典型应用
- DER-282 - 100W, 扁平(11 mm), LLC DC-DC转换器
- REF193 低压差开尔文连接电压基准的典型应用电路
- LT3088EM 线性稳压器用于添加软启动的典型应用

Java SE Runtime Environment 8u471
Altium Designer26库(schLib/pcbLib)安装与封装关联排查指南
【Follow me第三季第4期】英飞凌CY8CPROTO-063-BLE开发板全任务实战源码
非常经典的关于LLC的杨波博士论文
XC6406PP60DL






京公网安备 11010802033920号