您的位置:首页 > 其它

十.链接器脚本

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一定存放在代码段的开始部分
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: