9.4.3 嵌入式軟件
一個(gè)典型的嵌入式計(jì)算機(jī)系統(tǒng)由硬件層、中間層、系統(tǒng)軟件層和應(yīng)用軟件層組成,其中除了硬件層外,其他都屬于嵌入式軟件的范疇。
1.中間層
硬件層與軟件層之間為中間層,也稱為硬件抽象層(Hardware Abstract Layer,HAL)或板級(jí)支持包(Board Support Package,BSP),它將系統(tǒng)上層軟件與底層硬件分離開來(lái),使系統(tǒng)的底層驅(qū)動(dòng)程序與硬件無(wú)關(guān),上層軟件開發(fā)人員無(wú)須關(guān)心底層硬件的具體情況,根據(jù)BSP 層提供的接口即可進(jìn)行開發(fā)。該層一般包含相關(guān)底層硬件的初始化、數(shù)據(jù)的輸入/輸出操作和硬件設(shè)備的配置功能。BSP具有硬件相關(guān)性和操作系統(tǒng)相關(guān)性兩大特點(diǎn)。
BSP包括了系統(tǒng)中大部分與硬件聯(lián)系緊密的軟件模塊。一個(gè)完整的BSP需要完成兩部分工作:嵌入式系統(tǒng)的硬件初始化和硬件相關(guān)的設(shè)備驅(qū)動(dòng)。
2.系統(tǒng)軟件層
系統(tǒng)軟件層由實(shí)時(shí)多任務(wù)操作系統(tǒng)(Real-time Operation System,RTOS)、文件系統(tǒng)、圖形用戶接口(Graphic User Interface,GUI)、網(wǎng)絡(luò)系統(tǒng)及通用組件模塊組成。RTOS是嵌入式應(yīng)用軟件的基礎(chǔ)和開發(fā)平臺(tái)。
嵌入式操作系統(tǒng)(Embedded Operation System,EOS)是一種用途廣泛的系統(tǒng)軟件,過(guò)去它主要應(yīng)用于工業(yè)控制和國(guó)防系統(tǒng)領(lǐng)域。EOS負(fù)責(zé)嵌入系統(tǒng)的全部軟、硬件資源的分配、任務(wù)調(diào)度,控制、協(xié)調(diào)并發(fā)活動(dòng)。它必須體現(xiàn)其所在系統(tǒng)的特征,能夠通過(guò)裝卸某些模塊來(lái)達(dá)到系統(tǒng)所要求的功能。隨著Internet技術(shù)的發(fā)展、信息家電的普及應(yīng)用及EOS的微型化和專業(yè)化,EOS開始從單一的弱功能向高專業(yè)化的強(qiáng)功能方向發(fā)展。嵌入式操作系統(tǒng)在系統(tǒng)實(shí)時(shí)高效性、硬件的相關(guān)依賴性、軟件固化及應(yīng)用的專用性等方面具有較為突出的特點(diǎn)。比較著名的嵌入式操作系統(tǒng)有Ready System公司的VRTX、ISI(Integrated System Incorporation)的PSOS和IMG的VxWorks、QNX公司的QNX、Palm OS、WinCE、嵌入式Linux、Lynx、Nucleux等。這兩年隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,Google的Android系統(tǒng)異軍突起,成為消費(fèi)類電子領(lǐng)域應(yīng)用較為廣泛的操作系統(tǒng)之一。
3.應(yīng)用軟件層
由于要求系統(tǒng)盡量精簡(jiǎn),因此相當(dāng)一部分嵌入式設(shè)備的應(yīng)用軟件和操作系統(tǒng)都是緊密結(jié)合的,沒(méi)有系統(tǒng)軟件和應(yīng)用軟件的明顯區(qū)分。然而隨著芯片技術(shù)的發(fā)展,以及應(yīng)用需求的逐步復(fù)雜化,逐漸地,有部分嵌入式設(shè)備開始有應(yīng)用軟件,并且可以允許用戶隨意安裝和卸載應(yīng)用軟件,這在消費(fèi)類電子產(chǎn)品領(lǐng)域尤為常見。