日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

u-boot.lds文件简介

發布時間:2023/12/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 u-boot.lds文件简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

可執行文件由許多鏈接在一起的對象文件組成。對象文件有許多節,如文本、數據、init 數據、bss等。這些對象文件都是由一個稱為?鏈接器腳本(*lds)的文件鏈接并裝入的。這個鏈接器腳本的功能是將輸入對象文件的各節映射到輸出文件中;換句話說,它將所有輸入對象文件都鏈接到單一的可執行文件中,將該可執行文件的各節裝入到指定地址處。 因此在分析u-boot代碼是,首先應關注的是u-boot.lds文件,它位于$(U-BOOT_SRC_ROOT)/board/$(BOARD_NAME)目錄下。

1 /* 2 * OUTPUT_FORMAT(default, big, little),在鏈接的時候,如果使用了-EB的命令行參數,則使用這里的big 3 * 參數指定的字節序,如果使用了-EL;的命令行參數,則使用這里的little參數指定的字節序,如果沒有使用 4 * 任何命令行參數,則使用這里的default參數指定的字節序。 5 * 由$(SRC_ROOT)/board/samsung/smdk6410/u-boot.lds中的定義可見,不管在鏈接的時候使用了何種命令行參數, 6 * 輸出的目標文件都是使用elf32-littlearm方式的字節序。 7 */ 8 /*以下語句是指定輸出可執行文件是elf格式,32位ARM指令,小端 */ 9 OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") 10 /*指定輸出可執行文件的平臺為ARM*/ 11 OUTPUT_ARCH(arm) 12 /*指定輸出可執行文件的起始代碼段為_start.*/ 13 ENTRY(_start) 14 SECTIONS 15 { 16 . = 0x00000000; /*定位當前地址為0x0地址*/ 17 18 . = ALIGN(4); /*指定代碼以4字節對齊*/ 19 .text : /*指定代碼段 */ 20 { 21 arch/arm/cpu/arm1176/start.o (.text) 22 board/samsung/smdk6410/libsmdk6410.o (.text) 23 *(.text) 24 } 25 26 . = ALIGN(4); 27 .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } /*指定只讀數據段 */ 28 29 . = ALIGN(4); 30 .data : { *(.data) } /*指定讀寫數據段*/ 31 32 . = ALIGN(4); 33 .got : { *(.got) } /*指定got段, got段式是uboot自定義的一個段, 非標準段*/ 34 35 36 . = ALIGN(4); 37 .u_boot_list : { 38 #include <u-boot.lst> 39 } 40 41 . = ALIGN(4); 42 .mmudata : { *(.mmudata) } 43 44 . = ALIGN(4); 45 46 .rel.dyn : { 47 __rel_dyn_start = .; 48 *(.rel*) 49 __rel_dyn_end = .; 50 } 51 52 .dynsym : { 53 __dynsym_start = .; 54 *(.dynsym) 55 } 56 57 _end = .; 58 59 .bss __rel_dyn_start (OVERLAY) : { 60 __bss_start = .; 61 *(.bss) 62 . = ALIGN(4); 63 __bss_end__ = .; 64 } 65 66 /DISCARD/ : { *(.dynstr*) } 67 /DISCARD/ : { *(.dynamic*) } 68 /DISCARD/ : { *(.plt*) } 69 /DISCARD/ : { *(.interp*) } 70 /DISCARD/ : { *(.gnu*) } 71 }

?

轉載于:https://www.cnblogs.com/laojie4321/p/4248531.html

總結

以上是生活随笔為你收集整理的u-boot.lds文件简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。