u-boot.lds 檔案分析

來源:互聯網
上載者:User

 27 OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")

指定輸出的格式是32bits ARM 小端

OUTPUT_FORMAT原型為 OUTPUT_FORMAT(default, big, little),在連結的時候,如果使用了-EB的命令列參數,則使用這裡的big參數指定的位元組序,如果使用了-EL的命令列參數,則使用這裡的little參數指定的位元組序,如果沒有使用任何命令列參數,則使用這裡的default參數指定的位元組序。由uboot.lds中的定義可見,不管在連結的時候使用了何種命令列參數,輸出的目標檔案都是使用elf32-littlearm方式的位元組序。

 28 OUTPUT_ARCH(arm)

指出輸出可執行檔的平台是armd

 29 ENTRY(_start)

指定輸出可執行檔的起始程式碼段是_start

 30 SECTIONS
 31 {
 32     . = 0x00000000;
 33
 34     . = ALIGN(4);
 35     .text   :
 36     {
 37         cpu/arm_cortexa8/start.o    (.text)
 38         *(.text)
 39     }

32行對定位計數器進行賦值,.=0x00000000對定位計數器初始化為0x0

34 行使得當前定位計數器向四位元組對齊

35~39定義了一個輸出節 .text,冒號是文法需要。.text後花括弧中,列出了所有應當放到這個輸出節中的輸入節的名字,*是一個萬用字元,匹配任何檔案名稱,

37行表示要把/cpu/arm_cortexa8/start.o中的.text輸入節放入這個輸出檔案的.text輸出節。

38行*(.text)的意思是所有的輸入檔案中的.text輸入節;

 41     . = ALIGN(4);
 42     .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }

41 修改當前定位寄存器,使的下面的.rodata輸出節與4bytes對齊

42 定義.rodata輸出節為所有檔案的.rodata輸入節

 44     . = ALIGN(4);
 45     .data : { *(.data) }
 46
 47     . = ALIGN(4);
 48     .got : { *(.got) }

44 ~ 48 .data和.got輸出節的定義類似於.rodata,要求這兩個輸出節要以4 bytes對齊

 

 50     __u_boot_cmd_start = .;
 51     .u_boot_cmd : { *(.u_boot_cmd) }
 52     __u_boot_cmd_end = .;

50 把__u_boot_cmd_start設定為當前定位技術器,即.u_boot_cmd節的起始位置

52 把__u_boot_cmd_end設定為當前定位計數器,即.u_boot_cmd節的結束位置

51 定義.u_boot_cmd輸出節為所有輸入檔案的.u_boot_cmd輸入節

 54     . = ALIGN(4);
 55     __bss_start = .;
 56     .bss : { *(.bss) }
 57     _end = .;
 58 }
定義.bss輸出節,並且把__bss_start定義為__bss_start輸出節的起始位置,把_end定義為__bss節的結束位置

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.