當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于Microwindows的嵌入式GUI設(shè)計(jì)

引言
  嵌入式圖形用戶界面與存儲(chǔ)安全、嵌入式j(luò)ava 虛擬機(jī)并稱為嵌入式系統(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)格要求的專用計(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 這樣占用較大磁盤和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 鍵盤映射的l irc 鍵盤;
  (8) 從源代碼中為html 和pdf 文檔自動(dòng)生成支持基于do
 總而言之,最新版本的microwindows 在硬件驅(qū)動(dòng)加速上、在圖形引擎算法上以及代碼質(zhì)量上,都比原先的版本有較大的改進(jìn)。

[!--empirenews.page--]

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)程序。

  鍵盤驅(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ù)指針。


microwindows 的api

  microwindows 提供兩個(gè)應(yīng)用程序接口:一是win32 接口,這種api 不是很成熟;二是nano-x ,這種api 比較好,結(jié)構(gòu)上清晰,功能上也完全。

  在microwindows 上的api 接口函數(shù)的基本模型都是用來(lái)初始化屏幕、鍵盤和鼠標(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)都是不同的,但類似如下結(jié)構(gòu):

 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉