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

基于Microwindows的嵌入式GUI分析及應用

發布時間:2010-7-30 13:39    發布者:lavida
關鍵詞: GUI , Microwindows , 嵌入式
嵌入式圖形用戶界面與存儲安全、嵌入式JAVA 虛擬機并稱為嵌入式系統中的三大關鍵技術。在嵌入式應用領域,伴隨著硬件技術的發展,傳統意義上的人機交互界面正趨于淡化,取而代之的是具有友好人機交互支持的嵌入式圖形界面。  

嵌入式計算機系統以其關鍵部件的高性能、低價格等優勢為Embedded GUI 的發展奠定了堅實的市場和技術基礎;而基于Linux 開放源代碼、遵循不同授權條款的諸多Embedded GUI 軟件及其自由開發者,又大大推進了Embedded GUI 的應用進程,起到推波助瀾的作用,如Microwindows、MiniGUI 及QT/ Embedded 等。  

嵌入式系統是以應用為中心、計算機技術為基礎、軟件硬件可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。嵌入式系統的這一定義也就界定了嵌入式系統對Embedded GUI 的基本要求。這些要求如下: (1) 輕量級、占用系統資源少; (2) 性能高,友好的人機互動; (3) 可靠性高; (4) 模塊架構,配置靈活,便于移植。  

目前,在嵌入式應用領域比較成功的Embedded GUI主要有MiniGUI、Microwindows 和QT/ Embedded。  

MiniGUI 和Microwindows 都是自由軟件,只是前者遵循L GPL 條款,后者遵循MPL 條款。這兩個系統的技術路線也有所不同。MiniGUI 的策略是首先建立在比較成熟的圖形引擎之上,如Svgalib 和LibGGI ,開發的重點在窗口系統、圖形接口上。  

Microwindows 目前的開發重點則在底層的圖形引擎上,它不需要其它圖形系統的支持。在Linux 操作系統上,Microwindows 也可以充分利用Linux 提供的Framebuffer機制來顯示圖形。并且,Microwindows 還具有很強的移植性,能夠在大多數微處理器上運行。  

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

作為一個開放源代碼項目,Microwindows 將現代圖形窗口技術的一些特性展現給了編程團體,而不需要諸如Microsof t Windows 或X Window 這樣占用較大磁盤和RAM 空間的高級窗口的支持。它直接面向顯示硬件本身,不需要任何操作系統或其它圖形系統的支持,可以在Linux 2. 0 以上的Framebuffer 系統上很好地運行。Microwindows 本身就被設計成便于移植、能夠在大多數硬件和軟件環境下運行的Embedded GUI。  

Microwindows 最新版本0. 9 有如下新特性:  

(1) 支持新的NXL IB 項目,NXL IB 對X11 的二進制程序可以不加修改地直接在Microwindows 里運行,而無需X11 Server 支持;  
(2) 支持Sharp Zaurus、Tuxscreen、TriMedia 及Cygnus X11 平臺;  
(3) 內建標準化校準(nxcal) 支持,如一個觸摸屏驅動程序可以支持包含iPAQ、Zaurus、ADS 和Tuxscreen 在內的大多數ARM 平臺;  
(4) 增強了字符支持,包括BIG5 、GB2312 、EUCCN、EUCKR、EUCJ P 和J ISX0213 等;  
(5) 大幅提高了X11 屏幕驅動程序和文本畫圖的速度;  
(6) 32 位ARGB 硬件驅動支持單色Alpha ;  
(7) 支持帶有HAVI 鍵盤映射的L IRC 鍵盤;  
(8) 從源代碼中為html 和pdf 文檔自動生成支持基于Doxygen 的文檔。  

總而言之,最新版本的Microwindows 在硬件驅動加速上、在圖形引擎算法上以及代碼質量上,都比原先的版本有較大的改進。

Microwindows 的API  

Microwindows 采用分層體系結構設計,提供了豐富的API 支持,支持Win32/ WinCE GDI 和Nano-X兩種API 集。  

Microwindows 體系結構  

Microwindows 的體系結構由下至上,分別為具體硬件、驅動層、圖形引擎層和API 層,如圖1 所示。用戶可以根據具體應用需求對不同層的代碼進行修改或重寫。  


  
(1) 設備驅動程序。  

鍵盤驅動程序主要有兩個,分別是kbd _ tty. c 和kbd _ bios. c 。前者主要用于Linux 和EL KS 系統,而后者主要用于MSDOS 實模式。  
鼠標驅動程序主要有三個:mou_gpm. c ,用于Linux 的一個GPM 驅動; mou _ ser. c ,用于Linux 和EL KS 系統;mou_gpm. c ,主要用于MSDOS 系統。  

屏幕驅動程序有面向16 位EL KS、MSDOS 實模式的V GA 驅動( scr_bios. c、vgaplan4. c、memp14. c 、scr_here. c)和面向Linux 的Framebuffer ( scr_fb. c、fb. c 等) 兩種。這部分驅動程序最復雜,在設計時可以參考scr_fb. c 來設計自己的屏幕驅動程序。  

(2) 設備獨立的圖形引擎。  

Microwindows 的圖形引擎是設備獨立的。引擎的每一例程都接受SCREENDEVICE 結構的指針( PSD) 來作為第一個參數。PSD 說明了底層的顯示細節,如屏幕大小的x 、y 值,屏幕顏色ncolors ,以及諸如打開、關閉、畫線等函數指針。PSD 結構定義如下:  


  
Microwindows 的API  

Microwindows 提供兩個應用程序接口:一是Win32 接口,這種API 不是很成熟;二是Nano-X ,這種API 比較好,結構上清晰,功能上也完全。  
在Microwindows 上的API 接口函數的基本模型都是用來初始化屏幕、鍵盤和鼠標的驅動程序,然后一直等待select () 消息循環。當事件發生時,這條信息將送到用戶程序。如果是用戶請求圖形操作,那參數將被編碼后送到適當的GdXXX 核心程序上。與原始圖形操作相對的窗口概念是被該層所控制的,也就是說該層的API 函數定義了窗口及其對應系統的概念。這樣,系統坐標就能被轉成屏幕上顯示的坐標,并且可將數據傳給GdXXX 核心程序,由它進行實際操作。該層亦定義圖形/ 顯示文件,并且會將此信息(包括裁減信息) 送到核心程序上。  

Microwindows 的API 支持大多數圖形繪制、裁減、窗口工具條繪制及拖拉窗口等程序。Nano-X 最先是由Davin Bell 為minix 設計的,它被設計為C/ S 模式,一般是通過Unix Domain socket 在客戶與服務器端進行通信的,但沒有實現窗口管理,所以對窗口的處理需要使用系統提供的一個插件集,或者完全由應用程序員自已開發。另外,Nano-X 不是消息驅動的,而是基于X 協議模式。在這種模式下,驅動整個系統運行的可以說是請求與事件。  

請求就是客戶端為了完成某一動作而對服務器端所發出的申請,并且為每一個請求都定義了一個標識數。每個請求的結構都是不同的,但類似如下結構:  


  

  
  
事件是每個窗口系統必不可少的部分,它反映系統運行的狀態,一共有22 種。對于每個事件都要提供有關它的結構,但沒有必要提供22 種事件結構,有一些事件所需要的數據是一樣的,如所有鼠標的事件都使用一個事件結構表示,如下所示:  
   
Microwindows 仿真環境下的應用  

Microwindows 最為顯著的優勢在于它可以在桌面計算機上仿真運行目標平臺的GUI 及其支撐軟件。這就意味著面向Linux 的Microwindows 應用軟件可以在桌面計算機的Linux 環境下編制和調試,而沒有必要建立跨平臺交叉編譯環境,并在目標平臺上對軟件進行編制和調試。這一點對于Embedded GUI 移植和開發而言,意義非同尋常。這完全歸功于Microwindows 的X Screen Driver ,而非Linux 的Framebuffer 。  
我們在桌面計算機上的Linux 8. 0 仿真環境下運行Microwindows ,并通過一個簡單實例演示仿真環境下的Microwindows 應用編程。顯然,我們應采用Nano-X API。  

仿真環境下Microwindows 主要的安裝步驟:  

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

ARCH = LINUX-NATIVE;   
/ / 高速系統為主機LINUX 建立應用程序  
…  
HAVE_FREETYPE_SUPPORT = Y;   
/ / 設置對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環境下的運行效果如圖2 所示。  


  
結束語  

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

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲网站黄色 | 国产精品原创巨作无遮挡 | 免费在线观看一区 | 青青青激情视频在线最新 | 国产精品久久久久9999小说 | 亚洲免费视频在线 | 靠逼久久 | 狠狠操夜夜操 | 四虎免费大片aⅴ入口 | 国产精品亚洲第五区在线 | 四虎永久精品视频在线 | 91久久夜色精品国产九色 | 国产在线播放不卡 | 中文字幕精品一区二区日本 | 天天搞夜夜 | 91成人午夜精品福利院在线观看 | 亚洲免费一 | 欧美国产成人免费观看永久视频 | 91网站免费观看 | 国亚洲欧美日韩精品 | 国产精品亚洲综合 | 久久99精品久久久久子伦小说 | 看黄网址在线观看 | 三级视频网站 | 2021最新四虎永久免费 | 久久精品视频热 | 国产人成午夜免费噼啪视频 | 91精品国产自产在线观看高清 | 日本久久久久久中文字幕 | 亚洲图片自拍偷拍 | www.男人天堂| 天天摸日日摸 | 粉逼视频 | 一区二区日韩 | 欧美久草视频 | 91区国产福利在线观看午夜 | 日本男人天堂 | 午夜丁香婷婷 | 色综合综合色综合色综合 | 一级毛片视屏 | 中文国产欧美在线观看 |