在嵌入式作業系統中,bootloader是在作業系統核心執行之前執行。可以初始化硬體裝置、建立記憶體空間對映圖,從而將系統的軟硬體環境帶到乙個合適狀態,以便為最終呼叫作業系統核心準備好正確的環境。在嵌入式系統中,通常並沒有像bios那樣的韌體程式(注,有的嵌入式cpu也會內嵌一段短小的啟動程式),因此整個系統的載入啟動任務就完全由bootloader來完成。在乙個基於arm7tdmi core的嵌入式系統中,系統在上電或復位時通常都從位址0x00000000處開始執行,而在這個位址處安排的通常就是系統的bootloader程式 。
三、配置u-boot
makearch=arm=cross_compile=arm-linux-gnueabi-versatilepb_config
四、編譯u-boot
make arch=arm cross_compile=arm-linux-gnueabi-;
編譯完成後,該目錄下應該生成u-boot, u-boot.bin這兩個檔案
u-boot 是編譯出來的 elf 格式的 uboot 映象檔案。
u-boot.bin:二進位制格式的 uboot 可執行映象檔案。
注:u-boot.bin是uboot編譯原始碼後直接產生的,一般的開發板,直接燒寫這個檔案
1.啟動
1.環境變數
printenv #列印u-boot中的環境變數
setenv #設定環境變數的值
命令格式 setenv $name $value
例:setenv bootfile /tftpboot/uimage
3.啟動核心
bootm #啟動記憶體中的linux核心
命令格式 bootm [$addr [$arg …]]
啟動記憶體中的映象
還有很多常用的命令,不再贅述
bootloader啟動流程
bootloader a.svc模式 關中斷 mmu cache 看門狗等 b.基本初始化 時鐘 串列埠 flash 記憶體 c.自搬移到記憶體 d.設定棧,調到c部分 e.大部分硬體初始化 網絡卡 sd卡 usb f.搬移核心到記憶體 g.執行核心 kernel a.自解壓核心 b.執行核心彙編部...
bootloader 核心啟動引數
一 啟動引數的傳遞過程 啟動引數是包裝在資料結構裡的,在linux kernel 啟動的時候 bootloader 把這個資料結構拷貝到某個位址 在改動pc 跳向核心介面的同時 通過通用暫存器 r2來傳遞這個位址的值 下面這句話就是 uboot 跳向linux kernel的 bootm 命令 th...
啟動程式BootLoader介紹
bootloader是系統加電後 作業系統核心或使用者應用程式執行之前,首先必須執行的一段程式 通過這段程式,為最終呼叫作業系統核心 執行使用者應用程式準備好正確的環境。對於嵌入式系統來說,有的使用作業系統,也有的不使用作業系統,但在系統啟動時都必須執行bootloader,為系統執行準備好軟硬體環...