MicroWindows體系結(jié)構(gòu)及應(yīng)用程序接口
摘要:MicroWindows是一個(gè)著名的開(kāi)放源碼的嵌入式GUI軟件。本文簡(jiǎn)要論述了MicroWindows的體系結(jié)構(gòu)和應(yīng)用程序接口,并介紹其設(shè)備驅(qū)動(dòng)特性、API、客戶機(jī)/服務(wù)器模型和畫(huà)圖機(jī)制。關(guān)鍵詞:MicroWindows API Nano-X 圖形用戶界面
許多開(kāi)發(fā)者在嵌入式設(shè)計(jì)中開(kāi)始使用類(lèi)似于桌面的操作系統(tǒng)。其中一個(gè)方案就是Linux操作系統(tǒng)。由于Linux在嵌入式系統(tǒng)上具有桌面電腦的全部功能和特性,作為一種免費(fèi)的開(kāi)放源碼,它允許修改和根據(jù)用戶的要求進(jìn)行定制。
MicroWindows是一個(gè)開(kāi)放源碼的嵌入式GUI軟件,目的是把圖形視窗環(huán)境引入到運(yùn)行Linux的小型設(shè)備和平臺(tái)上。作為X Window系統(tǒng)的替代品,MicroWindows可以用更少的RAM和文件存儲(chǔ)空間(100KB~600KB)提供相似的功能,允許設(shè)計(jì)得輕松加入各種顯示設(shè)備、鼠標(biāo)、觸摸屏和鍵盤(pán)等;可移植性非常好,可用C語(yǔ)言實(shí)現(xiàn);支持Intel 16位/32位CPU、MIPS R4000以及基于ARM內(nèi)核的處理器芯片。
1 體系結(jié)構(gòu)
1.1 分層結(jié)構(gòu)設(shè)計(jì)
MicroWindows采用分層結(jié)構(gòu)設(shè)計(jì)方法,在底層提供對(duì)屏幕、鼠標(biāo)、觸摸屏和鍵盤(pán)的驅(qū)動(dòng),在程序能訪問(wèn)實(shí)際的硬件設(shè)備和其它用戶定制設(shè)備。在中間層有一個(gè)可移植圖形引擎,提供繪制線程、區(qū)域填充、繪制多邊形、裁減和使用顏色模式的方法。在頂層實(shí)現(xiàn)多種API以適應(yīng)不同的應(yīng)用環(huán)境。目前,MicroWindows中使用兩種流行的圖形編程接口:Microsoft Windows Win32/WinCE圖形顯示接口(GDI)和Xlib接口。前者應(yīng)用于所有的Windows CE和Win32應(yīng)用程序;后者就像Nano-X,應(yīng)用于所有Linux X插件集的最底層,這樣可讓Linux圖形程序員X接口開(kāi)發(fā)圖形應(yīng)用程序。
1.2 驅(qū)動(dòng)設(shè)備
device.h文件中定義設(shè)備驅(qū)動(dòng)接口。MicroWindows已實(shí)現(xiàn)至少將一個(gè)屏幕、鼠標(biāo)和鍵盤(pán)的驅(qū)動(dòng)與系統(tǒng)相連。獨(dú)立圖形設(shè)備引擎的中間層可以使驅(qū)動(dòng)設(shè)備直接完成對(duì)硬件的具體操作。
(1)屏幕驅(qū)動(dòng)
MicroWindows可運(yùn)行在支持Framebuffer的32位Linux系統(tǒng)上,也可使用SVGALib[45]庫(kù)來(lái)進(jìn)行圖形顯示。此外,還被移植到16位的ELKS和實(shí)模式的MSDOS上,實(shí)現(xiàn)1、2、4、8、16和32位的像素支持,以及實(shí)現(xiàn)VGA16平面模式支持。它的圖形引擎能夠運(yùn)行在任何支持readpixel、writepixel、drawhorzline、drawvertline和setpalette的系統(tǒng)之上。如果底層驅(qū)動(dòng)系統(tǒng)實(shí)現(xiàn)了Blitting,則上層可提供更多的增強(qiáng)功能。在底層函數(shù)的支持之下,上層實(shí)現(xiàn)了對(duì)位圖、字體、光標(biāo)以及顏色的支持。除了基于調(diào)色板的1、2、4和8位像素模式,也實(shí)現(xiàn)15、16和32位像素的真彩模式。
[1] [2] [3] [4] [5] [6]