指定输出的格式是32bits ARM 小端
OUTPUT_FORMAT原型为 OUTPUT_FORMAT(default, big, little),在链接的时候,如果使用了-EB的命令行参数,则使用这里的big参数指定的字节序,如果使用了-EL的命令行参数,则使用这里的little参数指定的字节序,如果没有使用任何命令行参数,则使用这里的default参数指定的字节序。由uboot.lds中的定义可见,不管在链接的时候使用了何种命令行参数,输出的目标文件都是使用elf32-littlearm方式的字节序。
28 OUTPUT_ARCH(arm)
指出输出可执行文件的平台是armd
29 ENTRY(_start)
指定输出可执行文件的起始代码段是_start
32行对定位计数器进行赋值,.=0x00000000对定位计数器初始化为0x0
34 行使得当前定位计数器向四字节对齐
35~39定义了一个输出节 .text,冒号是语法需要。.text后花括号中,列出了所有应当放到这个输出节中的输入节的名字,*是一个通配符,匹配任何文件名,
37行表示要把/cpu/arm_cortexa8/start.o中的.text输入节放入这个输出文件的.text输出节。
38行*(.text)的意思是所有的输入文件中的.text输入节;
41 修改当前定位寄存器,使的下面的.rodata输出节与4bytes对齐
42 定义.rodata输出节为所有文件的.rodata输入节
44 ~ 48 .data和.got输出节的定义类似于.rodata,要求这两个输出节要以4 bytes对齐
50 __u_boot_cmd_start = .;
50 把__u_boot_cmd_start设置为当前定位技术器,即.u_boot_cmd节的起始位置
52 把__u_boot_cmd_end设置为当前定位计数器,即.u_boot_cmd节的结束位置
51 定义.u_boot_cmd输出节为所有输入文件的.u_boot_cmd输入节
54 . = ALIGN(4);
55 __bss_start = .;
56 .bss : { *(.bss) }
57 _end = .;
58 }
定义.bss输出节,并且把__bss_start定义为__bss_start输出节的起始位置,把_end定义为__bss节的结束位置
http://blog.csdn.net/kickxxx/article/details/7238298