您的位置:首页 > 其它

uboot 之uboot.lds分析

2011-02-21 10:20 239 查看
//

下面是
Uboot/board/tc2410/u-boot.lds

OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")

//
指定输出可执行文件是elf
格式,32
位ARM
指令,
小端
*/

OUTPUT_ARCH(arm)

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

ENTRY(_start)

//
指定函数入口点为_start
。cpu/arm920t/start.S
中定义。

SECTIONS

{

//

指定可执行image
文件的全局入口点,通常这个地址都放在ROM(flash)0x0
位置。必须使编译器知道这个地址,通常都是修改此处来完成
*/

. = 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
段, 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
段的结束位置
*/

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: