uboot啟動流程概述 uboot啟動流程

2021-10-13 15:02:32 字數 871 閱讀 9950

u-boot系統啟動流程

大多數bootloader都分為stage1和stage2兩大部分,u-boot也不例外。依賴於cpu體系結構的**(如裝置初始化**等) 通常都放在stage1,且可以用組合語言來實現,而stage2則通常用c語言來實現,這樣可以實現複雜的功能,而且有更好的可讀性和移植性。

2.1 stage1 (start.s**結構)

u-boot的stage1**通常放在start.s檔案中,它用組合語言寫成,其主要**部分如下:

(1) 定義入口由於乙個可執行的image必須有乙個入口點,並且只能有乙個全域性入口,通常這個入口放在rom(flash) 的0x0位址,因此,必須通知編譯器以使其知道這個入口,該工作可通過修改聯結器指令碼來完成。

(2) 設定異常向量(exception vector) 。

(3) 設定cpu的速度、時鐘頻率及中斷控制暫存器。

(4) 初始化記憶體控制器

(5) 將rom中的程式複製到ram中。

(6) 初始化堆疊

(7) 轉到ram中執行,該工作可使用指令ldr pc來完成。

2.2 stage2 c語言**部分

lib_arm/board.c中的start_armboot是c語言開始的函式,也是整個啟動**中c語言的主函式,同時還是整個u-boot(armboot) 的主函式,該函式主要完成如下操作:

(1) 呼叫一系列的初始化函式。

(2) 初始化flash裝置。

(3) 初始化系統記憶體分配函式。

(4) 如果目標系統擁有nand裝置,則初始化nand裝置。

(5) 如果目標系統有顯示裝置,則初始化該類裝置。

(7) 進入命令迴圈(即整個boot的工作迴圈) ,接受使用者從串列埠輸入的命令,然後進行相應的工作

u boot啟動流程

uboot啟動流程分析 華清遠見嵌入式學院講師。uboot是嵌入式系統中最常用的bootloader,這裡我們以s3c2410為例分析一下uboot的啟動流程。首先通過uboot的鏈結檔案,我們可以看到uboot執行是執行的第一段 在start.s中。entry start sections ali...

uboot啟動流程

華清遠見嵌入式學院 講師。uboot是嵌入式系統中最常用的bootloader,這裡我們以s3c2410為例分析一下uboot的啟動流程。首先通過uboot的鏈結檔案,我們可以看到uboot執行是執行的第一段 在start.s中。entry start sections align 4 rodata...

u boot啟動流程

uboot是用來幹什麼的,有什麼作用?uboot 屬於bootloader的一種,是用來引導啟動核心的,它的最終目的就是,從flash中讀出核心,放到記憶體中,啟動核心 所以,由上面描述的,就知道,uboot需要具有讀寫flash的能力。uboot是怎樣引導啟動核心的?uboot剛開始被放到flas...