基于Microwindows的嵌入式GUI分析及應(yīng)用
總而言之,最新版本的Microwindows 在硬件驅(qū)動加速上、在圖形引擎算法上以及代碼質(zhì)量上,都比原先的版本有較大的改進。
Microwindows 的API
Microwindows 采用分層體系結(jié)構(gòu)設(shè)計,提供了豐富的API 支持,支持Win32/ WinCE GDI 和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 和EL KS 系統(tǒng),而后者主要用于MSDOS 實模式。
鼠標驅(qū)動程序主要有三個:mou_gpm. c ,用于Linux 的一個GPM 驅(qū)動; mou _ ser. c ,用于Linux 和EL KS 系統(tǒng);mou_gpm. c ,主要用于MSDOS 系統(tǒng)。
屏幕驅(qū)動程序有面向16 位EL KS、MSDOS 實模式的V GA 驅(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)上清晰,功能上也完全。
評論