1.先看链接脚本文件u-boot.lds ,文件位于u-boot-2016.11\arch\arm\cpu\armv7\hi3516dv300\hw_compressed
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm) /* 设置输出文件的架构体系为arm架构 */
ENTRY(_start) /* 将_start的值设置为入口地址 */
SECTIONS
{
. = 0x80700000;
__image_copy_start =.; /* 镜像起始地址 = 0x80700000 */
. = ALIGN(4);
.text : /* 代码段 */
{
__text_start = .;
start.o (.text*)
init_registers.o (.text*)
lowlevel_init_v300.o (.text*)
ddr_training_impl.o (.text*)
ddr_training_console.o (.text*)
ddr_training_ctl.o (.text*)
ddr_training_boot.o (.text*)
ddr_training_custom.o (.text*)
uart.o (.text*)
div0.o (.text*)
emmc_boot.o (.text*)
image_data.o (.text*)
startup.o(.text*)
reset.o(.text*)
__init_end = .;
ASSERT(((__init_end - __text_start) < 0x6000), "init sections too big!");
*(.text*)
}
__text_end = .;
. = ALIGN(4);
.image : { *(.image) }
. = ALIGN(4);
.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) } /* 只读数据段 */
. = ALIGN(4);
.data : { *(.data) } /* 数据段 */
. = ALIGN(4);
.got : { *(.got) } /* got段 */
. = ALIGN(4);
__image_copy_end =.;
__bss_start = .;
.bss : { *(.bss) } /* bss段 */
__bss_end = .;
_end = .;
}