基本构成:段
程序通常是由:代码段,数据段,bss段构成的。
其中数据段存放的是初始化后的前期变量,bss段存放的是没有初始化的前期变量。
在用于链接这个程序的链接器脚本中,就会反映出这几个段的信息。
后缀名为 .lds
SECTIONS{
. = 0x30000000; //代码段的起始链接地址
. = ALIGN(4); //让当前地址四字节对齐,提高ARM处理器的访问内存效率
.text : //代码段
{
start.o(.text) //代码段首文件,程序运行时会第一个被运行
*(.text) //*表示所有文件,这行表示所有文件的代码段
}
.data : //数据段
{
*(.data) //*表示所有文件,这行表示所有文件的数据段
}
. = ALIGN(4); //让当前地址四字节对齐
bss_start = . ; //定义变量,记录当前地址,以后程序中可用
.bss : //数据段
{
*(.bss) //*表示所有文件,这行表示所有文件的bss段
}
bss_end = .; //定义变量,记录当前地址
}