您的位置:首页 > 其它

uboot之lds文件说明

2010-10-17 14:47 253 查看
lds文件说明

主要符号说明

1、OUTPUT_FORMAT(bfdname)

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

2、OUTPUT_ARCH(bfdname)

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

3、ENTRY(symbol)

指定可执行文件的入口段

段定义说明

1、段定义格式

SECTIONS { ...

段名:{

内容

}

...

}

u-boot.lds 文件说明

Code:

OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
/* 指定输出可执行文件是elf格式,32位ARM指令,小端模式 */
/*OUTPUT_FORMAT("elf32-arm", "elf32-arm", "elf32-arm")*/
OUTPUT_ARCH(arm)
/* 指定输出可执行文件的平台是ARM */
ENTRY(_start)
/* 指定输出可执行文件的起始代码段为 _start */
SECTIONS
{
/* 指定可执行image文件的全局入口点,通常这个地址都放在ROM(flash)0x0位置。

必须使编译器知道这个地址,通常是修改此处来完成 */
. = 0x00000000;

. = ALIGN(4); /* 代码以4字节对齐 */
.text :
{
cpu/arm920t/start.o (.text) /* 代码的第一个代码部分 */
*(.text) /* 其他代码部分 */
}

. = ALIGN(4); /* rodata 以4字节对齐 */
.rodata : { *(.rodata) } /* 指定只读数据段 */

. = ALIGN(4); /* .data 以4字节对齐 */
.data : { *(.data) } /* 指定读,写数据段 */

. = ALIGN(4); /* .got 以4字节对齐 */
.got : { *(.got) } /* 指定got段,got段是uboot自定义的一个段,非标准段 */

. = .;
/* 把__u_boot_cmd_start 赋值为当前位置,即起始位置 */
__u_boot_cmd_start = .;
/* 指定u_boot_cmd 段,uboot把所有的uboot命令放在该段 */
.u_boot_cmd : { *(.u_boot_cmd) }
/* 把__u_boot_cmd_end 赋值为当前位置,即结束位置 */
__u_boot_cmd_end = .;

. = ALIGN(4);
__bss_start = .; /* 把__bss_start 赋值为当前位置,即bss段的开始位置 */
.bss : { *(.bss) } /* 指定bss段 */
_end = .; /* 把_end 赋值为当前位置,即bss段的结束位置 */
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: