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
{
<tab>. = 0x30008000
<tab>. = ALIGN(4);
<tab>.text :
<tab>{
<tab>start.o(.text)
<tab>*(.text)
<tab>}
<tab>. = ALIGN(4);
<tab>.data :
<tab>{
<tab>*(.data)
<tab>}
<tab>. = ALIGN(4);
<tab>.bss_start = .;
<tab>.bss :
<tab>{
<tab>*(.bss)
<tab>}
<tab>bss_end = .;
}