1. 程序由 段(SECTIONS)和堆棧(STACK)組成,而段(SECTIONS)包括四個部分,分別爲:代碼段(.text)、數據段(.data)以及bss段(.bss)ide
1.1 代碼段(.text):存放要執行的程序指令內存
1.2 數據段(.data):存放已初始化的全局變量it
1.3 bss段(.bss) :存放未初始化的全局變量table
1.4 棧 :存放局部變量class
1.5 堆 :存放malloc申請的空間變量
2. 設置起始地址 . = 0x30008000 /* 2440內存中的起始執行地址爲0x30000000 */程序
/* 但有32k用來保存TTB,真實執行起始地址未0x30008000 */
數據
3. 對齊設置 . = ALIGN(4) /* 2440爲32bit,要對.text, .data, .bss設置四字節對齊 */腳本
4. 使用變量 bss_start = . /* 用來設置當前地址存放在一個變量中 */tab
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 = .; }