基于Microwindows的嵌入式GUI設(shè)計(jì)
發(fā)布時(shí)間:2008/8/18 0:00:00 訪問次數(shù):488
嵌入式圖形用戶界面與存儲(chǔ)安全、嵌入式j(luò)ava 虛擬機(jī)并稱為嵌入式系統(tǒng)中的三大關(guān)鍵技術(shù)。在嵌入式應(yīng)用領(lǐng)域,伴隨著硬件技術(shù)的發(fā)展,傳統(tǒng)意義上的人機(jī)交互界面正趨于淡化,取而代之的是具有友好人機(jī)交互支持的嵌入式圖形界面。
嵌入式計(jì)算機(jī)系統(tǒng)以其關(guān)鍵部件的高性能、低價(jià)格等優(yōu)勢(shì)為embedded gui 的發(fā)展奠定了堅(jiān)實(shí)的市場(chǎng)和技術(shù)基礎(chǔ);而基于linux 開放源代碼、遵循不同授權(quán)條款的諸多embedded gui 軟件及其自由開發(fā)者,又大大推進(jìn)了embedded gui 的應(yīng)用進(jìn)程,起到推波助瀾的作用,如microwindows、minigui 及qt/ embedded 等。
嵌入式系統(tǒng)是以應(yīng)用為中心、計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)的這一定義也就界定了嵌入式系統(tǒng)對(duì)embedded gui 的基本要求。這些要求如下: (1) 輕量級(jí)、占用系統(tǒng)資源少; (2) 性能高,友好的人機(jī)互動(dòng); (3) 可靠性高; (4) 模塊架構(gòu),配置靈活,便于移植。
目前,在嵌入式應(yīng)用領(lǐng)域比較成功的embedded gui主要有minigui、microwindows 和qt/ embedded。
minigui 和microwindows 都是自由軟件,只是前者遵循l gpl 條款,后者遵循mpl 條款。這兩個(gè)系統(tǒng)的技術(shù)路線也有所不同。minigui 的策略是首先建立在比較成熟的圖形引擎之上,如svgalib 和libggi ,開發(fā)的重點(diǎn)在窗口系統(tǒng)、圖形接口上。
microwindows 目前的開發(fā)重點(diǎn)則在底層的圖形引擎上,它不需要其它圖形系統(tǒng)的支持。在linux 操作系統(tǒng)上,microwindows 也可以充分利用linux 提供的framebuffer機(jī)制來顯示圖形。并且,microwindows 還具有很強(qiáng)的移植性,能夠在大多數(shù)微處理器上運(yùn)行。
qt/ embedded 由于移植了大量原來基于qt 的xwindows 程序,提供了非常完整的嵌入式gui 解決方案,再加上opera 瀏覽器,可以說是一個(gè)成熟的商業(yè)軟件。然而,qt/ embedded 不能運(yùn)行在非qt 的軟件中,其源代碼也過于龐大。
作為一個(gè)開放源代碼項(xiàng)目,microwindows 將現(xiàn)代圖形窗口技術(shù)的一些特性展現(xiàn)給了編程團(tuán)體,而不需要諸如microsof t windows 或x window 這樣占用較大磁盤和ram 空間的高級(jí)窗口的支持。它直接面向顯示硬件本身,不需要任何操作系統(tǒng)或其它圖形系統(tǒng)的支持,可以在linux 2. 0 以上的framebuffer 系統(tǒng)上很好地運(yùn)行。microwindows 本身就被設(shè)計(jì)成便于移植、能夠在大多數(shù)硬件和軟件環(huán)境下運(yùn)行的embedded gui。
microwindows 最新版本0. 9 有如下新特性:
(1) 支持新的nxl ib 項(xiàng)目,nxl ib 對(duì)x11 的二進(jìn)制程序可以不加修改地直接在microwindows 里運(yùn)行,而無需x11 server 支持;
(2) 支持sharp zaurus、tuxscreen、trimedia 及cygnus x11 平臺(tái);
(3) 內(nèi)建標(biāo)準(zhǔn)化校準(zhǔn)(nxcal) 支持,如一個(gè)觸摸屏驅(qū)動(dòng)程序可以支持包含ipaq、zaurus、ads 和tuxscreen 在內(nèi)的大多數(shù)arm 平臺(tái);
(4) 增強(qiáng)了字符支持,包括big5 、gb2312 、euccn、euckr、eucj p 和j isx0213 等;
(5) 大幅提高了x11 屏幕驅(qū)動(dòng)程序和文本畫圖的速度;
(6) 32 位argb 硬件驅(qū)動(dòng)支持單色alpha ;
(7) 支持帶有havi 鍵盤映射的l irc 鍵盤;
(8) 從源代碼中為html 和pdf 文檔自動(dòng)生成支持基于doxygen 的文檔。
總而言之,最新版本的microwindows 在硬件驅(qū)動(dòng)加速上、在圖形引擎算法上以及代碼質(zhì)量上,都比原先的版本有較大的改進(jìn)。
microwindows 的api
microwindows 采用分層體系結(jié)構(gòu)設(shè)計(jì),提供了豐富的api 支持,支持win32/ wince gdi 和nano-x兩種api 集。
microwindows 體系結(jié)構(gòu)
microwindows 的體系結(jié)構(gòu)由下至上,分別為具體硬件、驅(qū)動(dòng)層、圖形引擎層和api 層,如圖1 所示。用戶可以根據(jù)具體應(yīng)用需求對(duì)不同層的代碼進(jìn)行修改或重寫。
(1) 設(shè)備驅(qū)動(dòng)程序。
鍵盤驅(qū)動(dòng)程序主要有兩個(gè),分別是kbd _ tty. c 和kbd _ bios. c 。前者主要用于linux 和el ks 系統(tǒng),而后者主要用于msdos 實(shí)模式。
鼠標(biāo)驅(qū)動(dòng)程序主要有三個(gè):mou_gpm. c ,用于linux 的一個(gè)gpm 驅(qū)動(dòng); mou _ ser. c ,用于linux 和el ks 系統(tǒng);mou_gpm. c ,主要用于msdos 系統(tǒng)。
屏幕驅(qū)動(dòng)程序有面向16 位el ks、msdos 實(shí)模式的v ga 驅(qū)動(dòng)( scr_bios. c、vgaplan4. c、memp14. c 、scr_here. c)和面向linux 的framebuffer ( scr_fb. c、fb. c 等) 兩種。這部分驅(qū)動(dòng)程序最復(fù)雜,在設(shè)計(jì)時(shí)可以參考scr_fb. c 來設(shè)計(jì)自己的屏幕驅(qū)動(dòng)程序。
(2) 設(shè)備獨(dú)立的圖形引擎。
microwindows 的圖形引擎是設(shè)備獨(dú)立的。引擎的每一例程都接受screendevice 結(jié)構(gòu)的指針( psd) 來作為第一個(gè)參數(shù)。psd 說明了底層的顯示細(xì)節(jié),如屏幕大小的x 、y 值,屏幕顏色ncolors ,以
嵌入式圖形用戶界面與存儲(chǔ)安全、嵌入式j(luò)ava 虛擬機(jī)并稱為嵌入式系統(tǒng)中的三大關(guān)鍵技術(shù)。在嵌入式應(yīng)用領(lǐng)域,伴隨著硬件技術(shù)的發(fā)展,傳統(tǒng)意義上的人機(jī)交互界面正趨于淡化,取而代之的是具有友好人機(jī)交互支持的嵌入式圖形界面。
嵌入式計(jì)算機(jī)系統(tǒng)以其關(guān)鍵部件的高性能、低價(jià)格等優(yōu)勢(shì)為embedded gui 的發(fā)展奠定了堅(jiān)實(shí)的市場(chǎng)和技術(shù)基礎(chǔ);而基于linux 開放源代碼、遵循不同授權(quán)條款的諸多embedded gui 軟件及其自由開發(fā)者,又大大推進(jìn)了embedded gui 的應(yīng)用進(jìn)程,起到推波助瀾的作用,如microwindows、minigui 及qt/ embedded 等。
嵌入式系統(tǒng)是以應(yīng)用為中心、計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)的這一定義也就界定了嵌入式系統(tǒng)對(duì)embedded gui 的基本要求。這些要求如下: (1) 輕量級(jí)、占用系統(tǒng)資源少; (2) 性能高,友好的人機(jī)互動(dòng); (3) 可靠性高; (4) 模塊架構(gòu),配置靈活,便于移植。
目前,在嵌入式應(yīng)用領(lǐng)域比較成功的embedded gui主要有minigui、microwindows 和qt/ embedded。
minigui 和microwindows 都是自由軟件,只是前者遵循l gpl 條款,后者遵循mpl 條款。這兩個(gè)系統(tǒng)的技術(shù)路線也有所不同。minigui 的策略是首先建立在比較成熟的圖形引擎之上,如svgalib 和libggi ,開發(fā)的重點(diǎn)在窗口系統(tǒng)、圖形接口上。
microwindows 目前的開發(fā)重點(diǎn)則在底層的圖形引擎上,它不需要其它圖形系統(tǒng)的支持。在linux 操作系統(tǒng)上,microwindows 也可以充分利用linux 提供的framebuffer機(jī)制來顯示圖形。并且,microwindows 還具有很強(qiáng)的移植性,能夠在大多數(shù)微處理器上運(yùn)行。
qt/ embedded 由于移植了大量原來基于qt 的xwindows 程序,提供了非常完整的嵌入式gui 解決方案,再加上opera 瀏覽器,可以說是一個(gè)成熟的商業(yè)軟件。然而,qt/ embedded 不能運(yùn)行在非qt 的軟件中,其源代碼也過于龐大。
作為一個(gè)開放源代碼項(xiàng)目,microwindows 將現(xiàn)代圖形窗口技術(shù)的一些特性展現(xiàn)給了編程團(tuán)體,而不需要諸如microsof t windows 或x window 這樣占用較大磁盤和ram 空間的高級(jí)窗口的支持。它直接面向顯示硬件本身,不需要任何操作系統(tǒng)或其它圖形系統(tǒng)的支持,可以在linux 2. 0 以上的framebuffer 系統(tǒng)上很好地運(yùn)行。microwindows 本身就被設(shè)計(jì)成便于移植、能夠在大多數(shù)硬件和軟件環(huán)境下運(yùn)行的embedded gui。
microwindows 最新版本0. 9 有如下新特性:
(1) 支持新的nxl ib 項(xiàng)目,nxl ib 對(duì)x11 的二進(jìn)制程序可以不加修改地直接在microwindows 里運(yùn)行,而無需x11 server 支持;
(2) 支持sharp zaurus、tuxscreen、trimedia 及cygnus x11 平臺(tái);
(3) 內(nèi)建標(biāo)準(zhǔn)化校準(zhǔn)(nxcal) 支持,如一個(gè)觸摸屏驅(qū)動(dòng)程序可以支持包含ipaq、zaurus、ads 和tuxscreen 在內(nèi)的大多數(shù)arm 平臺(tái);
(4) 增強(qiáng)了字符支持,包括big5 、gb2312 、euccn、euckr、eucj p 和j isx0213 等;
(5) 大幅提高了x11 屏幕驅(qū)動(dòng)程序和文本畫圖的速度;
(6) 32 位argb 硬件驅(qū)動(dòng)支持單色alpha ;
(7) 支持帶有havi 鍵盤映射的l irc 鍵盤;
(8) 從源代碼中為html 和pdf 文檔自動(dòng)生成支持基于doxygen 的文檔。
總而言之,最新版本的microwindows 在硬件驅(qū)動(dòng)加速上、在圖形引擎算法上以及代碼質(zhì)量上,都比原先的版本有較大的改進(jìn)。
microwindows 的api
microwindows 采用分層體系結(jié)構(gòu)設(shè)計(jì),提供了豐富的api 支持,支持win32/ wince gdi 和nano-x兩種api 集。
microwindows 體系結(jié)構(gòu)
microwindows 的體系結(jié)構(gòu)由下至上,分別為具體硬件、驅(qū)動(dòng)層、圖形引擎層和api 層,如圖1 所示。用戶可以根據(jù)具體應(yīng)用需求對(duì)不同層的代碼進(jìn)行修改或重寫。
(1) 設(shè)備驅(qū)動(dòng)程序。
鍵盤驅(qū)動(dòng)程序主要有兩個(gè),分別是kbd _ tty. c 和kbd _ bios. c 。前者主要用于linux 和el ks 系統(tǒng),而后者主要用于msdos 實(shí)模式。
鼠標(biāo)驅(qū)動(dòng)程序主要有三個(gè):mou_gpm. c ,用于linux 的一個(gè)gpm 驅(qū)動(dòng); mou _ ser. c ,用于linux 和el ks 系統(tǒng);mou_gpm. c ,主要用于msdos 系統(tǒng)。
屏幕驅(qū)動(dòng)程序有面向16 位el ks、msdos 實(shí)模式的v ga 驅(qū)動(dòng)( scr_bios. c、vgaplan4. c、memp14. c 、scr_here. c)和面向linux 的framebuffer ( scr_fb. c、fb. c 等) 兩種。這部分驅(qū)動(dòng)程序最復(fù)雜,在設(shè)計(jì)時(shí)可以參考scr_fb. c 來設(shè)計(jì)自己的屏幕驅(qū)動(dòng)程序。
(2) 設(shè)備獨(dú)立的圖形引擎。
microwindows 的圖形引擎是設(shè)備獨(dú)立的。引擎的每一例程都接受screendevice 結(jié)構(gòu)的指針( psd) 來作為第一個(gè)參數(shù)。psd 說明了底層的顯示細(xì)節(jié),如屏幕大小的x 、y 值,屏幕顏色ncolors ,以
熱門點(diǎn)擊
- CPU學(xué)習(xí) (Cache Coherence
- 瑞薩推出具有1Mbyte片內(nèi)SRAM的32位
- MAP譯碼器嵌入式狀態(tài)信息存儲(chǔ)機(jī)制設(shè)計(jì)
- 嵌入式uClinux下的CAN總線設(shè)備驅(qū)動(dòng)程
- Atmel 在AT91SAM3中使用ARM3
- 全路由器掃描
- 嵌入式中C和匯編的一些技巧
- 基于ARM平臺(tái)的GPRS CQT測(cè)試系統(tǒng)的設(shè)
- 嵌入式系統(tǒng)軟件及編程語(yǔ)言
- 中文資料:vxwork bsp的制作1
推薦技術(shù)資料
- DFRobot—玩的就是
- 如果說新車間的特點(diǎn)是“靈動(dòng)”,F(xiàn)QPF12N60C那么... [詳細(xì)]
- 100A全集成電源模塊R
- Teseo-VIC6A GNSS車用精準(zhǔn)定位
- 高效先進(jìn)封裝工藝
- 模數(shù)轉(zhuǎn)換器 (Analog-to-Digit
- 集成模數(shù)轉(zhuǎn)換器(ADC)
- 128 通道20 位電流數(shù)字轉(zhuǎn)換器̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究