http://blog.youkuaiyun.com/yangxingbo0311/article/details/7333957
24 OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")指定输出可执行文件是elf格式,32位ARM指令,小端
25 OUTPUT_ARCH(arm)指定输出可执行文件的平台为ARM
26 ENTRY(_start)
其中,ENTRY(_start)指明程序的入口点为_start标号。=0x00000000指明目标代码的起始地址为0x00000000。这一段地址可以是SDRAM的起始地址;
. = ALIGN(4);表示以四字节对齐
.text :
{
cpu/s3c24xx/start.o (.text) 代码的第一个代码部分,指明start.S是入口程序代码,被放到代码段的开头
cpu/s3c24xx/s3c2416/cpu_init.o (.text)
cpu/s3c24xx/onenand_cp.o (.text)
cpu/s3c24xx/nand_cp.o (.text)
cpu/s3c24xx/movi.o (.text)
*(.text)
}
40 . = ALIGN(4); 以四字节对齐
41 .rodata : { *(.rodata) } 指定只读数据段,RO段
42 . = ALIGN(4);
43 .data : { *(.data) }指定读/写数据段,RW段,表示从0x00000000开始放置所有目标文件的代码段
44 . = ALIGN(4);
45 .got : { *(.got) }指定got段,got段式是uboot自定义的一个段,非标准段。
46
47 . = .;
48 __u_boot_cmd_start = .; 把__u_boot_cmd_start赋值为当前位置,即起始位置
49 .u_boot_cmd : { *(.u_boot_cmd) }指定u_boot_cmd段,uboot把所有的uboot命令放在该段
50 __u_boot_cmd_end = .;把__u_boot_cmd_end赋值为当前位置,即结束位置
51
52 . = ALIGN(4);
53 .mmudata : { *(.mmudata) }
54
55 . = ALIGN(4);
56 __bss_start = .;把__bss_start赋值为当前位置,即bss段的开始位置
57 .bss : { *(.bss) }指定bss段
58 _end = .;把_end赋值为当前位置,即bss段的结束位置。