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