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