u-boot.lds文件简介
2015-01-25 17:27
211 查看
可执行文件由许多链接在一起的对象文件组成。对象文件有许多节,如文本、数据、init 数据、bss等。这些对象文件都是由一个称为 链接器脚本(*lds)的文件链接并装入的。这个链接器脚本的功能是将输入对象文件的各节映射到输出文件中;换句话说,它将所有输入对象文件都链接到单一的可执行文件中,将该可执行文件的各节装入到指定地址处。 因此在分析u-boot代码是,首先应关注的是u-boot.lds文件,它位于$(U-BOOT_SRC_ROOT)/board/$(BOARD_NAME)目录下。
/* * OUTPUT_FORMAT(default, big, little),在链接的时候,如果使用了-EB的命令行参数,则使用这里的big * 参数指定的字节序,如果使用了-EL;的命令行参数,则使用这里的little参数指定的字节序,如果没有使用 * 任何命令行参数,则使用这里的default参数指定的字节序。 * 由$(SRC_ROOT)/board/samsung/smdk6410/u-boot.lds中的定义可见,不管在链接的时候使用了何种命令行参数, * 输出的目标文件都是使用elf32-littlearm方式的字节序。 */ /*以下语句是指定输出可执行文件是elf格式,32位ARM指令,小端 */ OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") /*指定输出可执行文件的平台为ARM*/ OUTPUT_ARCH(arm) /*指定输出可执行文件的起始代码段为_start.*/ ENTRY(_start) SECTIONS { . = 0x00000000; /*定位当前地址为0x0地址*/ . = ALIGN(4); /*指定代码以4字节对齐*/ .text : /*指定代码段 */ { arch/arm/cpu/arm1176/start.o (.text) board/samsung/smdk6410/libsmdk6410.o (.text) *(.text) } . = ALIGN(4); .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } /*指定只读数据段 */ . = ALIGN(4); .data : { *(.data) } /*指定读写数据段*/ . = ALIGN(4); .got : { *(.got) } /*指定got段, got段式是uboot自定义的一个段, 非标准段*/ . = ALIGN(4); .u_boot_list : { #include <u-boot.lst> } . = ALIGN(4); .mmudata : { *(.mmudata) } . = ALIGN(4); .rel.dyn : { __rel_dyn_start = .; *(.rel*) __rel_dyn_end = .; } .dynsym : { __dynsym_start = .; *(.dynsym) } _end = .; .bss __rel_dyn_start (OVERLAY) : { __bss_start = .; *(.bss) . = ALIGN(4); __bss_end__ = .; } /DISCARD/ : { *(.dynstr*) } /DISCARD/ : { *(.dynamic*) } /DISCARD/ : { *(.plt*) } /DISCARD/ : { *(.interp*) } /DISCARD/ : { *(.gnu*) } }
相关文章推荐
- u-boot lds文件详解
- 6410 UBOOT lds文件分析
- 关于uboot.lds文件的分析
- 四、U-boot.lds文件分析 (2011-03-11 08:59)
- U-BOOT.lds文件详解
- 关于uboot.lds文件的分析
- u-boot.lds文件诠释
- u-boot中.lds链接脚本文件的分析
- u-boot.lds 文件分析
- u-boot中.lds连接脚本文件的分析
- u-boot.lds文件诠释
- u-boot lds文件详解
- uboot源码阅读(二)什么是江湖,链接文件u-boot.lds
- u-boot中.lds链接脚本文件的分析
- u-boot中.lds连接脚本文件的分析
- ld命令和u-boot中的lds文件实例和简单实例分析
- U-Boot的LDS文件分析
- u-boot lds文件详解
- 关于uboot.lds文件的分析
- u-boot链接文件u-boot.lds分析