一、硬件上電
二、一級啟動:bootROM
Boot ROM是廠商都無法進(jìn)行更改,固化在芯片內(nèi)部的ROM;
作用:確定用于啟動的設(shè)備;從啟動的設(shè)備的位置搬移一小段代碼(4k/8k/16k)到RAM中運(yùn)行,即SPL;
三、二級啟動:SPL+uboot
1.SPL: Secondary Program Loader:
作用:初始化DDR;從啟動的設(shè)備搬移第二段代碼到RAM中,加載uboot;(有些SoC是將bootloader復(fù)制到RAM后,再進(jìn)行DDR初始化;)
2.uboot: Universal boot loader:
U-Boot從啟動設(shè)備上面讀取、分析環(huán)境變量獲得kernel和rootfs存儲位置,以及所需的kernel command line;自動檢測系統(tǒng)RAM和eMMC/Nand Flash容量和參數(shù);設(shè)置以太網(wǎng)口MAC地址,并配置好硬件準(zhǔn)備加載Linux kernel;加載Linux kernel到RAM,至此系統(tǒng)控制權(quán)則轉(zhuǎn)移到kernel來處理;
四、Linux Kernel
系統(tǒng)Kernel初始化Linux,加載rootfs,最后啟動’init’來初始化Linux user space
五、不同的OS
Android、Yocto、ubuntu、fedora
補(bǔ)充:
一個(gè)嵌入式Linux系統(tǒng)從軟件的角度看通常可以分為四個(gè)層次:1、 引導(dǎo)加載程序。包括固化在固件(firmware)中的boot代碼(可選),和BootLoader兩大部分。(bootROM,uboot)
2、Linux內(nèi)核。特定于嵌入式板子的定制內(nèi)核以及內(nèi)核的啟動參數(shù)。(linux kernel)
3、 文件系統(tǒng)。包括根文件系統(tǒng)和建立于Flash內(nèi)存設(shè)備之上文件系統(tǒng)。通常用ramdisk來作為rootfs。
4、 用戶應(yīng)用程序。特定于用戶的應(yīng)用程序。有時(shí)在用戶應(yīng)用程序和內(nèi)核層之間可能還會包括一個(gè)嵌入式圖形用戶界面。常用的嵌入式GUI有:MicroWindows和MiniGUI等。
BootLoader是一段小程序,主要功能是引導(dǎo)操作系統(tǒng)啟動。可以把它想象成PC機(jī)Linux上的GRUB/LILO引導(dǎo)程序,只不過在嵌入式linux中,沒有BIOS,而是直接從flash中運(yùn)行,來裝載內(nèi)核。它可以初始化硬件設(shè)備,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)做好準(zhǔn)備
-
嵌入式
+關(guān)注
關(guān)注
5125文章
19438瀏覽量
313070 -
Linux
+關(guān)注
關(guān)注
87文章
11420瀏覽量
212319
原文標(biāo)題:嵌入式Linux OS啟動流程,了解一下!
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
詳細(xì)分析嵌入式Linux系統(tǒng)啟動流程
嵌入式linux開發(fā)的流程是怎樣的
STM32F103要接觸的嵌入式OS
嵌入式Linux系統(tǒng)開發(fā)基礎(chǔ)

嵌入式 Linux 啟動流程和 bootloader 介紹

嵌入式linux的運(yùn)行過程,嵌入式linux的啟動流程--詳解

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

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

評論