1 1 4 鏈結器指令碼

2021-07-16 21:14:47 字數 725 閱讀 3600

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 = .

/* 以下為鏈結器指令碼範例**,為table鍵 */

sections

. = align(4);

.data :

. = align(4);

.bss_start = .;

.bss :

bss_end = .;

}

鏈結器指令碼

鏈結器指令碼構成 段 起始鏈結位址 對齊 變數 段首檔案 乙個可執行程式通常由 段,資料段,bss段構成。其中資料段存放的是初始化後的前期變數 bss段存放的是沒有初始化的前期變數 乙個鏈結器指令碼led.lds例子 output arch arm 指定輸出檔案的平台體系是arm entry sta...

鏈結器指令碼

參考 程式設計師的自我修養 鏈結 裝載與庫 什麼是鏈結指令碼?鏈結指令碼就是程式鏈結時的參考檔案,其主要目的是描述如何把輸入檔案中的段 section 對映到輸出檔案中,並控制輸出檔案的儲存布局。鏈結指令碼的基本命令式sections命令,乙個sections命令內部包含乙個或多個段,段 secti...

Linker script 鏈結器指令碼(1)

每個鏈結都由鏈結指令碼控制著,指令碼由鏈結器命令語言組成。指令碼的主要目的是描述如何把輸入檔案中的節 sections 對映到輸出檔案中,並控制輸出檔案的儲存布局。大多數的鏈結指令碼就是做這些事情的,但在有必要時,指令碼也可以指導鏈結器執行一些其他的操作。鏈結器總是使用鏈結器指令碼,如果你沒有提供乙...