嵌入式系統(tǒng)中Uboot啟動流程
首先介紹下UBoot,Uboot是嵌入式系統(tǒng)中最常用的bootloader,這里我們以s3c2410為例分析一下uboot的啟動流程。首先通過uboot的鏈接文件,我們可以看到uboot運行是執(zhí)行的第一段代碼在start.S中。
ENTRY(_start)
SECTIONS
{
。 = 0x00000000;
。 = ALIGN(4);
.text :
{
cpu/arm920t/start.o (.text)
*(.text)
}
。 = ALIGN(4);
.rodata : { *(.rodata) }
。 = ALIGN(4);
.data : { *(.data) }
。 = ALIGN(4);
.got : { *(.got) }
。 = 。;
__u_boot_cmd_start = 。;
.u_boot_cmd : { *(.u_boot_cmd) }
__u_boot_cmd_end = 。;
。 = ALIGN(4);
__bss_start = 。;
.bss : { *(.bss) }
_end = 。;
}
我們找到這個文件,以這個文件為起點看uboot的啟動流程。這里我們通過一個圖來說明這個過程。
最后我們把整個uboot在執(zhí)行過程中,代碼的搬移籍內(nèi)存的使用情況通過一個圖,來說明一下。
以上就是Uboot的啟動流程了。