在链接脚本中:
1、指定了链接地址
2、规定不同段的位置、不同文件相同段的位置
3、按4字节对齐,便于uboot源码处理
4、除了通用的段以外,还有一个u_boot_cmd段,专门用于存放uboot命令
5、提供__u_boot_cmd_start、__u_boot_cmd_end、__bss_start、_end,用于uboot源码
SECTIONS
{
. = 0x00000000; /*链接地址是0x0+0x33F80000,第二个数出现在链接命令中,是在board/smdk2410/config.mk中指定*/
. = ALIGN(4); /*4字节对齐*/
.text :
{
cpu/arm920t/start.o (.text) /*第一个放start.o的代码段*/
*(.text) /*接着放其它文件的代码段*/
}
. = ALIGN(4);
.rodata : { *(.rodata) } /*所有文件的只读数据段*/
. = ALIGN(4);
.data : { *(.data) } /*所有文件的数据段*/
. = ALIGN(4);
.got : { *(.got) } /*所有文件的*/
. = .;
__u_boot_cmd_start = .; /*u-boot自定义段起始地址*/
.u_boot_cmd : { *(.u_boot_cmd) } /*所有文件的u-boot自定义段*/
__u_boot_cmd_end = .; /*u-boot自定义段结束地址*/
. = ALIGN(4);
__bss_start = .; /*bss段起始地址*/
.bss : { *(.bss) } /*所有文件的bss段*/
_end = .; /*bss段结束地址*/
}