基于Microwindows的嵌入式GUI分析及應(yīng)用
總而言之,最新版本的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)行修改或重寫(xiě)。
(1) 設(shè)備驅(qū)動(dòng)程序。
鍵盤(pán)驅(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 來(lái)設(shè)計(jì)自己的屏幕驅(qū)動(dòng)程序。
(2) 設(shè)備獨(dú)立的圖形引擎。
Microwindows 的圖形引擎是設(shè)備獨(dú)立的。引擎的每一例程都接受SCREENDEVICE 結(jié)構(gòu)的指針( PSD) 來(lái)作為第一個(gè)參數(shù)。PSD 說(shuō)明了底層的顯示細(xì)節(jié),如屏幕大小的x 、y 值,屏幕顏色ncolors ,以及諸如打開(kāi)、關(guān)閉、畫(huà)線等函數(shù)指針。PSD 結(jié)構(gòu)定義如下:
Microwindows 的API
Microwindows 提供兩個(gè)應(yīng)用程序接口:一是Win32 接口,這種API 不是很成熟;二是Nano-X ,這種API 比較好,結(jié)構(gòu)上清晰,功能上也完全。
評(píng)論