基于海思Hi3516dv300的u-boot-2016.11分析

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 = .;
}

 

posted @ 2019-05-14 11:39  守护者1  阅读(1497)  评论(0编辑  收藏  举报