鏈結指令碼閱讀

2021-10-05 09:26:41 字數 965 閱讀 7926

具體的過程需要先閱讀u-boot.lds檔案,這個檔案在arch/arm/cpu目錄下,具體內容如下:

output_format("elf32-littlearm","elf32-littlearm","elf32-littlearm");

//定義輸出格式為小端模式

output_arch(arm) ;定義輸出的架構為arm體系結構

entry(_start) ;u-boot的入口位址為_start

sections

. = align(4) ;四位元組對齊

.rodata :

. = align(4);

.data :

. = align(4);

. = .;

__u_boot_cmd_start = . ;__u_boot_cmd_start的起始位址為命令存放區域的首位址

.u_boot_cmd : ;命令存放區

__u_boot_cmd_end = . ;命令存放區末位址

. = align(4);

__image_copy_end = . ;映像檔案複製結束位址

.rel.dyn :

.dynsym :

_end = .;

. = align(4096);

.mmutable :

.bss __rel_dyn_start (overlay) :

/discard/ : ;動態連線符號表的字串部分,與.dynsym聯用

/discard/ :

/discard/ : ;過程連線表(procedure linking table)

/discard/ :

/discard/ :

}

uboot鏈結指令碼

gnu編譯器生成的目標檔案預設為elf格式,elf檔案由若干段 section 組成,如不特殊指明,由c源程式生成的目標 中包含如下段 text 正文段 包含程式的指令 data 資料段 包含固定的資料,如常量 字串 bss 未初始化資料段 包含未初始化的變數 陣列等。c 源程式生成的目標 中還包括...

鏈結指令碼(1)

1 什麼是ld?它有什麼作用?ld是gnu binutils工具集中的乙個,是眾多linkers 鏈結器 的一種。完成的功能自然也就是鏈結器的基本功能 把各種目標檔案和庫檔案鏈結起來,並重定向它們的資料,完成符號解析。linking其實主要就是完成四個方面的工作 storage allocation...

鏈結指令碼(1)

分類 鏈結指令碼 makefile 2012 05 17 20 49 1126人閱讀收藏 舉報 指令碼linker makefile allocation file flash 1 什麼是ld?它有什麼作用?ld是gnu binutils工具集中的乙個,是眾多linkers 鏈結器 的一種。完成的功...