- 論壇徽章:
- 0
|
以下為對(duì)u-boot-1.3.3/board/davinci/dv-evm/u-boot.lds文件的簡(jiǎn)要分析:
OUTPUT_FORMAT("elf32-littlearm",
"elf32-littlearm", "elf32-littlearm")
/*指定輸出可執(zhí)行文件是elf格式,32位ARM指令,小端*/
OUTPUT_ARCH(arm) /*指定輸出可執(zhí)行文件的平臺(tái)為ARM*/
ENTRY(_start)
/*指定輸出可執(zhí)行文件的起始代碼段為_start*/
SECTIONS
{
/*指定可執(zhí)行image文件的全局入口點(diǎn),通常這個(gè)地址都放在ROM(flash)0x0位置。必須使編譯器知道這個(gè)地址,通常都是修改此處來完成*/
. = 0x00000000; /*從0x0位置開始*/
. =
ALIGN(4); /*代碼以4字節(jié)對(duì)齊*/
.text :
{
cpu/arm926ejs/start.o (.text) /*代碼的第一個(gè)代碼部分*/
*(.text) /*其它代碼部分*/
}
. =
ALIGN(4);
.rodata : { *(.rodata) } /*指定只讀數(shù)據(jù)段*/
.
= ALIGN(4);
.data : { *(.data) } /*指定讀/寫數(shù)據(jù)段*/
. = ALIGN(4);
.got : { *(.got) } /*指定got段,
got段式是uboot自定義的一個(gè)段, 非標(biāo)準(zhǔn)段*/
. = .;
/*把__u_boot_cmd_start賦值為當(dāng)前位置, 即起始位置*/
__u_boot_cmd_start = .;
/*指定u_boot_cmd段, uboot把所有的uboot命令放在該段.*/
.u_boot_cmd : {
*(.u_boot_cmd) }
/*把__u_boot_cmd_end賦值為當(dāng)前位置,即結(jié)束位置*/
__u_boot_cmd_end = .;
. = ALIGN(4);
__bss_start = .;
/*把__bss_start賦值為當(dāng)前位置,即bss段的開始位置*/
.bss : { *(.bss) }
/*指定bss段*/
_end = .; /*把_end賦值為當(dāng)前位置,即bss段的結(jié)束位置*/
}
本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/27691/showart_1090412.html |
|