當(dāng)前位置:首頁(yè) > 學(xué)習(xí)資源 > 講師博文 > arm芯片配合Linux系統(tǒng)使用的過(guò)程
arm芯片配合Linux系統(tǒng)使用的過(guò)程
時(shí)間:2025-01-03 來(lái)源:華清遠(yuǎn)見(jiàn)
一 芯片上電與Boot ROM啟動(dòng)
1.硬件復(fù)位:芯片上電,arm系統(tǒng)硬件復(fù)位后,CPU會(huì)從BootROM(只讀寄存器)中啟動(dòng),這個(gè)BootROM通常是廠商定制的,負(fù)責(zé)最初的硬件初始化,如時(shí)鐘,內(nèi)存,外設(shè)配置等。這里的硬件初始化是為了BootROM將引導(dǎo)程序加載在內(nèi)存中做的準(zhǔn)備。追求快,簡(jiǎn)單(就是只初始化了一部分,這一部分可以讓BootROM工作)。
2.引導(dǎo)程序加載:Boot ROM將引導(dǎo)程序(Bootloader)加載到內(nèi)存中,
二 Bootloader引導(dǎo)
Bootloader是系統(tǒng)加電運(yùn)行的第一段代碼,在嵌入式系統(tǒng)中相當(dāng)于PC機(jī)中的BIOS。
Bootloader通常分為兩個(gè)階段:第一階段(FSBL)和第二階段(如U-Boot)。1. 第一階段引導(dǎo)(FSBL):
a. 硬件初始化:對(duì)硬件進(jìn)行基本的初始化,包括初始化RAM(內(nèi)存控制器配置),處理器(CPU,時(shí)鐘,外設(shè)等)以及設(shè)置引導(dǎo)介質(zhì)(如NAND Flash,eMMC,SD卡等。這里的硬件初始化是從新開始把所有的硬件都初始化了。
b. 加載第二階段引導(dǎo)程序:將第二階段引導(dǎo)程序(如U-Boot)加載到內(nèi)存。
2.第二階段引導(dǎo)(U-Boot):
c. 進(jìn)一步硬件初始化:包括更多外設(shè)和I/O的初始化。
d. 加載Linux內(nèi)核映像:從存儲(chǔ)設(shè)備(如eMMC,NAND Flash,SD卡)中讀取Linux內(nèi)核映像,并將其加載到內(nèi)存。
e. 配置設(shè)備樹:為內(nèi)核提供硬件信息。
f. 配置啟動(dòng)參數(shù):如根文件系統(tǒng),內(nèi)核命令行等。
g. 啟動(dòng)Linux內(nèi)核:在配置完成后,啟動(dòng)Linux內(nèi)核。
注意:如果不是做系統(tǒng)移植,這個(gè)第二階段引導(dǎo)(U-Boot)里面的配置參數(shù)步驟,就可以不用配置。使用默認(rèn)的即可。
三 內(nèi)核加載與初始化
1.內(nèi)核加載:Bootloader將Linux內(nèi)核映像加載到內(nèi)存,并傳遞必要的啟動(dòng)參數(shù)。
2.內(nèi)核初始化:Linux內(nèi)核啟動(dòng)后,進(jìn)行硬件檢測(cè)和初始化,包括內(nèi)存,CPU,設(shè)備樹等。內(nèi)核會(huì)設(shè)置系統(tǒng)環(huán)境,為后續(xù)的用戶空間程序運(yùn)行做準(zhǔn)備。
四 用戶空間啟動(dòng)
1.啟動(dòng)init進(jìn)程:內(nèi)核初始化完成后,會(huì)啟動(dòng)init進(jìn)程,init進(jìn)程是系統(tǒng)的第一個(gè)用戶空間進(jìn)程,負(fù)責(zé)初始化系統(tǒng)環(huán)境,啟動(dòng)必要的服務(wù)和應(yīng)用程序。
2.服務(wù)和應(yīng)用程序運(yùn)行:在init進(jìn)程啟動(dòng)后,用戶空間的所有服務(wù)和應(yīng)用程序開始運(yùn)行,這些程序可以是系統(tǒng)自帶的,也可以是用戶自行安裝的。例如:自己在arm開發(fā)板上寫了亮燈程序,就可以運(yùn)行了。
課程分享:華清遠(yuǎn)見(jiàn)聯(lián)合NXP推出i.MX8M Plus開發(fā)與實(shí)踐
課程分享:鴻蒙HarmonyOS系統(tǒng)及物聯(lián)網(wǎng)開發(fā)實(shí)戰(zhàn)課程(
課程分享:HaaS EDU K1開發(fā)教程(附課程視頻及源碼下
新版C語(yǔ)言編程之控制語(yǔ)句視頻教程重磅贈(zèng)送(嵌入式入
價(jià)值2000元的嵌入式精裝教程大禮包免費(fèi)送!(搞懂嵌入
價(jià)值1000元的最新ARM系列視頻完整版教程新鮮出爐(免
【最新】ARM課程課堂實(shí)錄精華版視頻免費(fèi)領(lǐng)�。▋�(nèi)含源
一文讀懂硬實(shí)時(shí)和軟實(shí)時(shí)
arm芯片配合Linux系統(tǒng)使用的過(guò)程
如何利用機(jī)器學(xué)習(xí)構(gòu)建個(gè)性化推薦系統(tǒng)
嵌入式系統(tǒng)從上電到操作系統(tǒng)運(yùn)行的完整啟動(dòng)流程
如何在不同工作場(chǎng)景下優(yōu)化嵌入式系統(tǒng)的電源消耗
硬件抽象層(HAL)的設(shè)計(jì)如何提高代碼的可移植性
批量歸一化在深度學(xué)習(xí)訓(xùn)練中的作用和實(shí)現(xiàn)方法
物聯(lián)網(wǎng)項(xiàng)目中設(shè)計(jì)嵌入式系統(tǒng)時(shí)的關(guān)鍵技術(shù)和考慮因素
通過(guò)自然語(yǔ)言處理技術(shù)理解文本的深層含義
如何基于RISC-V架構(gòu)設(shè)計(jì)高效能的嵌入式系統(tǒng)
