[國嵌筆記][018][連結器指令碼]

來源:互聯網
上載者:User

標籤:

連結器指令碼

一個可執行程式通常由:程式碼片段、資料區段、bss段構成。在用於連結這個程式的連結器指令碼中,反應的是這幾個段的資訊。

 

建立連結器指令碼

1.建立連結器指令碼  

vim led.lds

2.設定起始連結地址  

. = 0x30008000

3.對其設定  

. = ALIGN(4);

arm處理器在訪問資料的時候是以4位元組對齊的方式訪問的,所以在儲存資料時以4位元組對齊可以提高訪問效率

4.使用變數  

start_adr = .;

使用變數儲存下來的地址可以在程式中使用

5.設定程式碼片段的首檔案  

led.o(.text)

通過設定首檔案,保證一個檔案在程式開始時被執行

SECTIONS{. = 0x30008000;   //"."表示當前地址,程式碼片段之前的地址是起始地址,表示把起始地址設定成0x30008000. = ALIGN(4);   //"."表示當前地址,ALIGN(4)表示以4位元組對齊,如果當前地址不能被4整除,則下一個地址加上一個位移使之能被4整除.text : //程式碼片段{   main.o(.text)   //表示main.o在其他檔案之前*(.text)   //“*”表示所有檔案,".text"表示程式碼片段}. = ALIGN(4);.data : //資料區段{   *(.data)   //“*”表示所有檔案,".data”表示資料區段}. = ALIGN(4);bss_start = .;   //設定變數bss_start等於當前地址.bss : //bss段{   *(.bss)   //“*”表示所有檔案,".bss"表示bss段}bss_end = .;   //設定變數bss_end等於當前地址}

 

[國嵌筆記][018][連結器指令碼]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.