Bootloader啟動過程

2021-06-04 17:28:40 字數 1094 閱讀 2502

bootloader啟動過程:

系統加電後,先執行第一階段彙編**,進行相應的內部硬體初始化(暫存器、記憶體等),將第二階段c**複製到ram位址bloc_abs_base,然後跳轉到第二階段開始執行,在第二階段中,從彙編**跳轉到c 的main()函式,繼續如下工作:

外圍硬體初始化(串列埠、usb等);

將flash中的kernel載入到sdram的kernel區域;

將flash中的ramdisk載入到sdram的ramdisk區域;

根據使用者選擇,進入命令模組或啟動kernel

還可以根據需要新增協議實現更複雜的功能如tftp,當然要有相關硬體支援

常用的bootloader:

1:blob

是一款功能強大的bootloader,源**開放

2:armboot

是基於arm的嵌入式系統設計的,它支援多種flash

3:redboot

redboot是由redhat公司開發的

4:vivi

vivi是開發源**的,適用於用於arm9,主要用於s3c2410,並且它的**組織形式類似於linux,所以熟悉linux核心**結構的人會很容易理解vivi的構造

5:u-boot

u-boot是遵循gpl條款的開發源**專案,其源**目錄、編譯形式與linux核心很相似

其特點:

(1)      支援多協議,scc/fec乙太網、ootp/tftp引導、ip和mac的預置功能

(4)      識別二進位制、elf32、uimage格式的image,對linux引導有獨特的支援。u-boot對linux核心進一步封裝為uimage

u-boot**目錄結構:

board:

commom:

cpu:

disk:

doc:

drivers:

fs:include:

net:

lib_arm:

tools: 建立s-record格式檔案和u-boot的工具

examples:

lib_***:處理器體系相關的檔案目錄

post:上電自檢檔案目錄

rtc:rtc驅動程式

Boot Loader啟動過程

由於boot loader的實現依賴與cpu的體系結構,因此大多數的boot loader都分為stage1和stage2兩個階段 1,bootloader 的第一階段 stage1 工作流程 1.1,硬體裝置初始化通常包括如下步驟 按先後順序執行 復位 reset 設定cpu為超級保護模式 svc...

bootloader啟動過程詳細說明

今天早上看了一上午的bootloader簡單原始碼,終於捋順了bootloader的執行過程,之前只是知道bootloader 會先被irom中的 拷貝到iram中一部分,然後執行這部分 會把整個bootloader 拷貝到sdram中,最終在sdram執行剩下的 而這段 會把kernel拷貝到sd...

bootloader 啟動過程詳細說明

今天早上看了一上午的bootloader簡單原始碼,終於捋順了bootloader的執行過程,之前只是知道bootloader 會先被irom中的 拷貝到iram中一部分,然後執行這部分 會把整個bootloader 拷貝到sdram中,最終在sdram執行剩下的 而這段 會把kernel拷貝到sd...