嵌入式系統軟體及程式語言

linglongyouzhi發表於2020-04-07
 

嵌入式系統軟體及程式語言

[日期:2008-7-17] 來源:EDN  作者:楊 峰 唐繼勇 [字型: ]
<script src="http://www.21ic.com/innews.js"></script>

 

1、引言:
    隨著計算機技術和微電子技術的迅速發展,嵌入式系統應用領域越來越廣泛。當今,嵌入式系統已成為一個時髦的名詞,就像當初的計算機熱潮,似乎比當初的計算機熱潮涉及的領域更廣泛,應用技術人員更多,相關國民經濟產值也更龐大。報紙、雜誌、網路都把嵌入式系統當作討論的熱門話題。
    嵌入式系統一般指非PC系統,有計算機功能但又不稱之為計算機的裝置或器材。它是以應用為中心,軟硬體可裁減的,適應應用系統對功能、可靠性、成本、體積、功耗等綜合性嚴格要求的專用計算機系統。

嵌入式系統主要由嵌入式微處理器、外圍硬體裝置、嵌入式作業系統以及使用者的應用程式等4個部分組成,它是集軟硬體於一體的可獨立工作的"器件"。

嵌入式系統的軟體部分包括作業系統軟體(要求實時和多工操作)和應用程式程式設計。作業系統控制著應用程式程式設計與硬體的互動作用,而應用程式控制著系統的運作和行為。



2、嵌入式系統軟體:



(1)嵌入式作業系統:
     嵌入式作業系統是一種支援嵌入式系統應用的作業系統軟體,它是嵌入式系統(包括硬、軟體系統)極為重要的組成部分,通常包括與硬體相關的底層驅動軟體、系統核心、裝置驅動介面、通訊協議、圖形介面、標準化瀏覽器等Browser。     

嵌入式作業系統具有通用作業系統的基本特點,如能夠有效管理越來越複雜的系統資源;能夠把硬體虛擬化,使得開發人員從繁忙的驅動程式移植和維護中解脫出來;能夠提供庫函式、驅動程式、工具集以及應用程式。與通用作業系統相比較,嵌入式作業系統在系統實時高效性、硬體的相關依賴性、軟體固態化以及應用的專用性等方面具有較為突出的特點。



(2)嵌入式作業系統的發展狀況:

國外嵌入式作業系統已經從簡單走向成熟,主要有Vxwork、QNX、PalmOS、Windows CE、嵌入式Linux等。

國內的嵌入式作業系統研究開發有2種型別,一類是基於國外作業系統2次開發完成的,如海信的基於Windows CE的機頂盒系統;另一類是中國自主開發的嵌入式作業系統,如凱思集團公司自主研製開發的嵌入式作業系統Hopen OS(“女媧計劃”)等。 
    Windows CE核心較小,能作為一種嵌入式作業系統應用到工業控制等領域。其優點在於便攜性、提供對微處理器的選擇以及非強行的電源管理功能。內建的標準通訊能力使Windows CE能夠訪問Internet並收發E-mail或瀏覽Web。除此之外,Windows CE特有的與Windows類似的使用者介面使終端使用者易於使用。  

Windows CE的缺點是速度慢、效率低、價格偏高、開發應用程式相對較難。 

3Com公司的Palm OS在掌上電腦和PDA市場上獨佔其霸主地位,它有開放的作業系統應用程式介面(API),開發商可根據需要自行開發所需的應用程式。 
    QNX是由加拿大QSSL公司開發的分散式實時作業系統,它由微核心和一組共操作的程式組成,具有高度的伸縮性,可靈活地剪裁,最小配置只佔用幾十KB記憶體。因此,可以廣泛地嵌入到智慧機器、智慧儀器儀表、機頂盒、通訊裝置、PDA等應用中去。
    Hopen OS是凱思集團自主研製開發的嵌入式作業系統,由一個體積很小的核心及一些可以根據需要進行定製的系統模組組成。其核心Hopen Kernel一般為10KB左右大小,佔用空間小,並具有實時、多工、多執行緒的系統特徵。
    在眾多的實時作業系統和嵌入式作業系統產品中,WindRiver公司的VxWorks是較為有特色的一種實時作業系統。VxWorks支援各種工業標準,包括POSIX、ANSI C 和TCP/IP網路協議。VxWorks執行系統的核心是一個高效率的微核心,該微核心支援各種實時功能,包括快速多工處理、中斷支援、搶佔式和輪轉式排程。目前在全世界裝有VxWorks系統的智慧裝置數以百萬計,其應用範圍遍及網際網路、電信和資料通訊等眾多領域。
    而作為一種嵌入式作業系統,嵌入式Linux以其特別和引人注目的優勢正極
大地吸引電子設計工程師從自己編寫的或專用的RTOS轉移到Linux。據VDC Data的資料顯示,整個Linux的增長從2000年的1%到2003年的14%,再到2010年猛增到67%。Even Data資料顯示,在嵌入式市場,嵌入式Linux從2001年11%增到2002年27%,而同期Vxwork只是從16%到18%,WIN CE從9%到14%。在嵌入式Linux的各種應用市場中,語音和資料通訊名列第一,2000年的銷售額是1300萬美元,而預計2005年達到1 .26 億美元(VDC Data資料),可以說嵌入式Linux將成為主流的通用嵌入式作業系統。



(3)嵌入式Linux作業系統:

選擇作業系統時,要根據自己的嵌入式要求和實時性要求,選擇適合自己的嵌入式Linux,如果可能,儘量選擇使用普遍的嵌入式Linux系統。概括說來,將Linux應用於嵌入式系統的開發有如下一些優點:
1)Linux自身具備一整套工具鏈,容易自行建立嵌入式系統的開發環境和交叉運 

行環境,並且可以跨越在嵌入式系統開發中模擬工具(ICE)的障礙。
2)核心的完全開放,使得可以自己設計和開發出真正的硬實時系統;對於軟實時

系統,在Linux中也容易得到實現。
3)強大的網路支援,使得可以利用Linux的網路協議棧將其開發成為嵌入式的

TCP/IP網路協議棧。
在嵌入式系統中使用Linux有2種途徑: 
1)是使用者自己裝配(稱為DIY核心),可以在www.kernel.org和GNU的網站找到全部Linux程式碼,然後再編譯生成你 

需要版本的工具鏈和應用程式庫,這個過程比較耗時和困難。還需要指出,這種DIY核心的配置,新增應用和驅 

動程式也是不標準的和複雜的,這是嵌入式系統的特殊性所在,比如說,有的應用是網路上的小型互連裝置,

它需要多個乙太網、USB主機、小型的NOR Flash檔案系統,而一個手持終端,它關心的是LCD的觸屏、紅外或

藍芽的介面、USB使用者端、快速的啟動,動態的電源管理和NADA FLASH,這樣就需要在數十家Linux相關網站下

載各種補丁、應用和工具,把它們和核心進行反覆的編譯和除錯,確信它們之間以及它們在硬體評估板上是穩

定可靠工作的,這個過程是在沒有任何技術支援下完成的。 
2)選擇一個商業的嵌入式Linux作業系統平臺。商業化的嵌入式Linux版本是針對嵌入式處理器所優化設計的,已

經支援了各種半導體廠家的評估板和主要的裝置驅動,商業化的嵌入式Linux包含了檔案系統、應用、實時性擴

展和技術支援培訓服務。

   現今國外著名的商業化嵌入式Linux產品有:

MontaVista Linux, Bluecat Linux, Timesys Linux, Metrowork Linux(原Lineo), Vlinux(韓國)和

Redhat Linux等,國內也有紅旗、中軟等嵌入式Linux。


(4)嵌入式Windows作業系統:
    微軟公司從1996年開始以其Windows CE 1.0版本涉足小型嵌入式系統。Windows CE 1.0是一種從頭做起的程式碼庫,面向具有圖形介面的手持裝置,在外觀和感覺上像Windows 95。同樣,臺式Windows的元件化版本於1999年面世,其一個工具組和大約250個元件均來自Windows NT。

就嵌入式作業系統而言,Windows 是一種很有吸引力的選擇,因為它有大家熟悉的API,可以找到熟練的程式設計師和廉價的部件,而且還可以利用臺式PC許多強大的功能。微軟公司最新嵌入式產品,即Windows XP 嵌入式作業系統和Windows CE.Net作業系統,都為開發人員帶來了新的特性和功能。
    微軟公司的Windows XP嵌入式作業系統與其臺式XP作業系統專業版一樣都基於相同的二進位制程式碼,而且XP嵌入式作業系統是Windows NT 4.0嵌入式作業系統的後繼版本。嵌入式版本包括含有臺式版本所有的安全功能、多媒體功能、Web瀏覽功能、電源管理功能和裝置支援功能,只是將臺式版本分解為10000多個元件,所以開發人員可以選擇某些單元來構建一個定製的佔用記憶體容量小的作業系統。Windows XP嵌入式作業系統及最新的服務包都有很多新的通訊選購件、檔案系統選購件和開發工具選購件,這些選購件可使設計小組在以後的專案中選用這一作業系統。 
    Windows CE.NET建立在不同於臺式作業系統的體系結構上。其設計目標包括廣泛的無線連線性、實時功能和與裝置無關的Web服務。與 Windows XP Embedded不同, Windows CE.NET支援 ARM、 MIPS、 SHx和 x86等系列處理器,從而使其適用於各種各樣嵌入式產品。Windows CE.NET包含了.NET Compact Framework,這是微軟公司的智慧裝置開發平臺,可在任何時候、任何地點和在任何裝置上為消費者提供Web服務。為支援NET Compact Framework,Windows CE.NET包括一套整合的端到端工具和幾種定製開發語言,如Visual Basic.NET、Visual C++.NET和Visual C#.NET。



3、嵌入式系統高階程式語言:

目前,在嵌入式系統開發過程中使用的語言種類很多,但僅有少數幾種語言得到了比較廣泛的應用,主要為Ada、C/C++、Modula-2等幾種。
    Ada語言是20世紀70年代美國國防部開發並投入使用的功能強大的通用系統開發語言,最初為Ada83。它支援模組化、獨立編譯、協處理等功能,其可靠性、可維護性、可讀性都是相當好的。後來,為了更好地支援OOP(Object-Oriented Programming),對其進行了改進,形成了目前廣泛使用的Ada95。使用Ada語言可以大大改善系統的清晰性、可靠性、可維護性等效能指標。它是美國國防部指定的唯一一種可用於軍用系統開發的語言。
    C語言是由Dennis Richie於1972年在AT & Bell實驗室研究成功並投入使用的系統程式語言,其設計目標是使C既具有組合語言的效率,又具有高階語言的易程式設計性,其最具代表性的應用是UNIX作業系統。從20世紀80年代中期C語言涉足實時系統後,受到了普遍歡迎。目前是使用最廣泛的嵌入式系統程式語言。C++是由Bjarne Stroustrup於1995年在Bell實驗室研製成功並投入使用的。C++在支援現代軟體工程、OOP、結構化等方面對C進行了卓有成效的改進,但在程式程式碼容量、執行速度、程式複雜程度等方面比C語言程式效能差一些。
    Modula-2是由Nicklans Wirth在70年代後期根據Pascal和Modula開發的系統設計語言,其主要目標是在模組化、系統程式設計、協同處理等方面對Pascal 進行改進。Modula-2具有很強的型別檢查能力和豐富的低階功能支援。因此,可用它設計一個完整的實時程式而不用匯編語言的支援。Modula-3是1988年由DEC (Digital Equipment Company)和ORC(Olivetti Research Center)根據Modula-2開發研製並投入使用的系統開發語言。目標是設計一個功能強大但結構簡單的通用程式語言,它在協同處理、OOP、自動垃圾收集以及對C語言和UNIX的支援等方面對 Modula-2進行了改進。 



4、結束語:

資訊時代、數字時代使得嵌入式產品獲得了巨大的發展機遇,也為嵌入式市場展現了美好的前景,同時也對嵌入式系統的開發者提出了新的挑戰。

相關文章