1.  程序由 段(SECTIONS)和堆栈(STACK)组成,而段(SECTIONS)包括四个部分,分别为:代码段(.text)、数据段(.data)以及bss段(.bss)

  1.1  代码段(.text):存放要执行的程序指令

  1.2  数据段(.data):存放已初始化的全局变量

  1.3  bss段(.bss)  :存放未初始化的全局变量

  1.4  栈  :存放局部变量

  1.5  堆  :存放malloc申请的空间

2.  设置起始地址  . = 0x30008000  /* 2440内存中的起始执行地址为0x30000000 */

                                  /* 但有32k用来保存TTB,真实执行起始地址未0x30008000 */

3.  对齐设置        . = ALIGN(4)  /* 2440为32bit,要对.text, .data, .bss设置四字节对齐 */

4.  使用变量  bss_start = .       /* 用来设置当前地址存放在一个变量中 */

              bss_end = .

/* 以下为链接器脚本范例代码,<tab>为table键 */

SECTIONS{
. = 0x30008000
. = ALIGN(4);
.text :
{
start.o(.text)
*(.text)
}
. = ALIGN(4);
.data :
{
*(.data)
}
. = ALIGN(4);
.bss_start = .;
.bss :
{
*(.bss)
}
bss_end = .;}