• <tbody id="wslfv"><pre id="wslfv"></pre></tbody>
    <span id="wslfv"></span>
    <tbody id="wslfv"><pre id="wslfv"></pre></tbody>
    <th id="wslfv"><track id="wslfv"><rt id="wslfv"></rt></track></th>

    <li id="wslfv"><acronym id="wslfv"></acronym></li>
    更多課程 選擇中心

    嵌入式培訓
    達內IT學院

    400-111-8989

    嵌入式的你,為啥要懂uboot?

    • 發布:嵌入式培訓
    • 來源:嵌入式資訊
    • 時間:2020-07-17 10:56

    1.為什么要有uboot

    1.1、計算機系統的主要部件

    (1)計算機系統就是以CPU為核心來運行的系統。典型的計算機系統有:PC機(臺式機+筆記本)、嵌入式設備(手機、平板電腦、游戲機)、單片機(家用電器像電飯鍋、空調)

    (2)計算機系統的組成部件非常多,不同的計算機系統組成部件也不同。但是所有的計算機系統運行時需要的主要核心部件都是3個東西:

    CPU + 外部存儲器(Flash/硬盤) + 內部存儲器(DDR SDRAM/SDRAM/SRAM)

    1.2、PC機的啟動過程

    (1)部署:典型的PC機的BIOS程序部署在PC機主板上(隨主板出廠時已經預制了),操作系統部署在硬盤上,內存在掉電時無作用,CPU在掉電時不工作。

    (2)啟動過程:PC上電后先執行BIOS程序(實際上PC的BIOS就是NorFlash),BIOS程序負責初始化DDR內存,負責初始化硬盤,然后從硬盤上將OS鏡像讀取到DDR中,然后跳轉到DDR中去執行OS直到啟動(OS啟動后BIOS就無用了)

    1.3、典型嵌入式linux系統啟動過程

    (1)典型嵌入式系統的部署:uboot程序部署在Flash(能作為啟動設備的Flash)上、OS部署在FLash(嵌入式系統中用Flash代替了硬盤)上、內存在掉電時無作用,CPU在掉電時不工作。

    (2)啟動過程:嵌入式系統上電后先執行uboot、然后uboot負責初始化DDR,初始化Flash,然后將OS從Flash中讀取到DDR中,然后啟動OS(OS啟動后uboot就無用了)

    總結:嵌入式系統和PC機的啟動過程幾乎沒有兩樣,只是BIOS成了uboot,硬盤成了Flash。

    1.4、android系統啟動過程

    (1)Android系統的啟動和Linux系統(前面講的典型的嵌入式系統啟動)幾乎一樣。幾乎一樣意思就是前面完全一樣,只是在內核啟動后加載根文件系統后不同了。

    (2)可以認為啟動分為2個階段:第一個階段是uboot到OS啟動;第二個階段是OS啟動后到rootfs加載到命令行執行;現在我們主要研究第一個階段,android的啟動和linux的差別在第二階段。

    1.5、總結:uboot到底是干嘛的

    (1)uboot主要作用是用來啟動操作系統內核。

    (2)uboot還要負責部署整個計算機系統。

    (3)uboot中還有操作Flash等板子上硬盤的驅動。

    (4)uboot還得提供一個命令行界面供人來操作。

    2.為什么是uboot

    2.1、uboot從哪里來的?

    (1)uboot是SourceForge上的開源項目

    (2)uboot項目的作者:一個德國人最早發起的項目

    (3)uboot就是由一個人發起,然后由整個網絡上所有感興趣的人共同維護發展而來的一個bootloader。

    2.2、uboot的發展歷程

    (1)自己使用的小開源項目。

    (2)被更多人認可使用

    (3)被SoC廠商默認支持。

    總結:uboot經過多年發展,已經成為事實上的業內bootloader標準。現在大部分的嵌入式設備都會默認使用uboot來做為bootloader。

    2.3、uboot的版本號問題

    (1)早期的uboot的版本號類似于這樣:uboot1.3.4。后來版本號便成了類似于uboot-2010.06。

    (2)uboot的核心部分幾乎沒怎么變化,越新的版本支持的開發板越多而已,對于一個老版本的芯片來說,新舊版本的uboot并沒有差異。

    2.4、uboot的可移植性的正確理解

    (1)uboot就是universal bootloader(通用的啟動代碼),通用的意思就是在各種地方都可以用。所以說uboot具有可移植性。

    (2)uboot具有可移植性并不是說uboot在哪個開發板都可以隨便用,而是說uboot具有在源代碼級別的移植能力,可以針對多個開發板進行移植,移植后就可以在這個開發板上使用了。

    3.uboot必須解決哪些問題

    3.1、自身可開機直接啟動

    (1)一般的SoC都支持多種啟動方式,譬如SD卡啟動、NorFlash啟動、NandFlash啟動等·····uboot要能夠開機啟動,必須根據具體的SoC的啟動設計來設計uboot。

    (2)uboot必須進行和硬件相對應的代碼級別的更改和移植,才能夠保證可以從相應的啟動介質啟動。uboot中第一階段的start.S文件中具體處理了這一塊。

    3.2、能夠引導操作系統內核啟動并給內核傳參

    (1)uboot的終極目標就是啟動內核。

    (2)linux內核在設計的時候,設計為可以被傳參。也就是說我們可以在uboot中事先給linux內核準備一些啟動參數放在內存中特定位置然后傳給內核,內核啟動后會到這個特定位置去取uboot傳給他的參數,然后在內核中解析這些參數,這些參數將被用來指導linux內核的啟動過程。

    3.3、能提供系統部署功能

    (1)uboot必須能夠被人借助而完成整個系統(包括uboot、kernel、rootfs等的鏡像)在Flash上的燒錄下載工作。

    (2)裸機教程中刷機(ARM裸機第三部分)就是利用uboot中的fastboot功能將各種鏡像燒錄到iNand中,然后從iNand啟動。

    3.4能進行soc級和板級硬件管理

    (1)uboot中實現了一部分硬件的控制能力(uboot中初始化了一部分硬件),因為uboot為了完成一些任務必須讓這些硬件工作。譬如uboot要實現刷機必須能驅動iNand,譬如uboot要在刷機時LCD上顯示進度條就必須能驅動LCD,譬如uboot能夠通過串口提供操作界面就必須驅動串口。譬如uboot要實現網絡功能就必須驅動網卡芯片。

    (2)SoC級(譬如串口)就是SoC內部外設,板級就是SoC外面開發板上面的硬件(譬如網卡、iNand)

    3.5、uboot的“生命周期”

    (1)uboot的生命周期就是指:uboot什么時候開始運行,什么時候結束運行。

    (2)uboot本質上是一個裸機程序(不是操作系統),一旦uboot開始SoC就會單純運行uboot(意思就是uboot運行的時候別的程序是不可能同時運行的),一旦uboot結束運行則無法再回到uboot(所以uboot啟動了內核后uboot自己本身就死了,要想再次看到uboot界面只能重啟系統。重啟并不是復活了剛才的uboot,重啟只是uboot的另一生)

    (3)uboot的入口和出口。uboot的入口就是開機自動啟動,uboot的唯一出口就是啟動內核。uboot還可以執行很多別的任務(譬如燒錄系統),但是其他任務執行完后都可以回到uboot的命令行繼續執行uboot命令,而啟動內核命令一旦執行就回不來了。

    總結:一切都是為了啟動內核

    最后,達內嵌入式培訓機構提醒每一個it愛好者:如果你想要在短時間內快速入門,順利掌握一門技術,建議還是認真學習視頻。多練習,多動手。

    版權聲明:轉載文章來自公開網絡,版權歸作者本人所有,推送文章除非無法確認,我們都會注明作者和來源。如果出處有誤或侵犯到原作者權益,請與我們聯系刪除或授權事宜。

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:嵌入式中究竟該如何活用“延遲”?
    下一篇:如何著手嵌入式linux開發,這兩個誤區要避開

    單片機:寫1清零,寫0清零,有什么區別?

    嵌入式工程師一定不要亂用全局變量

    嵌入式培訓靠譜嗎?就業怎么樣?

    新手如何學習單片機?

    • 掃碼領取資料

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    欧美一级高清片,一级欧美免费大片视频,欧美三级在线电影免费 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>