新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 學習方法與實踐 > 如何選用嵌入式圖形系統(tǒng)

如何選用嵌入式圖形系統(tǒng)

——
作者:王勇 時間:2007-12-14 來源:賽迪網(wǎng) 收藏
       高端消費類電子產(chǎn)品(如PDA、手機)的廣泛應用,使原先僅在軍工、工業(yè)控制等領域中使用的實時操作系統(tǒng),越來越受到關注,業(yè)界相應出現(xiàn)了多種各具特色的實時操作系統(tǒng)產(chǎn)品。針對多樣化的供應,選擇成了一個難題。 

       而作為除操作系統(tǒng)之外,開發(fā)人員關注的焦點,以及現(xiàn)實的需求也催生出了一批更美觀和操作方便的圖形用戶界面。如此琳瑯滿目的市場供應,開發(fā)人員該做出如何選擇呢?為目標嵌入式產(chǎn)品選擇適合的嵌入式圖形支持系統(tǒng)已經(jīng)成為與選擇嵌入式操作系統(tǒng)一樣,成為頗具挑戰(zhàn)性的難題。 

       而現(xiàn)實情況是,在嵌入式系統(tǒng)上的GUI開發(fā),并不像普通PC平臺上的應用開發(fā)那么容易和方便。一方面是因為設備的可用資源有限(CPU運算能力、靜態(tài)和動態(tài)存儲空間等),另外就是操作系統(tǒng)提供的底層機制有限。這樣一來,就造成了開發(fā)人員在為具有不同硬件配置的嵌入式產(chǎn)品以及實時嵌入式操作系統(tǒng)選擇功能完備、且又適合目標產(chǎn)品特點的GUI支持系統(tǒng)時,面臨諸多技術(shù)挑戰(zhàn)。 

      嵌入式圖形技術(shù)現(xiàn)狀 

       嵌入式GUI為嵌入式系統(tǒng)提供了一種應用于特殊場合的人機交互接口。嵌入式GUI要求簡單、直觀、可靠、占用資源小且反應快速。尤其在實時系統(tǒng)中對GUI的快速反應提出很高的要求。 

       嵌入式目前可以大致分為二類,一類是針對某個嵌入式系統(tǒng)提供GUI的圖形庫及接口,一般基于GUI提供了完整的解決方案和應用。此類除Microsoft的WinCE外,大都隨著嵌入式Linux的發(fā)展而發(fā)展起來的。在Linux下有成熟的桌面產(chǎn)品,擁有大量的應用和應用開發(fā)人員。此類的典型為TrollTech的Qtopia和GNU的GTK+。 

       另一類是專門針對嵌入式系統(tǒng)提供的嵌入式圖形中間件。此類系統(tǒng)考慮支持不同的硬件環(huán)境和支持不同的嵌入式操作系統(tǒng)。為滿足嵌入式系統(tǒng)的不同需要,都提供了靈活的、可伸縮的軟件架構(gòu)。此類的代表為北京飛漫軟件的MiniGUI、SwellSoftware的PEG和TilconSoftware的Tilcon產(chǎn)品。此類系統(tǒng)一般是由專業(yè)公司在維護,基于核心的GUI系統(tǒng)針對某一行業(yè)提供關鍵應用、解決方案和開發(fā)工具等系列產(chǎn)品。 

       和微軟的WinCE系統(tǒng)內(nèi)核支持圖形系統(tǒng)不同,絕大多數(shù)嵌入式系統(tǒng)都通過應用層來完成對圖形系統(tǒng)的支持。支持單一操作系統(tǒng)的圖形系統(tǒng)可以使用一些系統(tǒng)調(diào)用來優(yōu)化系統(tǒng)的性能。將滿足嵌入式各種硬件平臺的任務交給操作系統(tǒng)來處理。這樣的方式限制了圖形系統(tǒng)的跨系統(tǒng)能力。支持多操作系統(tǒng)和多硬件平臺的圖形中間件,通過優(yōu)化的系統(tǒng)架構(gòu),可以很好地解決嵌入式平臺各種硬件的問題,集中處理圖形方面相關問題,為系統(tǒng)提供優(yōu)秀的圖形系統(tǒng)平臺。這樣的處理是符合目前的嵌入式系統(tǒng)的發(fā)展的。 

       為此,筆者采訪了飛漫軟件技術(shù)公司研發(fā)部經(jīng)理焦力波,以期從技術(shù)角度對MiniGUI做以剖析,給致力于此的其他廠商以合理借鑒。 

       MiniGUI 

       MiniGUI是一個高效、可靠、可定制、小巧靈活的圖形用戶界面支持系統(tǒng),具有跨硬件平臺、跨操作系統(tǒng)的可移植性。同時它又是一個是面向?qū)崟r嵌入式系統(tǒng)的輕量級圖形用戶界面支持系統(tǒng)。自1999年初遵循GPL條款發(fā)布第一個版本以來,MiniGUI已廣泛應用于手持信息終端、機頂盒、工業(yè)控制系統(tǒng)及工業(yè)儀表等產(chǎn)品和領域。 

       MiniGUI為實時嵌入式操作系統(tǒng)提供了非常完善的圖形及用戶界面支持。MiniGUI本身的可移植性設計,使得不論在哪個硬件平臺、哪種操作系統(tǒng)上運行,MiniGUI均能為上層應用程序提供一致的應用程序編程接口(API)。MiniGUI具有良好的軟件架構(gòu),通過抽象層將MiniGUI上層和底層操作系統(tǒng)隔離開來如圖1所示。 

       MiniGUI是一個根據(jù)嵌入式系統(tǒng)應用特點量身定做的完整的圖形支持系統(tǒng)。作為操作系統(tǒng)和應用程序之間的中間件,MiniGUI將底層操作系統(tǒng)及硬件平臺差別隱藏了起來,并對上層應用程序提供了一致的功能特性。MiniGUI的整體架構(gòu)圖如圖2所示。 

       MiniGUI在發(fā)展過程中,引入了很多技術(shù)創(chuàng)新點,如圖形和輸入抽象層、多字體和多字符集支持和針對不同操作系統(tǒng)特點的運行模式等。正是由于這些技術(shù)上的創(chuàng)新,才使得MiniGUI對實時嵌入式系統(tǒng)的適應性更強,靈活性更好。 

       圖形和輸入抽象層 

        圖形和輸入抽象層對頂層API基本沒有影響,但大大方便了MiniGUI自身及應用程序的移植和調(diào)試等。MiniGUI能夠在基于i386、ARM(包括StrongARM、xScale等)MIPS、PowerPC及低端的DragonBall、ColdFire等CPU的嵌入式系統(tǒng)上流暢運行。 

        利用圖形和輸入抽象層,還可以實現(xiàn)基于軟件結(jié)構(gòu)的引擎。比如模擬現(xiàn)實輸入的random輸入引擎,通過它可以完成應用程序的自動測試。我們可以通過Shadow圖形引擎支持YUV輸出設備、提供對無法直接訪問顯示幀緩沖區(qū)的圖形芯片的支持、提供對低于8位色顯示屏的支持、實現(xiàn)屏幕旋轉(zhuǎn)功能等。 

        多字體和多字符集支持 

        這部分通過設備上下文(DC)的邏輯字體實現(xiàn),不管是字體類型還是字符集,都可非常方便地進行擴充。利用DrawText等函數(shù)時,可通過指定字體而獲得對各種字符集的支持,如GB2312、GBK、UNICODE(UTF-8、UTF-16編碼)等。這樣,在單個MiniGUI應用程序中,同時顯示多個不同語種的文字非常容易。MiniGUI的這種字符集支持不同于通過UNICODE內(nèi)碼實現(xiàn)的傳統(tǒng)多字符集支持,這種實現(xiàn)占用資源少,更加適合于嵌入式系統(tǒng)。 

        針對不同操作系統(tǒng)特點的運行模式 

        和Linux這樣的類UNIX操作系統(tǒng)相比,一般意義上的傳統(tǒng)嵌入式操作系統(tǒng)具有一些特殊性。例如象uClinux、uC/OS-II、eCos、VxWorks等操作系統(tǒng),通常運行在沒有MMU的CPU上;這時,往往沒有進程的概念,而只有線程或任務的概念,這樣,GUI系統(tǒng)的運行環(huán)境也就大相徑庭。因此,為了適合不同的操作系統(tǒng)環(huán)境,可將MiniGUI配置成MiniGUI-Threads、MiniGUI-Processes及MiniGUI-Standalone三種運行模式。 

        MiniGUI的技術(shù)優(yōu)勢 

        M*iniGUI在對系統(tǒng)的需求上主要有以下幾點優(yōu)勢: 

        可伸縮性強 

        MiniGUI豐富的功能和可配置特性,使得它既可運行于CPU主頻只有60MHz的低端產(chǎn)品中,亦可運行于高端嵌入式設備中,并且可使用MiniGUI的高級控件風格及皮膚界面等技術(shù),創(chuàng)建華麗的用戶界面。同時,它的跨操作系統(tǒng)特性,使得MiniGUI不僅可運行在最簡單的嵌入式操作系統(tǒng)之上,也可運行在具有現(xiàn)代操作系統(tǒng)特性的嵌入式操作系統(tǒng)之上(如Linux),并且為嵌入式Linux系統(tǒng)提供了完整的多窗口圖形環(huán)境。 

       輕型、占用資源少 

        作為一個定位于輕量級的嵌入式圖形庫,MiniGUI完全考慮到了系統(tǒng)資源對嵌入式設備的硬件的需求,如MiniGUI庫所占的空間最小可以裁剪到500K左右,對目前的嵌入式設備來說,滿足這一條件是綽綽有余的。 

       高性能、高可靠性 

        MiniGUI良好的體系結(jié)構(gòu)及優(yōu)化的圖形接口,可確保最快的圖形繪制速度??紤]到實時嵌入式系統(tǒng)的特點,在設計之初MiniGUI就對多窗口環(huán)境下的圖形繪制開展了大量的研究及開發(fā),優(yōu)化了MiniGUI的圖形繪制性能及資源占用。在大量實際系統(tǒng)中的應用,尤其在工業(yè)控制系統(tǒng)的應用,證明了MiniGUI的高性能。 

       可配置性 

       為滿足嵌入式系統(tǒng)不同的需求,必須要求GUI系統(tǒng)是可配置的。和Linux內(nèi)核類似,MiniGUI為滿足嵌入式系統(tǒng)多樣的需求,也實現(xiàn)了大量的編譯配置選項,通過這些選項可指定MiniGUI庫中包括哪些功能而同時不包括哪些功能。 

       這些配置選項大大增強了MiniGUI的靈活性,對用戶來講,可針對具體的應用需求量體裁衣,開發(fā)最適合產(chǎn)品需求的應用軟件。MiniGUI很好地將現(xiàn)代窗口和圖形技術(shù)帶入到了嵌入式設備。 

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關推薦

技術(shù)專區(qū)

關閉