基于Microwindows的嵌入式GUI設(shè)計-設(shè)計應(yīng)用_第1頁
基于Microwindows的嵌入式GUI設(shè)計-設(shè)計應(yīng)用_第2頁
基于Microwindows的嵌入式GUI設(shè)計-設(shè)計應(yīng)用_第3頁
基于Microwindows的嵌入式GUI設(shè)計-設(shè)計應(yīng)用_第4頁
基于Microwindows的嵌入式GUI設(shè)計-設(shè)計應(yīng)用_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

精品文檔-下載后可編輯基于Microwindows的嵌入式GUI設(shè)計-設(shè)計應(yīng)用引言嵌入式圖形用戶界面與存儲安全、嵌入式JAVA虛擬機并稱為嵌入式系統(tǒng)中的三大關(guān)鍵技術(shù)。在嵌入式應(yīng)用領(lǐng)域,伴隨著硬件技術(shù)的發(fā)展,傳統(tǒng)意義上的人機交互界面正趨于淡化,取而代之的是具有友好人機交互支持的嵌入式圖形界面。

嵌入式計算機系統(tǒng)以其關(guān)鍵部件的高性能、低價格等優(yōu)勢為EmbeddedGUI的發(fā)展奠定了堅實的市場和技術(shù)基礎(chǔ);而基于Linux開放源代碼、遵循不同授權(quán)條款的諸多EmbeddedGUI軟件及其自由開發(fā)者,又大大推進了EmbeddedGUI的應(yīng)用進程,起到推波助瀾的作用,如Microwindows、MiniGUI及QT/Embedded等。

嵌入式系統(tǒng)是以應(yīng)用為中心、計算機技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。嵌入式系統(tǒng)的這一定義也就界定了嵌入式系統(tǒng)對EmbeddedGUI的基本要求。這些要求如下:(1)輕量級、占用系統(tǒng)資源少;(2)性能高,友好的人機互動;(3)可靠性高;(4)模塊架構(gòu),配置靈活,便于移植。

目前,在嵌入式應(yīng)用領(lǐng)域比較成功的EmbeddedGUI主要有MiniGUI、Microwindows和QT/Embedded。

MiniGUI和Microwindows都是自由軟件,只是前者遵循LGPL條款,后者遵循MPL條款。這兩個系統(tǒng)的技術(shù)路線也有所不同。MiniGUI的策略是首先建立在比較成熟的圖形引擎之上,如Svgalib和LibGGI,開發(fā)的重點在窗口系統(tǒng)、圖形接口上。

Microwindows目前的開發(fā)重點則在底層的圖形引擎上,它不需要其它圖形系統(tǒng)的支持。在Linux操作系統(tǒng)上,Microwindows也可以充分利用Linux提供的Framebuffer機制來顯示圖形。并且,Microwindows還具有很強的移植性,能夠在大多數(shù)微處理器上運行。

QT/Embedded由于移植了大量原來基于QT的XWindows程序,提供了非常完整的嵌入式GUI解決方案,再加上Opera瀏覽器,可以說是一個成熟的商業(yè)軟件。然而,QT/Embedded不能運行在非QT的軟件中,其源代碼也過于龐大。

作為一個開放源代碼項目,Microwindows將現(xiàn)代圖形窗口技術(shù)的一些特性展現(xiàn)給了編程團體,而不需要諸如MicrosoftWindows或XWindow這樣占用較大磁盤和RAM空間的窗口的支持。它直接面向顯示硬件本身,不需要任何操作系統(tǒng)或其它圖形系統(tǒng)的支持,可以在Linux2.0以上的Framebuffer系統(tǒng)上很好地運行。Microwindows本身就被設(shè)計成便于移植、能夠在大多數(shù)硬件和軟件環(huán)境下運行的EmbeddedGUI。

Microwindows版本0.9有如下新特性:

(1)支持新的NXLIB項目,NXLIB對X11的二進制程序可以不加修改地直接在Microwindows里運行,而無需X11Server支持;(2)支持SharpZaurus、Tuxscreen、TriMedia及CygnusX11平臺;(3)內(nèi)建標準化校準(nxcal)支持,如一個觸摸屏驅(qū)動程序可以支持包含iPAQ、Zaurus、ADS和Tuxscreen在內(nèi)的大多數(shù)ARM平臺;(4)增強了字符支持,包括BIG5、GB2312、EUCCN、EUCKR、EUCJP和JISX0213等;(5)大幅提高了X11屏幕驅(qū)動程序和文本畫圖的速度;(6)32位ARGB硬件驅(qū)動支持單色Alpha;(7)支持帶有HAVI鍵盤映射的LIRC鍵盤;(8)從源代碼中為html和pdf文檔自動生成支持基于Doxygen的文檔。

總而言之,版本的Microwindows在硬件驅(qū)動加速上、在圖形引擎算法上以及代碼質(zhì)量上,都比原先的版本有較大的改進。

Microwindows的API

Microwindows采用分層體系結(jié)構(gòu)設(shè)計,提供了豐富的API支持,支持Win32/WinCEGDI和Nano-X兩種API集。

Microwindows體系結(jié)構(gòu)

Microwindows的體系結(jié)構(gòu)由下至上,分別為具體硬件、驅(qū)動層、圖形引擎層和API層,如圖1所示。用戶可以根據(jù)具體應(yīng)用需求對不同層的代碼進行修改或重寫。

(1)設(shè)備驅(qū)動程序。

鍵盤驅(qū)動程序主要有兩個,分別是kbd_tty.c和kbd_bios.c。前者主要用于Linux和ELKS系統(tǒng),而后者主要用于MSDOS實模式。

鼠標驅(qū)動程序主要有三個:mou_gpm.c,用于Linux的一個GPM驅(qū)動;mou_ser.c,用于Linux和ELKS系統(tǒng);mou_gpm.c,主要用于MSDOS系統(tǒng)。

屏幕驅(qū)動程序有面向16位ELKS、MSDOS實模式的VGA驅(qū)動(scr_bios.c、vgaplan4.c、memp14.c、scr_here.c)和面向Linux的Framebuffer(scr_fb.c、fb.c等)兩種。這部分驅(qū)動程序復(fù)雜,在設(shè)計時可以參考scr_fb.c來設(shè)計自己的屏幕驅(qū)動程序。

(2)設(shè)備獨立的圖形引擎。

Microwindows的圖形引擎是設(shè)備獨立的。引擎的每一例程都接受SCREENDEVICE結(jié)構(gòu)的指針(PSD)來作為個參數(shù)。PSD說明了底層的顯示細節(jié),如屏幕大小的x、y值,屏幕顏色ncolors,以及諸如打開、關(guān)閉、畫線等函數(shù)指針。PSD結(jié)構(gòu)定義如下:

Microwindows的API

Microwindows提供兩個應(yīng)用程序接口:一是Win32接口,這種API不是很成熟;二是Nano-X,這種API比較好,結(jié)構(gòu)上清晰,功能上也完全。

在Microwindows上的API接口函數(shù)的基本模型都是用來初始化屏幕、鍵盤和鼠標的驅(qū)動程序,然后一直等待select()消息循環(huán)。當事件發(fā)生時,這條信息將送到用戶程序。如果是用戶請求圖形操作,那參數(shù)將被編碼后送到適當?shù)腉dXXX程序上。與原始圖形操作相對的窗口概念是被該層所控制的,也就是說該層的API函數(shù)定義了窗口及其對應(yīng)系統(tǒng)的概念。這樣,系統(tǒng)坐標就能被轉(zhuǎn)成屏幕上顯示的坐標,并且可將數(shù)據(jù)傳給GdXXX程序,由它進行實際操作。該層亦定義圖形/顯示文件,并且會將此信息(包括裁減信息)送到程序上。

Microwindows的API支持大多數(shù)圖形繪制、裁減、窗口工具條繪制及拖拉窗口等程序。Nano-X是由DavinBell為minix設(shè)計的,它被設(shè)計為C/S模式,一般是通過UnixDomainsocket在客戶與服務(wù)器端進行通信的,但沒有實現(xiàn)窗口管理,所以對窗口的處理需要使用系統(tǒng)提供的一個插件集,或者完全由應(yīng)用程序員自已開發(fā)。另外,Nano-X不是消息驅(qū)動的,而是基于X協(xié)議模式。在這種模式下,驅(qū)動整個系統(tǒng)運行的可以說是請求與事件。

請求就是客戶端為了完成某一動作而對服務(wù)器端所發(fā)出的申請,并且為每一個請求都定義了一個標識數(shù)。每個請求的結(jié)構(gòu)都是不同的,但類似如下結(jié)構(gòu):

事件是每個窗口系統(tǒng)必不可少的部分,它反映系統(tǒng)運行的狀態(tài),一共有22種。對于每個事件都要提供有關(guān)它的結(jié)構(gòu),但沒有必要提供22種事件結(jié)構(gòu),有一些事件所需要的數(shù)據(jù)是一樣的,如所有鼠標的事件都使用一個事件結(jié)構(gòu)表示,如下所示:

Microwindows在仿真環(huán)境下的應(yīng)用

Microwindows為顯著的優(yōu)勢在于它可以在桌面計算機上仿真運行目標平臺的GUI及其支撐軟件。這就意味著面向Linux的Microwindows應(yīng)用軟件可以在桌面計算機的Linux環(huán)境下編制和調(diào)試,而沒有必要建立跨平臺交叉編譯環(huán)境,并在目標平臺上對軟件進行編制和調(diào)試。這一點對于EmbeddedGUI移植和開發(fā)而言,意義非同尋常。這完全歸功于Microwindows的XScreenDriver,而非Linux的Framebuffer。

我們在桌面計算機上的Linux8.0仿真環(huán)境下運行Microwindows,并通過一個簡單實例演示仿真環(huán)境下的Microwindows應(yīng)用編程。顯然,我們應(yīng)采用Nano-XAPI。

仿真環(huán)境下Microwindows主要的安裝步驟:(1)并安裝源代碼Microwindows20.90.tar和字體microwindows2fonts20.90.tar。(2)修改安裝目錄下的配置文件,如mirowin/src下的configfile,主要包括以下幾項:ARCH=LINUX-NATIVE;//高速系統(tǒng)為主機LINUX建立應(yīng)用程序…HAVE_FREETYPE_SUPPORT=Y;//設(shè)置對FreeType和T1lib字體的支持HAVE_T1LIB_SUPPORT=Y;HAVE_HZK_SUPPORT=Y;…X11=Y;SCREEN_WIDTH=640;SCREEN_HEIGHT=480;SCREEN_PIXTYPE=MWPF_TRUECOLOR0888;Microwind

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論