您好,登錄后才能下訂單哦!
Uboot能夠?qū)崿F(xiàn)哪些功能,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
Uboot的來源和發(fā)展
一、Uboot的由來?
這里我們簡(jiǎn)單來了解一下Uboot的由來。Uboot一開始是由一個(gè)德國(guó)大神發(fā)起的一個(gè)項(xiàng)目,這個(gè)項(xiàng)目后面被 Wolfgang Denk 轉(zhuǎn)移到了 SourceFore.net 上來了,但是SourceForge.net上不允許以數(shù)字來開頭的項(xiàng)目命名名稱,所以改名為 PPCBoot。PPCBoot 在 2000 年 7 月 19 日 第一次被公開發(fā)布出來了;其實(shí), Uboot 從 FADSROM、8xxROM、PPCBOOT逐步發(fā)展演化而來的。這期間被很多人使用,甚至被許多Soc(System on Chip的縮寫,稱為芯片級(jí)系統(tǒng),也有稱片上系統(tǒng),意指它是一個(gè)產(chǎn)品,是一個(gè)有專用目標(biāo)的集成電路,其中包含完整系統(tǒng)并有嵌入軟件的全部?jī)?nèi)容。)廠商支持,這更加推動(dòng)了 Uboot的廣泛使用了。最終,Uboot經(jīng)過多年發(fā)展,已經(jīng)成為業(yè)內(nèi) bootloader (引導(dǎo)程序)標(biāo)準(zhǔn)了,而且現(xiàn)在大部分的嵌入式設(shè)備都會(huì)默認(rèn)使用 Uboot 來作為 bootloader了。
二、Uboot的版本號(hào)問題:
1、早期的 Uboot 的版本類似于這樣:Uboot 1.3.4(也就是比較老的版本),但是后面版本號(hào)就不是以這種方式來命名了,而是命名成,比如:Uboot-2010.06 這樣的形式了。所以我們?cè)诳吹礁鞣N Uboot的版本號(hào)時(shí),要能夠辨別出來。下面我們可以這個(gè)地方下載 Uboot 的源碼,這里不是推薦去官網(wǎng)下載 Uboot 的源碼,太慢了,這里我提供一個(gè)下載網(wǎng)站:https://ftp.denx.de/pub/u-boot/ ;這里有各個(gè)版本時(shí)期的 Uboot 源代碼版本號(hào) ,大家有需要可以下載學(xué)習(xí),同時(shí)在下載的時(shí)候,注意,一般下載后綴不帶 “ rc ” 的版本號(hào),因?yàn)閹?nbsp;“ rc ” 的版本是不穩(wěn)定的,也就是說是測(cè)試版本:
2、其實(shí) Uboot 的核心部分幾乎是沒有改變的,盡管后面出來很多新的Uboot 版本號(hào),只是說越新的版本支持的嵌入式開發(fā)板越來越多,所以總的來說,新版本和老版本 Uboot核心并沒有差異。其實(shí)有的時(shí)候我們?cè)诳?Linux源代碼的時(shí)候,看老版本的相反可能比較經(jīng)典和好入門。
三、Uboot 的可移植性的理解:
1、Uboot就是 universal bootloader (通用的引導(dǎo)程序),意思是說,在各種地方都可以用。舉個(gè)例子來說,Uboot 可以支持 嵌入式 Linux 系統(tǒng)的引導(dǎo)啟動(dòng),同時(shí)它也支持 NetBSD ,VxWorks , android 等嵌入式操作系統(tǒng),而且它還能支持 MIPS 、x86 等常用系列的處理器?,F(xiàn)在一般來說,Uboot對(duì) PowerPC 系列處理器支持最為完整豐富,對(duì) Linux 系統(tǒng)支持最為完善。所以總的來說,Uboot 的可移植性非常好。
Uboot有哪些功能
一、自身可以開機(jī)直接啟動(dòng):
一般的 Soc 都支持多種啟動(dòng)方式,比如說 SD 卡啟動(dòng)、 NorFlash 啟動(dòng)、NandFlash 啟動(dòng) 等方式,所以說,必須根據(jù)具體的SoC的啟動(dòng)設(shè)計(jì)來設(shè)計(jì)uboot; 而且Uboot 必須進(jìn)行和硬件相對(duì)應(yīng)的代碼級(jí)別的更改和移植,才能夠保證可以從相應(yīng)的啟動(dòng)介質(zhì)啟動(dòng);Uboot 中第一階段的 start .s 文件中具體處理了這一塊。
二、能夠引導(dǎo)操作系統(tǒng)內(nèi)核啟動(dòng)并給內(nèi)核傳參:
Uboot的最終目的是為了啟動(dòng)內(nèi)核;Linux 內(nèi)核在設(shè)計(jì)的時(shí)候,設(shè)計(jì)為是可以被傳參的,也就是說我們可以在 Uboot 中事先給 Linux 內(nèi)核準(zhǔn)備一些啟動(dòng)參數(shù)放在內(nèi)存中特定位置,然后再傳給Linux內(nèi)核,Linux內(nèi)核啟動(dòng)后就會(huì)到這個(gè)特定的位置拿 Uboot傳給它的參數(shù),然后再 Linux 內(nèi)核中解析這些參數(shù),這些參數(shù)將被用來指導(dǎo) Linux內(nèi)核的啟動(dòng)過程。
三、能夠提供系統(tǒng)部署功能:
Uboot 必須能夠被我們借助而完成整個(gè)系統(tǒng) ( 這其中包括 Uboot 、Kernel 、 rootfs 等的鏡像)在 Flash 上的燒錄下載工作
四、能進(jìn)行 Soc 級(jí)和板級(jí)硬件管理:
Uboot 中實(shí)現(xiàn)了一部分硬件的控制能力(Uboot中初始化了一部分硬件),這是因?yàn)?Uboot為完成一些任務(wù)必須得讓這些硬件工作,比如說 Uboot 要能夠?qū)崿F(xiàn)刷機(jī),它就必須能夠驅(qū)動(dòng) iNand (iNAND 是 SanDisk 公司研發(fā)的存儲(chǔ)芯片)。SoC 級(jí)(譬如串口)就是 SoC 內(nèi)部外設(shè),板級(jí)就是 SoC 外面開發(fā)板上面的硬件(譬如網(wǎng)卡、iNand)。
五、小結(jié):
總之,Uboot 就是為了能夠啟動(dòng)內(nèi)核,讓我們的操作系統(tǒng)跑起來。
Uboot 的生命周期
uboot的生命周期就是指:uboot什么時(shí)候開始運(yùn)行,什么時(shí)候結(jié)束運(yùn)行。
uboot本質(zhì)上是一個(gè)裸機(jī)程序(不是操作系統(tǒng)),一旦uboot開始SoC就會(huì)單純運(yùn)行uboot(意思就是uboot運(yùn)行的時(shí)候別的程序是不可能同時(shí)運(yùn)行的),一旦uboot結(jié)束運(yùn)行則無法再回到uboot(所以u(píng)boot啟動(dòng)了內(nèi)核后uboot自己本身就死了,要想再次看到uboot界面只能重啟系統(tǒng)。重啟并不是復(fù)活了剛才的uboot,重啟只是uboot的另一生)。
uboot的入口和出口。uboot的入口就是開機(jī)自動(dòng)啟動(dòng),uboot的唯一出口就是啟動(dòng)內(nèi)核。uboot還可以執(zhí)行很多別的任務(wù)(譬如燒錄系統(tǒng)),但是其他任務(wù)執(zhí)行完后都可以回到uboot的命令行繼續(xù)執(zhí)行uboot命令,而啟動(dòng)內(nèi)核命令一旦執(zhí)行就回不來了。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。