分兩階段,第一階段主要用彙編完成,第二階段主要用c
完成。個人覺得兩個階段的分工並沒有什麼明顯的要求,很多硬體的初始化可以放到第一階段也可以放到第二階段。只不過有一些複雜工作用彙編比較麻煩。
一般來說第一階段工作:
1. 硬體裝置初始化。
2. 為載入bootloader
的第二階段**準備
ram空間。
3. 複製bootloader
的第二階段**到
ram空間中。
4. 設定好棧。
5. 跳轉到第二階段**的c
入口點。
第二階段:
1. 初始化本階段要用到的硬體裝置。
2. 檢測系統記憶體對映。
3. 將核心映像和根檔案系統映像從flash
督導ram
空間。4.
為核心設定啟動引數。
5. 呼叫核心。
bootloader與核心的互動:
bootloader與核心的互動是單向的,他們不能同時執行,
bootloader
將各類引數放在某乙個約定好的位置,再啟動核心,核心啟動後從這個位置獲得引數(比如記憶體的起始和結束位址)。
下面這個檔案就是某個bootloader
設計的詳細架構。
來自為知筆記(wiz)
uboot啟動流程概述 uboot啟動流程
u boot系統啟動流程 大多數bootloader都分為stage1和stage2兩大部分,u boot也不例外。依賴於cpu體系結構的 如裝置初始化 等 通常都放在stage1,且可以用組合語言來實現,而stage2則通常用c語言來實現,這樣可以實現複雜的功能,而且有更好的可讀性和移植性。2.1...
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...