- 相關(guān)推薦
關(guān)于嵌入式Linux系統(tǒng)基礎(chǔ)知識
由于嵌入式系統(tǒng)只針對一項特殊的任務(wù),設(shè)計人員能夠?qū)λM行優(yōu)化,減小尺寸降低成本。下面是小編收集的嵌入式Linux系統(tǒng)基礎(chǔ)知識,希望大家認真閱讀!
一、嵌入式Linux系統(tǒng)的構(gòu)成
1、硬件
2、內(nèi)核
3、應(yīng)用程序(形成根文件系統(tǒng))
二、構(gòu)建嵌入式Linux系統(tǒng)的主要任務(wù)
1、內(nèi)核部分
2、應(yīng)用程序部分
嵌入式Linux的開發(fā)大致可分為三個層次:引導(dǎo)裝載內(nèi)核、構(gòu)造文件系統(tǒng)和圖形用戶界面。作為操作系統(tǒng)重要組成部分的文件系統(tǒng),決定了操作系統(tǒng)本身的信息和用戶的數(shù)據(jù)在存儲設(shè)備上的組織形式。對嵌入式文件系統(tǒng)的研究、設(shè)計和開發(fā)也逐漸成為嵌入式系 統(tǒng)研究領(lǐng)域的一個方向。
三、內(nèi)核精簡
在精簡內(nèi)核在編譯內(nèi)核之前,首先要明確需要那些驅(qū)動和模塊,然后只選擇需要的驅(qū)動和模塊,
例如,如果系統(tǒng)不需要網(wǎng)絡(luò)支持,則可以去掉網(wǎng)絡(luò)模塊 。
內(nèi)核一般是以壓縮方式存放的,在系統(tǒng)啟動時會自行解壓。
內(nèi)核都是常駐內(nèi)存的,當需要調(diào)用應(yīng)用程序時,再把需要的程序從磁盤調(diào)入內(nèi)存運行。
構(gòu)建嵌入式Linux系統(tǒng)-構(gòu)建內(nèi)核常用的命令包括:
◆ make config:內(nèi)核配置,調(diào)用 ./scripts/Configure 按照 arch/i386/config.in 來進行配置。
◆ make dep:尋找依賴關(guān)系。
◆ make clean:清除以前構(gòu)建內(nèi)核所產(chǎn)生的所有目標文件、模塊文件、以及一些臨時文件等。
◆ make rmproper:刪除所有因構(gòu)建內(nèi)核過程中產(chǎn)生的所有文件,把內(nèi)核恢復(fù)到最原始的狀態(tài)。
◆ make:構(gòu)核,通過各目錄的Makefile 文件將會在各個目錄下產(chǎn)生許多目標文件。如果內(nèi)核沒有錯誤,將產(chǎn)生文件vmlinux,這就是構(gòu)建的內(nèi)核。
◆ make zImage:在make 的基礎(chǔ)上產(chǎn)生壓縮的內(nèi)核映象文件./arch/$(ARCH)/boot/zImage 以及在 ./arch/$(ARCH)/boot/compresed/目錄下產(chǎn)生臨時文件。
◆ make bzImage:在make 的基礎(chǔ)上產(chǎn)生壓縮比例更大的內(nèi)核映象文件./arch/$(ARCH)/boot/bzImage 以及在 ./arch/$(ARCH)/boot/compresed/目錄下產(chǎn)生臨時文件。
◆ make modules:編譯模塊文件,在make config 時所配置的所有模塊將在這時編譯,形成模塊目標文件,并把這些目標文件存放在modules 目錄中。
◆ make modules_install:把上面編譯好的模塊目標文件放置在目錄 ./lib/modules/$KERNEL_VERSION/ 中。上面的編譯內(nèi)核是在沒有改變源代碼的情況下實現(xiàn)的,如果覺得源代碼提供的功能在某些方面不能滿足要求,就要修改源代碼了。源代碼中主要有以下幾個關(guān)鍵部分:有關(guān)進程管理的task_struct 結(jié)構(gòu),這個結(jié)構(gòu)幾乎包括了與進程有關(guān)的所有文件內(nèi)容,還有任務(wù)隊列、時鐘管理和中斷管理,各種進程間的通信機制,內(nèi)存管理中各種內(nèi)存分配函數(shù)的實現(xiàn),虛擬文件系統(tǒng)。
四、嵌入式系統(tǒng)的組成
1、嵌入式硬件(嵌入式處理器和嵌入式外圍設(shè)備)
2、嵌入式操作系統(tǒng)
3、嵌入式應(yīng)用軟件
嵌入式處理器
嵌入式系統(tǒng)的核心是各種類型的嵌入式處理器,嵌入式處理器與通用處理器最大的不同點在于,嵌入式CPU大多工作在為特定用戶群所專門設(shè)計的系統(tǒng)中,它將通用CPU中許多由板卡完成的任務(wù)集成到芯片內(nèi)部,從而有利于嵌入式系統(tǒng)在設(shè)計時趨于小型化,同時還具有很高的效率和可靠性。
嵌入式處理器的體系結(jié)構(gòu)經(jīng)歷了從CISC(復(fù)雜指令集)至RISC(精簡指令集)和Compact RISC的轉(zhuǎn)變,位數(shù)則由4位、8位、16位、32位逐步發(fā)展到64位。目前常用的嵌入式處理器可分為低端的嵌入式微控制器(Micro Controller Unit,MCU)、中高端的嵌入式微處理器(Embedded Micro Processor Unit,EMPU)、用于計算機通信領(lǐng)域的嵌入式DSP處理器(Embedded Digital Signal Processor,EDSP)和高度集成的嵌入式片上系統(tǒng)(System On Chip,SOC)。
目前幾乎每個半導(dǎo)體制造商都生產(chǎn)嵌入式處理器,并且越來越多的公司開始擁有自主的處理器設(shè)計部門,據(jù)不完全統(tǒng)計,全世界嵌入式處理器已經(jīng)超過1000多種,流行的體系結(jié)構(gòu)有30多個系列,其中以ARM、PowerPC、MC 68000、MIPS等使用得最為廣泛。
嵌入式外圍設(shè)備
在嵌入系統(tǒng)硬件系統(tǒng)中,除了中心控制部件(MCU、DSP、EMPU、SOC)以外,用于完成存儲、通信、調(diào)試、顯示等輔助功能的其他部件,事實上都可以算作嵌入式外圍設(shè)備。目前常用的嵌入式外圍設(shè)備按功能可以分為存儲設(shè)備、通信設(shè)備和顯示設(shè)備三類。
存儲設(shè)備主要用于各類數(shù)據(jù)的存儲,常用的有靜態(tài)易失型存儲器(RAM、SRAM)、動態(tài)存儲器(DRAM)和非易失型存儲器(ROM、EPROM、EEPROM、FLASH)三種,其中FLASH憑借其可擦寫次數(shù)多、存儲速度快、存儲容量大、價格便宜等優(yōu)點,在嵌入式領(lǐng)域內(nèi)得到了廣泛應(yīng)用。
目前存在的絕大多數(shù)通信設(shè)備都可以直接在嵌入式系統(tǒng)中應(yīng)用,包括RS-232接口(串行通信接口)、SPI(串行外圍設(shè)備接口)、IrDA(紅外線接口)、I2C(現(xiàn)場總線)、USB(通用串行總線接口)、Ethernet(以太網(wǎng)接口)等。
由于嵌入式應(yīng)用場合的特殊性,通常使用的是陰極射線管(CRT)、液晶顯示器(LCD)和觸摸板(Touch Panel)等外圍顯示設(shè)備。
嵌入式操作系統(tǒng)
為了使嵌入式系統(tǒng)的開發(fā)更加方便和快捷,需要有專門負責管理存儲器分配、中斷處理、任務(wù)調(diào)度等功能的軟件模塊,這就是嵌入式操作系統(tǒng)。嵌入式操作系統(tǒng)是用來支持嵌入式應(yīng)用的系統(tǒng)軟件,是嵌入式系統(tǒng)極為重要的組成部分,通常包括與硬件相關(guān)的底層驅(qū)動程序、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動接口、通信協(xié)議、圖形用戶界面(GUI)等。嵌入式操作系統(tǒng)具有通用操作系統(tǒng)的基本特點,如能夠有效管理復(fù)雜的系統(tǒng)資源,能夠?qū)τ布M行抽象,能夠提供庫函數(shù)、驅(qū)動程序、開發(fā)工具集等。但與通用操作系統(tǒng)相比較,嵌入式操作系統(tǒng)在系統(tǒng)實時性、硬件依賴性、軟件固化性以及應(yīng)用專用性等方面,具有更加鮮明的特點。
嵌入式操作系統(tǒng)根據(jù)應(yīng)用場合可以分為兩大類:一類是面向消費電子產(chǎn)品的非實時系統(tǒng),這類設(shè)備包括個人數(shù)字助理(PDA)、移動電話、機頂盒(STB)等;另一類則是面向控制、通信、醫(yī)療等領(lǐng)域的實時操作系統(tǒng),如WindRiver公司的VxWorks、QNX系統(tǒng)軟件公司的QNX等。實時系統(tǒng)(Real Time System)是一種能夠在指定或者確定時間內(nèi)完成系統(tǒng)功能,并且對外部和內(nèi)部事件在同步或者異步時間內(nèi)能做出及時響應(yīng)的系統(tǒng)。在實時系統(tǒng)中,操作的正確性不僅依賴于邏輯設(shè)計的正確程度,而且與這些操作進行的時間有關(guān),也就是說,實時系統(tǒng)對邏輯和時序的要求非常嚴格,如果邏輯和時序控制出現(xiàn)偏差將會產(chǎn)生嚴重后果。
實時系統(tǒng)主要通過三個性能指標來衡量系統(tǒng)的實時性,即響應(yīng)時間(Response Time)、生存時間(Survival Time)和吞吐量(Throughput):
響應(yīng)時間 是實時系統(tǒng)從識別出一個外部事件到做出響應(yīng)的時間;
生存時間 是數(shù)據(jù)的有效等待時間,數(shù)據(jù)只有在這段時間內(nèi)才是有效的;
吞吐量 是在給定的時間內(nèi)系統(tǒng)能夠處理的事件總數(shù),吞吐量通常比平均響應(yīng)時間的倒數(shù)要小一點。
實時系統(tǒng)根據(jù)響應(yīng)時間可以分為弱實時系統(tǒng)、一般實時系統(tǒng)和強實時系統(tǒng)三種。弱實時系統(tǒng)在設(shè)計時的宗旨是使各個任務(wù)運行得越快越好,但沒有嚴格限定某一任務(wù)必須在多長時間內(nèi)完成,弱實時系統(tǒng)更多關(guān)注的是程序運行結(jié)果的正確與否,以及系統(tǒng)安全性能等其他方面,對任務(wù)執(zhí)行時間的要求相對來講較為寬松,一般響應(yīng)時間可以是數(shù)十秒或者更長。一般實時系統(tǒng)是弱實時系統(tǒng)和強實時系統(tǒng)的一種折衷,它的響應(yīng)時間可以在秒的數(shù)量級上,廣泛應(yīng)用于消費電子設(shè)備中。強實時系統(tǒng)則要求各個任務(wù)不僅要保證執(zhí)行過程和結(jié)果的正確性,同時還要保證在限定的時間內(nèi)完成任務(wù),響應(yīng)時間通常要求在毫秒甚至微秒的數(shù)量級上,這對涉及到醫(yī)療、安全、軍事的軟硬件系統(tǒng)來說是至關(guān)重要的。
時限(deadline)是實時系統(tǒng)中的一個重要概念,指的是對任務(wù)截止時間的要求,根據(jù)時限對系統(tǒng)性能的影響程度,實時系統(tǒng)又可以分為軟實時系統(tǒng)(soft real-time-system)和硬實時系統(tǒng)(hard real-time-system)。軟實時指的是雖然對系統(tǒng)響應(yīng)時間有所限定,但如果系統(tǒng)響應(yīng)時間不能滿足要求,并不會導(dǎo)致系統(tǒng)產(chǎn)生致命的錯誤或者崩潰;硬實時則指的是對系統(tǒng)響應(yīng)時間有嚴格的限定,如果系統(tǒng)響應(yīng)時間不能滿足要求,就會引起系統(tǒng)產(chǎn)生致命的錯誤或者崩潰。如果一個任務(wù)在時限到達之時尚未完成,對軟實時系統(tǒng)來說還是可以容忍的,最多只會降低系統(tǒng)性能,但對硬實時系統(tǒng)來說則是無法接受的,因為這樣帶來的后果根本無法預(yù)測,甚至可能是災(zāi)難性的。在目前實際運用的實時系統(tǒng)中,通常允許軟硬兩種實時性同時存在,其中一些事件沒有時限要求,另外一些事件的時限要求是軟實時的,而對系統(tǒng)產(chǎn)生關(guān)鍵影響的那些事件的時限要求則是硬實時的。
嵌入式應(yīng)用軟件
嵌入式應(yīng)用軟件是針對特定應(yīng)用領(lǐng)域,基于某一固定的硬件平臺,用來達到用戶預(yù)期目標的計算機軟件,由于用戶任務(wù)可能有時間和精度上的要求,因此有些嵌入式應(yīng)用軟件需要特定嵌入式操作系統(tǒng)的支持。嵌入式應(yīng)用軟件和普通應(yīng)用軟件有一定的區(qū)別,它不僅要求其準確性、安全性和穩(wěn)定性等方面能夠滿足實際應(yīng)用的需要,而且還要盡可能地進行優(yōu)化,以減少對系統(tǒng)資源的消耗,降低硬件成本
四、如何構(gòu)建嵌入式Linux系統(tǒng)的設(shè)計步驟
嵌入式系統(tǒng)目前主要有:Windows CE、VxWorks、QNX等,它們都具較好的實時性,系統(tǒng)可靠性,任務(wù)處理隨機性等優(yōu)點。但是它們的價格普遍偏高,很多開發(fā)商承受不起。因而,Linux操作系統(tǒng)成為嵌入式操作系統(tǒng)的首選。以下小編來整理了一些關(guān)于如何構(gòu)建嵌入式Linux系統(tǒng)的資料,方便大家對構(gòu)建嵌入式Linux系統(tǒng)有一定的認識,希望能給大家有所幫助。
【嵌入式Linux系統(tǒng)基礎(chǔ)知識】相關(guān)文章:
嵌入式Linux系統(tǒng)概述06-08
如何學習嵌入式Linux系統(tǒng)05-19
Linux系統(tǒng)基礎(chǔ)知識:IO調(diào)度03-29
嵌入式系統(tǒng)基礎(chǔ)知識10-28
Linux認證基礎(chǔ)知識:linux操作系統(tǒng)目錄結(jié)構(gòu)03-08
linux文件系統(tǒng)基礎(chǔ)知識匯總03-09
移植開源軟件到嵌入式Linux系統(tǒng)技術(shù)攻略03-29
嵌入式Linux詳解03-29
Linux認證考試嵌入式考試大綱05-30