lds 文件说明

主要符号说明

  1. OUTPUT_FORMAT(bfdname)

指定输出可执行文件格式.

  1. OUTPUT_ARCH(bfdname)

指定输出可执行文件所运行 CPU 平台

  1. ENTRY(symbol)

指定可执行文件的入口段

段定义说明

1.  段定义格式

SECTIONS { ...

段名 : {

内容

}

...

}

5.1.3 u­boot.lds 文件说明

OUTPUT_FORMAT("elf32­littlearm", "elf32­littlearm", "elf32­littlearm")

;指定输出可执行文件是 elf 格式,32 位 ARM 指令,小端 OUTPUT_ARCH(arm)

;指定输出可执行文件的平台为 ARM

ENTRY(_start)

;指定输出可执行文件的起始代码段为_start. SECTIONS

{

. = 0x00000000  ; 从 0x0 位置开始

. = ALIGN(4) ; 代码以 4 字节对齐

.text      :  ;指定代码段

{

cpu/arm920t/start.o   (.text) ; 代码的第一个代码部分

*(.text) ;其它代码部分

}

. = ALIGN(4)

.rodata : { *(.rodata) } ;指定只读数据段

. = ALIGN(4);

.data : { *(.data) } ;指定读/写数据段

. = ALIGN(4);

.got : { *(.got) } ;指定 got 段, got 段式是 uboot 自定义的一个段, 非标准段

    u_boot_cmd_start = . ;把  u_boot_cmd_start 赋值为当前位置, 即起始位置

.u_boot_cmd : { *(.u_boot_cmd) } ;指定 u_boot_cmd 段, uboot 把所有的 uboot 命令放在该段.

    u_boot_cmd_end = .;把  u_boot_cmd_end 赋值为当前位置,即结束位置

. = ALIGN(4);

    bss_start = .; 把  bss_start 赋值为当前位置,即 bss 段的开始位置

.bss : { *(.bss) }; 指定 bss 段

_end = .; 把_end 赋值为当前位置,即 bss 段的结束位置

}

猜你喜欢

转载自www.cnblogs.com/fanweisheng/p/11105616.html