<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 設計應用 > 一種可移植的嵌入式圖形支持系統:MiniGUI

一種可移植的嵌入式圖形支持系統:MiniGUI

作者: 時(shí)間:2009-11-29 來(lái)源:網(wǎng)絡(luò ) 收藏

  
  嵌入式產(chǎn)品開(kāi)發(fā)中常用的圖形解決方案
  
  在嵌入式產(chǎn)品的開(kāi)發(fā)過(guò)程中,軟件開(kāi)發(fā)人員通常采取如下幾種方法來(lái)解決產(chǎn)品的圖形需求:
  
  1.針對特定圖形輸出設備的接口,自行開(kāi)發(fā)圖形相關(guān)的功能函數。利用這種手段編寫(xiě)的程序,無(wú)法將顯示邏輯和數據處理邏輯劃分開(kāi)來(lái),從而導致程序結構不好,不便于調試,并導致大量的代碼重復。這種方案的缺點(diǎn)很明顯,即性差,維護成本高。
  
  2.購買(mǎi)針對特定嵌入式操作系統的圖形中間件軟件包。一些嵌入式操作系統廠(chǎng)商,也為自己的操作系統專(zhuān)門(mén)開(kāi)發(fā)了對應的GUI中間件產(chǎn)品。如uC/OS-II上的uC/GUI、Nucleus上的GRAFIX包、VxWorks上的WindML包等等。這種方案為嵌入式產(chǎn)品開(kāi)發(fā)提供了直接可用的方案,并且能夠和原有操作系統良好配合;但缺點(diǎn)是這類(lèi)軟件包的功能通常比較簡(jiǎn)單,且價(jià)格高昂。另外,基于這些軟件包開(kāi)發(fā)的GUI 應用軟件不具備跨操作系統的性。
  
  3.采用開(kāi)放源碼的嵌入式GUI支持系統。隨著(zhù)嵌入式Linux操作系統的應用,開(kāi)源社區也在不斷為嵌入式系統提供不同的開(kāi)放源碼嵌入式圖形解決方案,如MicroWindows、OpenGUI,以及新近出現的picoGUI等。這些開(kāi)放源碼的嵌入式GUI軟件提供免授權費的解決方案。然而,由于缺少商業(yè)公司的支持,這些軟件一般存在較多的軟件缺陷,加上缺乏有擔保的技術(shù)支持,因此,存在著(zhù)很大的開(kāi)發(fā)風(fēng)險。


  
  圖2 和嵌入式操作系統的關(guān)系。
  
  4.使用由獨立軟件開(kāi)發(fā)商提供的嵌入式GUI產(chǎn)品。這類(lèi)產(chǎn)品有北京飛漫軟件技術(shù)有限公司開(kāi)發(fā)的、挪威TrollTech公司的Qt/Embedded等。這兩種產(chǎn)品都是開(kāi)源(遵循GNU的GPL條款發(fā)布)的嵌入式GUI軟件產(chǎn)品,但均采用雙授權模式,即針對商業(yè)使用收取軟件許可費用。屬于中低端產(chǎn)品,具有跨操作系統特性,以及適合嵌入式產(chǎn)品的小巧、高效的特點(diǎn)。Qt/Embedded屬于高端產(chǎn)品,只支持嵌入式Linux操作系統,需要16MB以上的靜態(tài)存儲空間及6?MB以上的動(dòng)態(tài)存儲空間。
  
  MiniGUI的特點(diǎn)及應用
  
  MiniGUI作為中國為數不多的幾個(gè)自由軟件項目之一,是面向實(shí)時(shí)嵌入式系統的輕量級圖形用戶(hù)界面支持系統,1999年初遵循GPL條款發(fā)布第一個(gè)版本,目前已發(fā)展到1.6.1版本。
  
  MiniGUI為實(shí)時(shí)嵌入式操作系統提供了非常完善的圖形及圖形用戶(hù)界面支持。MiniGUI本身的性設計,使得不論在哪個(gè)硬件平臺、哪種操作系統上運行,MiniGUI均能為上層應用程序提供一致的應用程序編程接口(API)。
  
  作為操作系統和應用程序之間的中間件,MiniGUI將底層操作系統及硬件平臺差別隱藏了起來(lái),并對上層應用程序提供了一致的功能特性,這些功能特性包括:
  
  1.完備的多窗口機制和消息傳遞機制。
  
  2.常用的控件類(lèi),包括靜態(tài)文本框、按鈕、單行和多行編輯框、列表框、組合框、進(jìn)度條、屬性頁(yè)、工具欄、拖動(dòng)條、樹(shù)型控件、月歷控件等。
  
  3.對話(huà)框和消息框支持以及其它GUI元素,包括菜單、加速鍵、插入符、定時(shí)器等。
  
  4.界面皮膚支持。用戶(hù)可通過(guò)皮膚支持獲得外觀(guān)非常華麗的圖形界面。
  
  5.通過(guò)兩種不同的內部軟件結構支持低端顯示設備(如單色 LCD)和高端顯示設備(如彩色顯示器),前者小巧靈活,而后者在前者的基礎上提供了更加強大的圖形功能。
  
  6.Windows的資源文件支持,如位圖、圖標、光標等。
  
  7.各種流行圖像文件的支持,包括JPEG、GIF、PNG、TGA、BMP等等。
  
  8.多字符集和多字體支持,目前支持ISO8859-1?ISO8859-15、GB2312、GBK、GB18030、BIG5、EUC-JP、Shift-JIS、EUC-KR、UNICODE等字符集,支持等寬點(diǎn)陣字體、變寬點(diǎn)陣字體、Qt/Embedded 使用的嵌入式字QPF、TrueType以及Adobe Type1等矢量字體。
  
  9.多種鍵盤(pán)布局的支持。MiniGUI除支持常見(jiàn)的美式PC鍵盤(pán)布局之外,還支持法語(yǔ)、德語(yǔ)等語(yǔ)種的鍵盤(pán)布局。
  
  10.簡(jiǎn)體中文(GB2312)輸入法支持,包括內碼、全拼、智能拼音等。用戶(hù)還可以從飛漫軟件獲得五筆、自然碼等輸入法支持。
  
  11.針對嵌入式系統的特殊支持,包括一般性的I/O流操作,字節序相關(guān)函數等。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>