關於嵌入式Linux系統基礎知識

由於嵌入式系統只針對一項特殊的任務,設計人員能夠對它進行優化,減小尺寸降低成本。下面是小編收集的嵌入式Linux系統基礎知識,希望大家認真閱讀!

關於嵌入式Linux系統基礎知識

  一、嵌入式Linux系統的構成

1、硬件

2、內核

3、應用程序(形成根文件系統)

  二、構建嵌入式Linux系統的主要任務

1、內核部分

2、應用程序部分

嵌入式Linux的開發大致可分爲三個層次:引導裝載內核、構造文件系統和圖形用戶界面。作爲操作系統重要組成部分的文件系統,決定了操作系統本身的信息和用戶的數據在存儲設備上的組織形式。對嵌入式文件系統的研究、設計和開發也逐漸成爲嵌入式系 統研究領域的一個方向。

  三、內核精簡

在精簡內核在編譯內核之前,首先要明確需要那些驅動和模塊,然後只選擇需要的驅動和模塊,

例如,如果系統不需要網絡支持,則可以去掉網絡模塊 。

內核一般是以壓縮方式存放的,在系統啓動時會自行解壓。

內核都是常駐內存的,當需要調用應用程序時,再把需要的程序從磁盤調入內存運行。

構建嵌入式Linux系統-構建內核常用的命令包括:

◆ make config:內核配置,調用 ./scripts/Configure 按照 arch/i386/ 來進行配置。

◆ make dep:尋找依賴關係。

◆ make clean:清除以前構建內核所產生的所有目標文件、模塊文件、以及一些臨時文件等。

◆ make rmproper:刪除所有因構建內核過程中產生的所有文件,把內核恢復到最原始的狀態。

◆ make:構核,通過各目錄的Makefile 文件將會在各個目錄下產生許多目標文件。如果內核沒有錯誤,將產生文件vmlinux,這就是構建的內核。

◆ make zImage:在make 的基礎上產生壓縮的內核映象文件./arch/$(ARCH)/boot/zImage 以及在 ./arch/$(ARCH)/boot/compresed/目錄下產生臨時文件。

◆ make bzImage:在make 的基礎上產生壓縮比例更大的內核映象文件./arch/$(ARCH)/boot/bzImage 以及在 ./arch/$(ARCH)/boot/compresed/目錄下產生臨時文件。

◆ make modules:編譯模塊文件,在make config 時所配置的所有模塊將在這時編譯,形成模塊目標文件,並把這些目標文件存放在modules 目錄中。

◆ make modules_install:把上面編譯好的模塊目標文件放置在目錄 ./lib/modules/$KERNEL_VERSION/ 中。上面的編譯內核是在沒有改變源代碼的情況下實現的,如果覺得源代碼提供的功能在某些方面不能滿足要求,就要修改源代碼了。源代碼中主要有以下幾個關鍵部分:有關進程管理的task_struct 結構,這個結構幾乎包括了與進程有關的所有文件內容,還有任務隊列、時鐘管理和中斷管理,各種進程間的通信機制,內存管理中各種內存分配函數的實現,虛擬文件系統。

  四、嵌入式系統的組成

1、嵌入式硬件(嵌入式處理器和嵌入式外圍設備)

2、嵌入式操作系統

3、嵌入式應用軟件

嵌入式處理器

嵌入式系統的核心是各種類型的嵌入式處理器,嵌入式處理器與通用處理器最大的不同點在於,嵌入式CPU大多工作在爲特定用戶羣所專門設計的系統中,它將通用CPU中許多由板卡完成的任務集成到芯片內部,從而有利於嵌入式系統在設計時趨於小型化,同時還具有很高的效率和可靠性。

嵌入式處理器的體系結構經歷了從CISC(複雜指令集)至RISC(精簡指令集)和Compact RISC的轉變,位數則由4位、8位、16位、32位逐步發展到64位。目前常用的嵌入式處理器可分爲低端的嵌入式微控制器(Micro Controller Unit,MCU)、中高端的嵌入式微處理器(Embedded Micro Processor Unit,EMPU)、用於計算機通信領域的嵌入式DSP處理器(Embedded Digital Signal Processor,EDSP)和高度集成的嵌入式片上系統(System On Chip,SOC)。

目前幾乎每個半導體制造商都生產嵌入式處理器,並且越來越多的公司開始擁有自主的處理器設計部門,據不完全統計,全世界嵌入式處理器已經超過1000多種,流行的體系結構有30多個系列,其中以ARM、PowerPC、MC 68000、MIPS等使用得最爲廣泛。

嵌入式外圍設備

在嵌入系統硬件系統中,除了中心控制部件(MCU、DSP、EMPU、SOC)以外,用於完成存儲、通信、調試、顯示等輔助功能的其他部件,事實上都可以算作嵌入式外圍設備。目前常用的嵌入式外圍設備按功能可以分爲存儲設備、通信設備和顯示設備三類。

存儲設備主要用於各類數據的存儲,常用的有靜態易失型存儲器(RAM、SRAM)、動態存儲器(DRAM)和非易失型存儲器(ROM、EPROM、EEPROM、FLASH)三種,其中FLASH憑藉其可擦寫次數多、存儲速度快、存儲容量大、價格便宜等優點,在嵌入式領域內得到了廣泛應用。

目前存在的絕大多數通信設備都可以直接在嵌入式系統中應用,包括RS-232接口(串行通信接口)、SPI(串行外圍設備接口)、IrDA(紅外線接口)、I2C(現場總線)、USB(通用串行總線接口)、Ethernet(以太網接口)等。

由於嵌入式應用場合的特殊性,通常使用的是陰極射線管(CRT)、液晶顯示器(LCD)和觸摸板(Touch Panel)等外圍顯示設備。

嵌入式操作系統

爲了使嵌入式系統的開發更加方便和快捷,需要有專門負責管理存儲器分配、中斷處理、任務調度等功能的軟件模塊,這就是嵌入式操作系統。嵌入式操作系統是用來支持嵌入式應用的系統軟件,是嵌入式系統極爲重要的.組成部分,通常包括與硬件相關的底層驅動程序、系統內核、設備驅動接口、通信協議、圖形用戶界面(GUI)等。嵌入式操作系統具有通用操作系統的基本特點,如能夠有效管理複雜的系統資源,能夠對硬件進行抽象,能夠提供庫函數、驅動程序、開發工具集等。但與通用操作系統相比較,嵌入式操作系統在系統實時性、硬件依賴性、軟件固化性以及應用專用性等方面,具有更加鮮明的特點。

嵌入式操作系統根據應用場合可以分爲兩大類:一類是面向消費電子產品的非實時系統,這類設備包括個人數字助理(PDA)、移動電話、機頂盒(STB)等;另一類則是面向控制、通信、醫療等領域的實時操作系統,如WindRiver公司的VxWorks、QNX系統軟件公司的QNX等。實時系統(Real Time System)是一種能夠在指定或者確定時間內完成系統功能,並且對外部和內部事件在同步或者異步時間內能做出及時響應的系統。在實時系統中,操作的正確性不僅依賴於邏輯設計的正確程度,而且與這些操作進行的時間有關,也就是說,實時系統對邏輯和時序的要求非常嚴格,如果邏輯和時序控制出現偏差將會產生嚴重後果。

實時系統主要通過三個性能指標來衡量系統的實時性,即響應時間(Response Time)、生存時間(Survival Time)和吞吐量(Throughput):

響應時間  是實時系統從識別出一個外部事件到做出響應的時間;

生存時間 是數據的有效等待時間,數據只有在這段時間內纔是有效的;

吞吐量   是在給定的時間內系統能夠處理的事件總數,吞吐量通常比平均響應時間的倒數要小一點。

實時系統根據響應時間可以分爲弱實時系統、一般實時系統和強實時系統三種。弱實時系統在設計時的宗旨是使各個任務運行得越快越好,但沒有嚴格限定某一任務必須在多長時間內完成,弱實時系統更多關注的是程序運行結果的正確與否,以及系統安全性能等其他方面,對任務執行時間的要求相對來講較爲寬鬆,一般響應時間可以是數十秒或者更長。一般實時系統是弱實時系統和強實時系統的一種折衷,它的響應時間可以在秒的數量級上,廣泛應用於消費電子設備中。強實時系統則要求各個任務不僅要保證執行過程和結果的正確性,同時還要保證在限定的時間內完成任務,響應時間通常要求在毫秒甚至微秒的數量級上,這對涉及到醫療、安全、軍事的軟硬件系統來說是至關重要的。

時限(deadline)是實時系統中的一個重要概念,指的是對任務截止時間的要求,根據時限對系統性能的影響程度,實時系統又可以分爲軟實時系統(soft real-time-system)和硬實時系統(hard real-time-system)。軟實時指的是雖然對系統響應時間有所限定,但如果系統響應時間不能滿足要求,並不會導致系統產生致命的錯誤或者崩潰;硬實時則指的是對系統響應時間有嚴格的限定,如果系統響應時間不能滿足要求,就會引起系統產生致命的錯誤或者崩潰。如果一個任務在時限到達之時尚未完成,對軟實時系統來說還是可以容忍的,最多隻會降低系統性能,但對硬實時系統來說則是無法接受的,因爲這樣帶來的後果根本無法預測,甚至可能是災難性的。在目前實際運用的實時系統中,通常允許軟硬兩種實時性同時存在,其中一些事件沒有時限要求,另外一些事件的時限要求是軟實時的,而對系統產生關鍵影響的那些事件的時限要求則是硬實時的。

  嵌入式應用軟件

嵌入式應用軟件是針對特定應用領域,基於某一固定的硬件平臺,用來達到用戶預期目標的計算機軟件,由於用戶任務可能有時間和精度上的要求,因此有些嵌入式應用軟件需要特定嵌入式操作系統的支持。嵌入式應用軟件和普通應用軟件有一定的區別,它不僅要求其準確性、安全性和穩定性等方面能夠滿足實際應用的需要,而且還要儘可能地進行優化,以減少對系統資源的消耗,降低硬件成本

  四、如何構建嵌入式Linux系統的設計步驟

嵌入式系統目前主要有:Windows CE、VxWorks、QNX等,它們都具較好的實時性,系統可靠性,任務處理隨機性等優點。但是它們的價格普遍偏高,很多開發商承受不起。因而,Linux操作系統成爲嵌入式操作系統的首選。以下小編來整理了一些關於如何構建嵌入式Linux系統的資料,方便大家對構建嵌入式Linux系統有一定的認識,希望能給大家有所幫助。