OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm","elf32-littlearm")
//指定输出可执行文件是elf格式,32位ARM指令,小端
OUTPUT_ARCH(arm)
//OUTPUT_ARCH(arm)定义输出的目标处理器的架构
ENTRY(_start)
//定义了程序运行时候的第一个运行模块。该模块定义在cpu\arm920t\start.S文件中。
SECTIONS
{
. = 0x00000000; //从0x0位置开始
. = ALIGN(4); //代码以四字节对齐
.text : //指定代码段
{
cpu/arm920t/start.o (.text) //代码的第一个代码部分
*(.text) //其它代码部分
}
. = ALIGN(4);
.rodata: { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.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
(NOLOAD) : { *(.bss) . = ALIGN(4); } //指定bss段
_end = .; //把_end赋值为当前位置,即bss段的结束位置
}