十.链接器脚本
2014-12-02 20:49
120 查看
1.裸机。内核,驱动,u-boot都会用到,地位重要。控制可执行程序的生成过程
2.段:
(1)一个可执行程序包含:代码段,数据段(已初始化),BSS段(未初始化)
(2)脚本中必然包含与上述段相关的信息
(3)固定格式:
SECTIONS{
.text :
{
*(.text)
}
.data :
{
*(.data)
}
.bss :
{
*(.bss)
}
}
注意一定要使用tab键
3.起始链接地址:在SECTIONS的开始处加上:
. = 起始地址;(注意有分号和空格)
.:表示当前位置
4.对齐设置:
ARM处理器访问内存是以四字节的方式访问,所以把一些数据按照四字节对齐能提高访问效率。
四字节对齐:存放起始地址能被4整除
有些情况,在当前地址是无法满足四字节对齐的,所以要在链接脚本里面强行对齐:
. = ALIGN(4);
那样就会自动调整相应段向后移动合适的长度满足对齐要求
5.变量:
bss_start = .;将当前地址赋值给bss_start,不用事先申明变量类型
6.设置代码段首文件:
保证初始化相关的代码存放在程序的最开始
.text :
{
start.o(.text)
*(.text)
}
上述代码实现将start.o一定存放在代码段的开始部分
2.段:
(1)一个可执行程序包含:代码段,数据段(已初始化),BSS段(未初始化)
(2)脚本中必然包含与上述段相关的信息
(3)固定格式:
SECTIONS{
.text :
{
*(.text)
}
.data :
{
*(.data)
}
.bss :
{
*(.bss)
}
}
注意一定要使用tab键
3.起始链接地址:在SECTIONS的开始处加上:
. = 起始地址;(注意有分号和空格)
.:表示当前位置
4.对齐设置:
ARM处理器访问内存是以四字节的方式访问,所以把一些数据按照四字节对齐能提高访问效率。
四字节对齐:存放起始地址能被4整除
有些情况,在当前地址是无法满足四字节对齐的,所以要在链接脚本里面强行对齐:
. = ALIGN(4);
那样就会自动调整相应段向后移动合适的长度满足对齐要求
5.变量:
bss_start = .;将当前地址赋值给bss_start,不用事先申明变量类型
6.设置代码段首文件:
保证初始化相关的代码存放在程序的最开始
.text :
{
start.o(.text)
*(.text)
}
上述代码实现将start.o一定存放在代码段的开始部分
相关文章推荐
- 链接器脚本 .lds
- ARM编程工具篇——链接器脚本
- 专题1:链接器脚本
- 1-1-4 链接器脚本
- 关于链接器脚本 & makefile
- [学习日志][2-2-4][链接器脚本]
- TQ2440,学习笔记之链接器脚本
- (2)ok6410学习之链接器脚本学习
- 嵌入式学习-uboot-lesson1-链接器脚本基础知识
- Linker script 链接器脚本(1)
- 链接器脚本编写语法问题
- [LinkerScript.4] 简单的链接器脚本命令: 入口 - Simple Linker Script Commands: Entry Point
- Linker Script 链接器脚本(2)
- 链接器脚本
- 编写链接器脚本
- 链接器脚本
- Linker Script 链接器脚本
- 007.链接器命令脚本LD文件教程(1)
- [LinkerScript.5] 简单的链接器脚本命令: 文件命令 - Simple Linker Script Commands: File Commands
- Linker script 链接器脚本