全網(wǎng)瘋傳的Bootloader學(xué)習(xí)資料
目錄
一、uboot基礎(chǔ)了解
1. U-boot是什么
2. U-boot主要特性及功能
3. U-boot下載地址
4. U-boot目錄結(jié)構(gòu)
5. 如何編譯Uboot
6. U-boot工作模式
7. U-boot的存放位置
8. U-boot系列文章匯總
一U-boot是什么
U-Boot,全稱Universal Boot Loader,是遵循GPL條款的從FADSROM、8xxROM、PPCBOOT逐步發(fā)展演化而來的 開放源碼項(xiàng)目。
U-boot,是一個(gè)主要用于嵌入式系統(tǒng)的引導(dǎo)加載程序,可以支持多種不同的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu),其主要作用為:引導(dǎo)系統(tǒng)的啟動(dòng)!目前,U-Boot不僅支持Linux系統(tǒng)的引導(dǎo),還支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS, android等多種嵌入式操作系統(tǒng)。
二U-boot主要特性及功能
-
開放:開放的源代碼
-
多平臺(tái):支持多種嵌入式操作系統(tǒng),如Linux、NetBSD、android等
-
生態(tài):有豐富的設(shè)備驅(qū)動(dòng)源碼,如以太網(wǎng)、SDRAM、LCD等,同時(shí)也具有豐富的開發(fā)文檔。
三U-boot下載地址
目錄 | 含義 |
---|---|
arch | 各個(gè)廠商的硬件信息,目錄下包括支持的處理器類型 |
arch/arm/cpu/xxx | 每一個(gè)子文件夾,包含一種cpu系列。每個(gè)子文件夾下包含cpu.c(CPU初始化),interrupts.c(設(shè)置中斷和異常),start.S(U-boot的啟動(dòng)文件,早期的初始化)。 |
board | 與開發(fā)板有關(guān),每一個(gè)子文件夾代表一個(gè)芯片廠家,芯片廠家下,每一個(gè)子文件夾,表示一個(gè)開發(fā)板 |
common | 存放與處理器體系無關(guān)的通用代碼,可以說為通用核心代碼! |
cmd | 存放uboot的相關(guān)命令實(shí)現(xiàn)部分 |
drivers | 存放外圍芯片驅(qū)動(dòng),網(wǎng)卡,USB等 |
disk | 存放驅(qū)動(dòng)磁盤的分區(qū)處理代碼 |
fs | 本目錄下存放文件系統(tǒng)相關(guān)代碼,每一個(gè)子文件夾表示文件系統(tǒng) |
net | 網(wǎng)絡(luò)協(xié)議相關(guān)代碼 |
doc | uboot說明文檔 |
include | 各種頭文件 |
post | 上電自檢代碼 |
api | 外部擴(kuò)展程序的API和示例 |
tools | 編譯S-Record或者U-boot鏡像的相關(guān)工具 |
五如何編譯Uboot
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean make ARCH=arm CORSS_COMPILE=arm-linux-gnueabihf- colibri-imx6ull_defconfig make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8
ARCH=arm:arm架構(gòu)
CROSS_COMPILE:使用的交叉編譯器
如果編譯出錯(cuò),your compile older 6.0,可以參考【1】
colibri-imx6ull_defconfig:指定一個(gè)config文件,作為相關(guān)版型的配置信息
V=1:這個(gè)選項(xiàng)能顯示出編譯過程中的詳細(xì)信息,即是verbose編譯模式
-j8:多核并行編譯,可以提高編譯速度,受硬件限制
六U-boot工作模式
U-boot的工作模式有:啟動(dòng)加載模式和下載模式
-
啟動(dòng)加載模式:
啟動(dòng)加載模式,為Bootloader正常工作模式,一款開發(fā)板,正常上電后,Bootloader將嵌入式操作系統(tǒng)從FLASH中加載到SDRAM中運(yùn)行。
-
下載模式:
下載模式,就是Bootloader通過通信,將內(nèi)核鏡像、根文件系統(tǒng)鏡像從PC機(jī)直接下載到目標(biāo)板的FLASH中。
七U-boot的存放位置
嵌入式系統(tǒng),一般使用Flash來作為啟動(dòng)設(shè)備,Flash上存儲(chǔ)著U-boot、環(huán)境變量、內(nèi)核映像、文件系統(tǒng)等。U-boot存放于Flash的起始地址,所在扇區(qū)由Soc規(guī)定。