關(guān)于嵌入式Linux的開機啟動流程網(wǎng)上有很多資料,這里我們僅進行一個簡單的介紹,旨在讓人能快速了解整個啟動流程。
整個開機流程可以歸結(jié)為以下幾點:
首先分個介紹:
ROM Code(芯片內(nèi)固化好的一段代碼),起最初的引導(dǎo)功能,包括初始化時鐘、片內(nèi)RAM、相關(guān)外設(shè)等,讀取引腳配置信息等;
U-Boot(Universal Boot Loader),初始化相關(guān)硬件設(shè)備,引導(dǎo)系統(tǒng)加載內(nèi)核鏡像的一段程序;
Kernel,負責(zé)存儲器、文件、外設(shè)等的管理,以及進程通信、調(diào)度等;
文件系統(tǒng),負責(zé)文件的管理;
應(yīng)用,就是各個應(yīng)用程序。
為形象點說明,我們將整個流程比作開一輛車子,我們把上面那幅圖進行更改:
上電后CPU執(zhí)行內(nèi)部固化好的一段代碼(ROM Code),初始化相關(guān)外設(shè),根據(jù)外部引腳的信息,選擇從哪個存儲設(shè)備讀取U-Boot(emmc、TF卡......),然后將U-Boot加載到內(nèi)存上運行,U-Boot完成相關(guān)外設(shè)配置后,將Kernel加載到內(nèi)存上,至此,由Kernel負責(zé)剩下的任務(wù)。
這里ROM Code是上電后最先執(zhí)行的動作,就相當(dāng)一個啟動引導(dǎo)的過程;U-Boot除了初始外設(shè)外,還有很重要的一點就是為Kernel初始化相關(guān)內(nèi)存空間,為其加載做準備,這其實就相當(dāng)于要使發(fā)動機發(fā)動,要先為它提供能源;有了發(fā)動機沒設(shè)備,空有動力也做不了什么實質(zhì)的事,相反,沒有發(fā)動機提供動力,設(shè)備動不起來,這里其實就揭示著Kernel和文件系統(tǒng)密不可分的關(guān)系;當(dāng)一切準備就緒后,我們就可以在上面編寫、運行應(yīng)用相關(guān)的程序(開車)。
-
嵌入式
+關(guān)注
關(guān)注
5152文章
19675瀏覽量
317640 -
Linux
+關(guān)注
關(guān)注
87文章
11511瀏覽量
213837
原文標題:快速了解嵌入式Linux開機啟動流程
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
嵌入式Linux設(shè)備如何添加開機啟動文件

基于Bootsplash打造嵌入式Linux啟動畫面
詳細分析嵌入式Linux系統(tǒng)啟動流程
嵌入式linux開發(fā)的流程是怎樣的
基于bootsplash 的嵌入式linux 啟動畫面定制
嵌入式 Linux 啟動流程和 bootloader 介紹

嵌入式linux的運行過程,嵌入式linux的啟動流程--詳解

嵌入式Linux專題(一)——嵌入式Linux系統(tǒng)構(gòu)成及啟動流程

【嵌入式Linux(基礎(chǔ)篇)】嵌入式Linux底層系統(tǒng)開發(fā)流程和應(yīng)用開發(fā)流程

評論