arm bootloder最小启动

来源:互联网 发布:手机五线谱制作软件 编辑:程序博客网 时间:2024/06/05 06:19

bootloder的最终目的是要启动内核


所以最小的bootloder要具备以下功能

 1.关看门狗

2.设置时钟

3.初始化SDRAM

4.重定位 (把bootloder本身的代码从flash中复制到它的链接地址去,这个链接地址是由链接文件设置的)

/*链接节如下*/

SECTIONS {
    . = 0x33f80000;
    .text : { *(.text) }
    
    . = ALIGN(4);
    .rodata : {*(.rodata*)} 
    
    . = ALIGN(4);
    .data : { *(.data) }
    
    . = ALIGN(4);
    __bss_start = .;
    .bss : { *(.bss)  *(COMMON) }
    __bss_end = .;
}

5.然后跳转到 MAIN函数中区执行

bootloder的main函数主要执行如下任务

   5.1从nannflah中把内核拷贝到sdram中执行

   5.2设置内核的启动参数(set_start_tag())

   5.3 跳转到内核去执行

       theKernel = (void (*)(int, int, unsigned int))0x30008000;
theKernel(0, 362, 0x30000100);