国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于Microwindows的嵌入式GUI分析及應(yīng)用

發(fā)布時(shí)間:2010-7-30 13:39    發(fā)布者:lavida
關(guān)鍵詞: GUI , Microwindows , 嵌入式
嵌入式圖形用戶界面與存儲(chǔ)安全、嵌入式JAVA 虛擬機(jī)并稱(chēng)為嵌入式系統(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 開(kāi)放源代碼、遵循不同授權(quán)條款的諸多Embedded GUI 軟件及其自由開(kāi)發(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)格要求的專(zhuā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 ,開(kāi)發(fā)的重點(diǎn)在窗口系統(tǒng)、圖形接口上。  

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

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

作為一個(gè)開(kāi)放源代碼項(xiàng)目,Microwindows 將現(xiàn)代圖形窗口技術(shù)的一些特性展現(xiàn)給了編程團(tuán)體,而不需要諸如Microsof t Windows 或X Window 這樣占用較大磁盤(pán)和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)行,而無(wú)需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)程序和文本畫(huà)圖的速度;  
(6) 32 位ARGB 硬件驅(qū)動(dòng)支持單色Alpha ;  
(7) 支持帶有HAVI 鍵盤(pán)映射的L IRC 鍵盤(pán);  
(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)行修改或重寫(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)上清晰,功能上也完全。  
在Microwindows 上的API 接口函數(shù)的基本模型都是用來(lái)初始化屏幕、鍵盤(pán)和鼠標(biāo)的驅(qū)動(dòng)程序,然后一直等待select () 消息循環(huán)。當(dāng)事件發(fā)生時(shí),這條信息將送到用戶程序。如果是用戶請(qǐng)求圖形操作,那參數(shù)將被編碼后送到適當(dāng)?shù)腉dXXX 核心程序上。與原始圖形操作相對(duì)的窗口概念是被該層所控制的,也就是說(shuō)該層的API 函數(shù)定義了窗口及其對(duì)應(yīng)系統(tǒng)的概念。這樣,系統(tǒng)坐標(biāo)就能被轉(zhuǎn)成屏幕上顯示的坐標(biāo),并且可將數(shù)據(jù)傳給GdXXX 核心程序,由它進(jìn)行實(shí)際操作。該層亦定義圖形/ 顯示文件,并且會(huì)將此信息(包括裁減信息) 送到核心程序上。  

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

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


  

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

Microwindows 最為顯著的優(yōu)勢(shì)在于它可以在桌面計(jì)算機(jī)上仿真運(yùn)行目標(biāo)平臺(tái)的GUI 及其支撐軟件。這就意味著面向Linux 的Microwindows 應(yīng)用軟件可以在桌面計(jì)算機(jī)的Linux 環(huán)境下編制和調(diào)試,而沒(méi)有必要建立跨平臺(tái)交叉編譯環(huán)境,并在目標(biāo)平臺(tái)上對(duì)軟件進(jìn)行編制和調(diào)試。這一點(diǎn)對(duì)于Embedded GUI 移植和開(kāi)發(fā)而言,意義非同尋常。這完全歸功于Microwindows 的X Screen Driver ,而非Linux 的Framebuffer 。  
我們?cè)谧烂嬗?jì)算機(jī)上的Linux 8. 0 仿真環(huán)境下運(yùn)行Microwindows ,并通過(guò)一個(gè)簡(jiǎn)單實(shí)例演示仿真環(huán)境下的Microwindows 應(yīng)用編程。顯然,我們應(yīng)采用Nano-X API。  

仿真環(huán)境下Microwindows 主要的安裝步驟:  

(1) 下載并安裝最新源代碼Microwindows20. 90. tar和最新字體microwindows2font s20. 90. tar。  
(2) 修改安裝目錄下的配置文件,如mirowin/ src 下的config file ,主要包括以下幾項(xiàng):  

ARCH = LINUX-NATIVE;   
/ / 高速系統(tǒng)為主機(jī)LINUX 建立應(yīng)用程序  
…  
HAVE_FREETYPE_SUPPORT = Y;   
/ / 設(shè)置對(duì)Free Type 和T1lib 字體的支持  
HAVE_ T1LIB_SUPPORT = Y;  
HAVE_HZK_SUPPORT = Y;  
…  
X11 = Y;  
SCREEN_WIDTH = 640 ;  
SCREEN_HEIGHT = 480 ;  
SCREEN_PIXTYPE = MWPF_TRUECOLOR0888 ;  
Microwindows 在桌面Linux 8. 0環(huán)境下的運(yùn)行效果如圖2 所示。  


  
結(jié)束語(yǔ)  

嵌入式相關(guān)研究和應(yīng)用正在以前所未有的速度發(fā)展著,而作為嵌入式系統(tǒng)核心內(nèi)容之一的Embedded GUI 一定會(huì)隨著嵌入式系統(tǒng)的發(fā)展處于舉足輕重的地位。具有高可移植性、豐富API 支持、開(kāi)放源代碼及可仿真運(yùn)行的Microwindows ,在諸多Embedded GUI 技術(shù)中必將脫穎而出。
本文地址:http://m.qingdxww.cn/thread-18026-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專(zhuān)區(qū)
  • 使用SAM-IoT Wx v2開(kāi)發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開(kāi)發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專(zhuān)區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美视频精品一区二区三区 | 日韩在线一区二区三区免费视频 | 曰韩免费视频 | 高清国产激情视频在线观看 | 国产又长又粗又爽免费视频 | 四虎永久免费网站免费观看 | 手机免费看黄色 | 日本不卡视频一区二区 | 国产在线欧美日韩一区二区 | 日本欧美一区二区三区视频 | 岛国午夜精品视频在线观看 | 日本精品国产 | 欧美日韩中文国产va另类 | 女人洗澡一级特黄毛片 | 朋友的妻子中文字幕 | 久久综合视频网站 | 国产自在自拍 | 国产精品成人免费综合 | 国产一区二区三区在线观看视频 | 九九色网| 亚洲一区二区三区福利在线 | 国产美女免费国产 | 国产成人欧美一区二区三区vr | 欧美日韩中文在线 | 红纸鹤免费高清在线观看 | 亚洲综合五月天婷 | 毛片免费全部完整播放 | 91社区视频在线观看 | 麻豆精品视频 | 国产精品国产三级国产普通话 | 午夜欧美成人香蕉剧场 | 亚洲欧美综合乱码精品成人网 | 黄色成人影视 | 欧美激情不卡 | 精品在线观看免费 | 午夜视频免费国产在线 | 青草成人 | 91在线视频在线 | 国产欧美日韩不卡在线播放在线 | 狠狠狠色丁香婷婷综合久久五月 | va亚洲va欧美va国产综合 |