//
下面是
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
段的结束位置
*/
}