久久精品国产只有精品2020,久久国产亚洲高清观看,国内精品伊人久久久久7777,精品蜜臀久久久久99网站,激情 人妻 偷 乱

24小時(shí)聯(lián)系電話:18217114652、13661815404

中文

您當(dāng)前的位置:
首頁>
電子資訊>
技術(shù)專題>
理論嵌入式Linux要求

技術(shù)專題

理論嵌入式Linux要求


理論嵌入式Linux要求

硬件

片上系統(tǒng)

片上系統(tǒng)(SoC)本質(zhì)上是一種采用單個(gè)平臺(tái)并將整個(gè)計(jì)算機(jī)系統(tǒng)集成到其上的集成電路。它將CPU的功能與執(zhí)行和執(zhí)行其功能所需的其他組件結(jié)合在一起。它負(fù)責(zé)使用其他硬件并運(yùn)行您的軟件。SoC的主要優(yōu)點(diǎn)包括較低的延遲和節(jié)能功能。

它由各種構(gòu)建塊組成:

核心+緩存+ MMU  – SoC的核心是處理器,它將定義其功能。通常,SoC具有多個(gè)處理器內(nèi)核。對于真實(shí)處理器,例如ARM Cortex-A9。這是選擇SoC時(shí)要牢記的主要內(nèi)容??赡苡芍T如NEON之類的SIMD協(xié)處理器共同輔助。

內(nèi)部RAM  – IRAM由位于CPU旁邊的超高速SRAM組成。它的行為類似于CPU緩存,并且通常很小。在引導(dǎo)順序的第一階段中使用它。

外設(shè) –它們可以是一個(gè)簡單的ADC,DSP或圖形處理單元,它通過一些總線連接到內(nèi)核。低功耗/實(shí)時(shí)協(xié)處理器可幫助主內(nèi)核執(zhí)行實(shí)時(shí)任務(wù)或處理低功耗狀態(tài)。此類IP內(nèi)核的示例是USB,PCI-E,SGX等。

外部RAM

SoC在引導(dǎo)期間和引導(dǎo)之后使用RAM存儲(chǔ)臨時(shí)數(shù)據(jù)。它是嵌入式系統(tǒng)在常規(guī)操作期間使用的內(nèi)存。

非易失性記憶

在嵌入式系統(tǒng)或單板計(jì)算機(jī)中,它是SD卡。在其他情況下,它可以是NAND,NORSPI數(shù)據(jù)閃存。它是SoC讀取并存儲(chǔ)系統(tǒng)工作所需的所有軟件組件的數(shù)據(jù)源。

外圍設(shè)備

SoC必須具有用于標(biāo)準(zhǔn)通信協(xié)議(例如USB,以太網(wǎng)和HDMI)的外部接口。它還包括Wi-Fi和藍(lán)牙的無線技術(shù)協(xié)議。

軟件

首先,我們介紹了啟動(dòng)鏈,它是SoC上電時(shí)發(fā)生的一系列操作。

引導(dǎo)ROM:這是存儲(chǔ)在ROM中的一段代碼,由引導(dǎo)核心在開機(jī)時(shí)執(zhí)行。該代碼包含有關(guān)SoC配置的說明,以使其能夠執(zhí)行應(yīng)用程序。Boot ROM執(zhí)行的配置包括內(nèi)核寄存器和堆棧指針的初始化,高速緩存和行緩沖區(qū)的啟用,中斷服務(wù)程序的編程,時(shí)鐘配置。

Boot ROM還實(shí)現(xiàn)了啟動(dòng)輔助模塊(BAM),可使用以太網(wǎng),SD / MMC,USB,CAN,UART等接口從外部存儲(chǔ)器下載應(yīng)用程序映像。

第一階段自舉程序

在第一階段的引導(dǎo)程序中執(zhí)行以下操作

設(shè)置引導(dǎo)加載程序代碼使用的內(nèi)存段和堆棧

重置磁盤系統(tǒng)

顯示字符串正在加載操作系統(tǒng)…”

FAT目錄中找到第二階段引導(dǎo)加載程序

將第二階段引導(dǎo)加載程序映像以10000000的速度讀入內(nèi)存

將控制權(quán)轉(zhuǎn)移到第二階段的引導(dǎo)程序

它將Boot ROM復(fù)制到SoC的內(nèi)部RAM中。必須足夠小以適合通常小于100kB的內(nèi)存。它初始化外部RAMSoC的外部存儲(chǔ)器接口,以及其他可能感興趣的外設(shè)(例如,禁用看門狗定時(shí)器)。完成后,它將根據(jù)上下文執(zhí)行下一階段,可以稱為MLO,SPL或其他。

第二階段自舉程序

這是主要的引導(dǎo)加載程序,可以比第一階段大10倍,它完成了相關(guān)外圍設(shè)備的初始化。

將引導(dǎo)扇區(qū)復(fù)制到本地內(nèi)存區(qū)域

FAT目錄中查找內(nèi)核映像

20000000讀取內(nèi)存中的內(nèi)核映像

重置磁盤系統(tǒng)

啟用A20

00000000處建立中斷描述符表

將全局描述符表設(shè)置為00000800

將描述符表加載到CPU

切換到保護(hù)模式

清除預(yù)取隊(duì)列

設(shè)置保護(hù)模式的內(nèi)存段和堆棧,以供內(nèi)核代碼使用

使用跳遠(yuǎn)將控制權(quán)轉(zhuǎn)移到內(nèi)核代碼

Linux內(nèi)核

Linux內(nèi)核是Linux OS的主要組件,并且是硬件和進(jìn)程之間的核心接口。它在硬件和流程之間進(jìn)行通信,從而盡可能高效地管理資源。內(nèi)核執(zhí)行以下工作

內(nèi)存管理:跟蹤內(nèi)存,存儲(chǔ)多少內(nèi)存以及存儲(chǔ)在何處

流程管理:確定哪些流程可以使用處理器,何時(shí)使用以及持續(xù)多長時(shí)間

設(shè)備驅(qū)動(dòng)程序:充當(dāng)硬件和進(jìn)程之間的解釋器

系統(tǒng)調(diào)用和安全性:接收來自流程的服務(wù)請求

為了將內(nèi)核置于上下文中,可以將它們解釋為具有3層的Linux機(jī)器:

硬件:物理機(jī)-系統(tǒng)的基礎(chǔ),由內(nèi)存(RAM)和處理器(CPU)以及輸入/輸出(I / O)設(shè)備(例如存儲(chǔ),網(wǎng)絡(luò)和圖形)組成。

Linux內(nèi)核:操作系統(tǒng)的核心。它是駐留在內(nèi)存中的軟件,可以告訴CPU該怎么做。

用戶進(jìn)程:這些是內(nèi)核管理的正在運(yùn)行的程序。用戶進(jìn)程共同構(gòu)成了用戶空間。內(nèi)核允許進(jìn)程和服務(wù)器相互通信。

Initrootfs  – init是要運(yùn)行的第一個(gè)非內(nèi)核任務(wù),并具有PID1。它將初始化使用系統(tǒng)所需的所有內(nèi)容。在生產(chǎn)嵌入式系統(tǒng)中,它也啟動(dòng)了主要應(yīng)用程序。在這樣的系統(tǒng)中,它可以是BusyBox或定制的應(yīng)用程序。

請輸入搜索關(guān)鍵字

確定