嵌入式系統(tǒng)軟件及編程語言
隨著計算機(jī)技術(shù)和微電子技術(shù)的迅速發(fā)展,嵌入式系統(tǒng)應(yīng)用領(lǐng)域越來越廣泛。當(dāng)今,嵌入式系統(tǒng)已成為一個時髦的名詞,就像當(dāng)初的計算機(jī)熱潮,似乎比當(dāng)初的計算機(jī)熱潮涉及的領(lǐng)域更廣泛,應(yīng)用技術(shù)人員更多,相關(guān)國民經(jīng)濟(jì)產(chǎn)值也更龐大。報紙、雜志、網(wǎng)絡(luò)都把嵌入式系統(tǒng)當(dāng)作討論的熱門話題。
嵌入式系統(tǒng)一般指非PC系統(tǒng),有計算機(jī)功能但又不稱之為計算機(jī)的設(shè)備或器材。它是以應(yīng)用為中心,軟硬件可裁減的,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等綜合性嚴(yán)格要求的專用計算機(jī)系統(tǒng)。
嵌入式系統(tǒng)主要由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的應(yīng)用程序等4個部分組成,它是集軟硬件于一體的可獨(dú)立工作的"器件"。
嵌入式系統(tǒng)的軟件部分包括操作系統(tǒng)軟件(要求實(shí)時和多任務(wù)操作)和應(yīng)用程序編程。操作系統(tǒng)控制著應(yīng)用程序編程與硬件的交互作用,而應(yīng)用程序控制著系統(tǒng)的運(yùn)作和行為。
1、嵌入式系統(tǒng)軟件:
(1)嵌入式操作系統(tǒng):
嵌入式操作系統(tǒng)是一種支持嵌入式系統(tǒng)應(yīng)用的操作系統(tǒng)軟件,它是嵌入式系統(tǒng)(包括硬、軟件系統(tǒng))極為重要的組成部分,通常包括與硬件相關(guān)的底層驅(qū)動軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器等Browser。
嵌入式操作系統(tǒng)具有通用操作系統(tǒng)的基本特點(diǎn),如能夠有效管理越來越復(fù)雜的系統(tǒng)資源;能夠把硬件虛擬化,使得開發(fā)人員從繁忙的驅(qū)動程序移植和維護(hù)中解脫出來;能夠提供庫函數(shù)、驅(qū)動程序、工具集以及應(yīng)用程序。與通用操作系統(tǒng)相比較,嵌入式操作系統(tǒng)在系統(tǒng)實(shí)時高效性、硬件的相關(guān)依賴性、軟件固態(tài)化以及應(yīng)用的專用性等方面具有較為突出的特點(diǎn)。
(2)嵌入式操作系統(tǒng)的發(fā)展?fàn)顩r:
國外嵌入式操作系統(tǒng)已經(jīng)從簡單走向成熟,主要有Vxwork、QNX、PalmOS、Windows CE、嵌入式Linux等。
國內(nèi)的嵌入式操作系統(tǒng)研究開發(fā)有2種類型,一類是基于國外操作系統(tǒng)2次開發(fā)完成的,如海信的基于Windows CE的機(jī)頂盒系統(tǒng);另一類是中國自主開發(fā)的嵌入式操作系統(tǒng),如凱思集團(tuán)公司自主研制開發(fā)的嵌入式操作系統(tǒng)Hopen OS(“女媧計劃”)等。
Windows CE內(nèi)核較小,能作為一種嵌入式操作系統(tǒng)應(yīng)用到工業(yè)控制等領(lǐng)域。其優(yōu)點(diǎn)在于便攜性、提供對微處理器的選擇以及非強(qiáng)行的電源管理功能。內(nèi)置的標(biāo)準(zhǔn)通信能力使Windows CE能夠訪問Internet并收發(fā)E-mail或瀏覽Web。除此之外,Windows CE特有的與Windows類似的用戶界面使最終用戶易于使用。
Windows CE的缺點(diǎn)是速度慢、效率低、價格偏高、開發(fā)應(yīng)用程序相對較難。
3Com公司的Palm OS在掌上電腦和PDA市場上獨(dú)占其霸主地位,它有開放的操作系統(tǒng)應(yīng)用程序接口(API),開發(fā)商可根據(jù)需要自行開發(fā)所需的應(yīng)用程序。
QNX是由加拿大QSSL公司開發(fā)的分布式實(shí)時操作系統(tǒng),它由微內(nèi)核和一組共操作的進(jìn)程組成,具有高度的伸縮性,可靈活地剪裁,最小配置只占用幾十KB內(nèi)存。因此,可以廣泛地嵌入到智能機(jī)器、智能儀器儀表、機(jī)頂盒、通訊設(shè)備、PDA等應(yīng)用中去。
Hopen OS是凱思集團(tuán)自主研制開發(fā)的嵌入式操作系統(tǒng),由一個體積很小的內(nèi)核及一些可以根據(jù)需要進(jìn)行定制的系統(tǒng)模塊組成。其核心Hopen Kernel一般為10KB左右大小,占用空間小,并具有實(shí)時、多任務(wù)、多線程的系統(tǒng)特征。
在眾多的實(shí)時操作系統(tǒng)和嵌入式操作系統(tǒng)產(chǎn)品中,WindRiver公司的VxWorks是較為有特色的一種實(shí)時操作系統(tǒng)。VxWorks支持各種工業(yè)標(biāo)準(zhǔn),包括POSIX、ANSI C 和TCP/IP網(wǎng)絡(luò)協(xié)議。VxWorks運(yùn)行系統(tǒng)的核心是一個高效率的微內(nèi)核,該微內(nèi)核支持各種實(shí)時功能,包括快速多任務(wù)處理、中斷支持、搶占式和輪轉(zhuǎn)式調(diào)度。目前在全世界裝有VxWorks系統(tǒng)的智能設(shè)備數(shù)以百萬計,其應(yīng)用范圍遍及互聯(lián)網(wǎng)、電信和數(shù)據(jù)通信等眾多領(lǐng)域。
而作為一種嵌入式操作系統(tǒng),嵌入式Linux以其特別和引人注目的優(yōu)勢正極大地吸引電子設(shè)計工程師從自己編寫的或?qū)S玫腞TOS轉(zhuǎn)移到Linux。據(jù)VDC Data的數(shù)據(jù)顯示,整個Linux的增長從2000年的1%到2003年的14%,再到2010年猛增到67%。Even Data數(shù)據(jù)顯示,在嵌入式市場,嵌入式Linux從2001年11%增到2002年27%,而同期Vxwork只是從16%到18%,WIN CE從9%到14%。在嵌入式Linux的各種應(yīng)用市場中,語音和數(shù)據(jù)通信名列第一,2000年的銷售額是1300萬美元,而預(yù)計2005年達(dá)到1 .26 億美元(VDC Data數(shù)據(jù)),可以說嵌入式Linux將成為主流的通用嵌入式操作系統(tǒng)。
(3)嵌入式Linux操作系統(tǒng):
選擇操作系統(tǒng)時,要根據(jù)自己的嵌入式要求和實(shí)時性要求,選擇適合自己的嵌入式Linux,如果可能,盡量選擇使用普遍的嵌入式Linux系統(tǒng)。概括說來,將Linux應(yīng)用于嵌入式系統(tǒng)的開發(fā)有如下一些優(yōu)點(diǎn):
1)Linux自身具備一整套工具鏈,容易自行建立嵌入式系統(tǒng)的開發(fā)環(huán)境和交叉運(yùn)行環(huán)境,并且可以跨越在嵌入式系統(tǒng)開發(fā)中仿真工具(ICE)的障礙。
2)內(nèi)核的完全開放,使得可以自己設(shè)計和開發(fā)出真正的硬實(shí)時系統(tǒng);對于軟實(shí)時系統(tǒng),在Linux中也容易得到實(shí)現(xiàn)。
3)強(qiáng)大的網(wǎng)絡(luò)支持,使得可以利用Linux的網(wǎng)絡(luò)協(xié)議棧將其開發(fā)成為嵌入式的TCP/IP網(wǎng)絡(luò)協(xié)議棧。
在嵌入式系統(tǒng)中使用Linux有2種途徑:
1)是用戶自己裝配(稱為DIY內(nèi)核),可以在www.kernel.org和GNU的網(wǎng)站找到全部Linux代碼,然后再編譯生成你需要版本的工具鏈和應(yīng)用程序庫,這個過程比較耗時和困難。還需要指出,這種DIY內(nèi)核的配置,添加應(yīng)用和驅(qū)動程序也是不標(biāo)準(zhǔn)的和復(fù)雜的,這是嵌入式系統(tǒng)的特殊性所在,比如說,有的應(yīng)用是網(wǎng)絡(luò)上的小型互連設(shè)備,它需要多個以太網(wǎng)、USB主機(jī)、小型的NOR Flash文件系統(tǒng),而一個手持終端,它關(guān)心的是LCD的觸屏、紅外或藍(lán)牙的接口、USB用戶端、快速的啟動,動態(tài)的電源管理和NADA FLASH,這樣就需要在數(shù)十家Linux相關(guān)網(wǎng)站下載各種補(bǔ)丁、應(yīng)用和工具,把它們和內(nèi)核進(jìn)行反復(fù)的編譯和調(diào)試,確信它們之間以及它們在硬件評估板上是穩(wěn)定可靠工作的,這個過程是在沒有任何技術(shù)支持下完成的。
2)選擇一個商業(yè)的嵌入式Linux操作系統(tǒng)平臺。商業(yè)化的嵌入式Linux版本是針對嵌入式處理器所優(yōu)化設(shè)計的,已經(jīng)支持了各種半導(dǎo)體廠家的評估板和主要的設(shè)備驅(qū)動,商業(yè)化的嵌入式Linux包含了文件系統(tǒng)、應(yīng)用、實(shí)時性擴(kuò)展和技術(shù)支持培訓(xùn)服務(wù)。
現(xiàn)今國外著名的商業(yè)化嵌入式Linux產(chǎn)品有:MontaVista Linux, Bluecat Linux, Timesys Linux, Metrowork Linux(原Lineo), Vlinux(韓國)和Redhat Linux等,國內(nèi)也有紅旗、中軟等嵌入式Linux。
(4)嵌入式Windows操作系統(tǒng):
微軟公司從1996年開始以其Windows CE 1.0版本涉足小型嵌入式系統(tǒng)。Windows CE 1.0是一種從頭做起的代碼庫,面向具有圖形界面的手持設(shè)備,在外觀和感覺上像Windows 95。同樣,臺式Windows的組件化版本于1999年面世,其一個工具組和大約250個組件均來自Windows NT。
就嵌入式操作系統(tǒng)而言,Windows 是一種很有吸引力的選擇,因為它有大家熟悉的API,可以找到熟練的程序員和廉價的部件,而且還可以利用臺式PC許多強(qiáng)大的功能。微軟公司最新嵌入式產(chǎn)品,即Windows XP 嵌入式操作系統(tǒng)和Windows CE.Net操作系統(tǒng),都為開發(fā)人員帶來了新的特性和功能。
微軟公司的Windows XP嵌入式操作系統(tǒng)與其臺式XP操作系統(tǒng)專業(yè)版一樣都基于相同的二進(jìn)制代碼,而且XP嵌入式操作系統(tǒng)是Windows NT 4.0嵌入式操作系統(tǒng)的后繼版本。嵌入式版本包括含有臺式版本所有的安全功能、多媒體功能、Web瀏覽功能、電源管理功能和設(shè)備支持功能,只是將臺式版本分解為10000多個組件,所以開發(fā)人員可以選擇某些單元來構(gòu)建一個定制的占用內(nèi)存容量小的操作系統(tǒng)。Windows XP嵌入式操作系統(tǒng)及最新的服務(wù)包都有很多新的通信選購件、文件系統(tǒng)選購件和開發(fā)工具選購件,這些選購件可使設(shè)計小組在以后的項目中選用這一操作系統(tǒng)。
Windows CE.NET建立在不同于臺式操作系統(tǒng)的體系結(jié)構(gòu)上。其設(shè)計目標(biāo)包括廣泛的無線連接性、實(shí)時功能和與設(shè)備無關(guān)的Web服務(wù)。與 Windows XP Embedded不同, Windows CE.NET支持 ARM、 MIPS、 SHx和 x86等系列處理器,從而使其適用于各種各樣嵌入式產(chǎn)品。Windows CE.NET包含了.NET Compact Framework,這是微軟公司的智能設(shè)備開發(fā)平臺,可在任何時候、任何地點(diǎn)和在任何設(shè)備上為消費(fèi)者提供Web服務(wù)。為支持NET Compact Framework,Windows CE.NET包括一套集成的端到端工具和幾種定制開發(fā)語言,如Visual Basic.NET、Visual C++.NET和Visual C#.NET。
2、嵌入式系統(tǒng)高級編程語言:
目前,在嵌入式系統(tǒng)開發(fā)過程中使用的語言種類很多,但僅有少數(shù)幾種語言得到了比較廣泛的應(yīng)用,主要為Ada、C/C++、Modula-2等幾種。
Ada語言是20世紀(jì)70年代美國國防部開發(fā)并投入使用的功能強(qiáng)大的通用系統(tǒng)開發(fā)語言,最初為Ada83。它支持模塊化、獨(dú)立編譯、協(xié)處理等功能,其可靠性、可維護(hù)性、可讀性都是相當(dāng)好的。后來,為了更好地支持OOP(Object-Oriented Programming),對其進(jìn)行了改進(jìn),形成了目前廣泛使用的Ada95。使用Ada語言可以大大改善系統(tǒng)的清晰性、可靠性、可維護(hù)性等性能指標(biāo)。它是美國國防部指定的唯一一種可用于軍用系統(tǒng)開發(fā)的語言。
C語言是由Dennis Richie于1972年在AT & Bell實(shí)驗室研究成功并投入使用的系統(tǒng)編程語言,其設(shè)計目標(biāo)是使C既具有匯編語言的效率,又具有高級語言的易編程性,其最具代表性的應(yīng)用是UNIX操作系統(tǒng)。從20世紀(jì)80年代中期C語言涉足實(shí)時系統(tǒng)后,受到了普遍歡迎。目前是使用最廣泛的嵌入式系統(tǒng)編程語言。
C++是由Bjarne Stroustrup于1995年在Bell實(shí)驗室研制成功并投入使用的。C++在支持現(xiàn)代軟件工程、OOP、結(jié)構(gòu)化等方面對C進(jìn)行了卓有成效的改進(jìn),但在程序代碼容量、執(zhí)行速度、程序復(fù)雜程度等方面比C語言程序性能差一些。
Modula-2是由Nicklans Wirth在70年代后期根據(jù)Pascal和Modula開發(fā)的系統(tǒng)設(shè)計語言,其主要目標(biāo)是在模塊化、系統(tǒng)編程、協(xié)同處理等方面對Pascal 進(jìn)行改進(jìn)。Modula-2具有很強(qiáng)的類型檢查能力和豐富的低級功能支持。
因此,可用它設(shè)計一個完整的實(shí)時程序而不用匯編語言的支持。Modula-3是1988年由DEC (Digital Equipment Company)和ORC(Olivetti Research Center)根據(jù)Modula-2開發(fā)研制并投入使用的系統(tǒng)開發(fā)語言。目標(biāo)是設(shè)計一個功能強(qiáng)大但結(jié)構(gòu)簡單的通用編程語言,它在協(xié)同處理、OOP、自動垃圾收集以及對C語言和UNIX的支持等方面對 Modula-2進(jìn)行了改進(jìn)。
3、結(jié)束語:
信息時代、數(shù)字時代使得嵌入式產(chǎn)品獲得了巨大的發(fā)展機(jī)遇,也為嵌入式市場展現(xiàn)了美好的前景,同時也對嵌入式系統(tǒng)的開發(fā)者提出了新的挑戰(zhàn)。
【編輯推薦】