啟動載入器BootLoader

2021-10-14 17:06:54 字數 1033 閱讀 5229

在嵌入式作業系統中,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,為系統執行準備好軟硬體環...