構(gòu)建用戶圖形界面開發(fā)環(huán)境_第1頁
構(gòu)建用戶圖形界面開發(fā)環(huán)境_第2頁
構(gòu)建用戶圖形界面開發(fā)環(huán)境_第3頁
構(gòu)建用戶圖形界面開發(fā)環(huán)境_第4頁
構(gòu)建用戶圖形界面開發(fā)環(huán)境_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

構(gòu)建用戶圖形界面開發(fā)環(huán)境第1頁,課件共45頁,創(chuàng)作于2023年2月本章提要1嵌入式系統(tǒng)中的GUI2典型的嵌入式GUI系統(tǒng)3MiniGUI4MiniGUI應(yīng)用程序開發(fā)第2頁,課件共45頁,創(chuàng)作于2023年2月9.1嵌入式系統(tǒng)中的GUI圖形用戶接口GUI(GraphicalUserInterfaces)是指計算機(jī)與其使用者之間的對話接口,是計算機(jī)系統(tǒng)的重要組成部分。第3頁,課件共45頁,創(chuàng)作于2023年2月9.1.1嵌入式系統(tǒng)需要獨特的GUI需要高性能的、特殊顯示要求的GUIWAP手機(jī)、可視電話、PDA等要求在尺寸小的顯示屏上顯示更多的信息。輕量級GUI的要求工業(yè)實時控制系統(tǒng)實時性要求比較高,不希望建立在累贅、龐大的GUI上。第4頁,課件共45頁,創(chuàng)作于2023年2月9.1.1嵌入式系統(tǒng)需要獨特的GUI嵌入式對GUI的基本要求包括:輕型、高效、高可靠性、可配制、有內(nèi)存意識等。GUI是類似于OS的基礎(chǔ)軟件。從二次開發(fā)的角度看,GUI應(yīng)能提供友好的開發(fā)環(huán)境,開發(fā)者可直觀開發(fā)。第5頁,課件共45頁,創(chuàng)作于2023年2月9.1.2嵌入式GUI解決方案(1)不將GUI作為一個軟件層從應(yīng)用程序中剝離出來,GUI的支持邏輯由應(yīng)用程序自己負(fù)責(zé)。針對特定的圖形設(shè)備開發(fā)圖形相關(guān)的功能函數(shù)。特點:顯示邏輯和功能邏輯不分、程序結(jié)構(gòu)差、可移植性能差,有大量重復(fù)代碼。應(yīng)用于:簡單、單色的LCD輸出屏的低端嵌入式產(chǎn)品。第6頁,課件共45頁,創(chuàng)作于2023年2月9.1.2嵌入式GUI解決方案(2)購買針對特定嵌入式操作系統(tǒng)的圖形中間件軟件包。特點:GUI和OS配合良好,可以直接使用。價錢昂貴。應(yīng)用:uC/OS-II的uC/GUI包、Nucleus的GRAFLX包、VxWorks的WinML包。第7頁,課件共45頁,創(chuàng)作于2023年2月9.1.2嵌入式GUI解決方案(3)采用獨立軟件開發(fā)商提供比較成熟的GUI產(chǎn)品。特點:采用雙授權(quán)模式。應(yīng)用:MiniGUI應(yīng)用于中低端產(chǎn)品、跨OS,小巧高效。占用Flash300-500K。Qt/embeded應(yīng)用于高端產(chǎn)品,只支持Linux。占用16MBFlash。第8頁,課件共45頁,創(chuàng)作于2023年2月9.1.2嵌入式GUI解決方案(4)采用開放源代碼的嵌入式GUI。特點:價錢便宜、功能強(qiáng)大。存在軟件缺陷和商業(yè)支持。應(yīng)用:MicroWindows、OpenGUI等。

第9頁,課件共45頁,創(chuàng)作于2023年2月9.1.3GUI體系結(jié)構(gòu)應(yīng)用程序GUIOS抽象層嵌入式操作系統(tǒng)驅(qū)動程序設(shè)備抽象層MCU存儲設(shè)備輸入設(shè)備輸出設(shè)備GUI在嵌入式體系中的層次第10頁,課件共45頁,創(chuàng)作于2023年2月9.1.3GUI體系結(jié)構(gòu)GU

I

內(nèi)部體系結(jié)構(gòu)API編程接口嵌入式GUI核心GAL層IAL層圖形顯示設(shè)備輸入設(shè)備第11頁,課件共45頁,創(chuàng)作于2023年2月9.1.3GUI體系結(jié)構(gòu)API編程接口嵌入式GUI核心GAL層IAL層圖形顯示設(shè)備輸入設(shè)備圖形操作功能;消息機(jī)制;字體、窗體、桌面管理等核心圖形操作功能GraphicAbstractLayerInputAbstractLayer各種GUI對象第12頁,課件共45頁,創(chuàng)作于2023年2月9.1.4GUI主要技術(shù)消息機(jī)制和事件驅(qū)動

消息過濾ISR1硬件設(shè)備1ISRn硬件設(shè)備n消息過濾應(yīng)用程序A消息隊列應(yīng)用程序B消息隊列系統(tǒng)消息應(yīng)用程序B系統(tǒng)消息應(yīng)用程序A應(yīng)用程序B消息處理窗口應(yīng)用程序A消息處理窗口第13頁,課件共45頁,創(chuàng)作于2023年2月9.1.4GUI主要技術(shù)屏幕管理技術(shù)

GUI由單窗口向多窗口發(fā)展。對于屏幕中的多個窗口的管理稱為“屏幕管理技術(shù)”。屏幕管理要解決:窗口之間的位置關(guān)系;窗口單元之間的顯示順序;當(dāng)窗口位置和顯示順序發(fā)生變化時候窗口單元之間的變化關(guān)系等。另外,除了窗口單元,屏幕還要管理大量資源:字庫、圖標(biāo)ICON,位圖bitmap、輸入法等。

每個可見的,具有獨立功能的矩形區(qū)域稱為一個“窗口單元”。第14頁,課件共45頁,創(chuàng)作于2023年2月9.1.4GUI主要技術(shù)屏幕管理技術(shù)

窗口單元2(150,20)窗口單元3(100,85)窗口單元n(40,168)(0,0)窗口單元1(319,239)窗口單元位置關(guān)系圖窗口單元2窗口單元3Z序窗口單元n窗口單元Z序關(guān)系圖第15頁,課件共45頁,創(chuàng)作于2023年2月顏色平滑的過渡算法對兩種位圖的每個顏色值按比例進(jìn)行混合9.1.4GUI主要技術(shù)Alpha混合技術(shù)

漸變效果

第16頁,課件共45頁,創(chuàng)作于2023年2月9.2典型的嵌入式GUI系統(tǒng)1、MicroWindowsMicroWindows是一個較早出現(xiàn)的開放源碼的嵌入式GUI軟件。目前由Century軟件公司維護(hù)。類似Windows的的API類似XWindow的客戶/服務(wù)器結(jié)構(gòu)提供三層結(jié)構(gòu):驅(qū)動-->窗口管理-->API接口更新速度較慢、圖形引擎效率較低。第17頁,課件共45頁,創(chuàng)作于2023年2月9.2典型的嵌入式GUI系統(tǒng)1、MicroWindows它的主要特色在于提供了比較完整的圖形功能,支持多種外部設(shè)備輸入,包括液晶顯示器、鼠標(biāo)和鍵盤等。MicroWindows能通過調(diào)色板技術(shù)將RGB格式的顏色空間轉(zhuǎn)換成目標(biāo)機(jī)器上最相近的顏色,然后顯示出來第18頁,課件共45頁,創(chuàng)作于2023年2月9.2典型的嵌入式GUI系統(tǒng)2、MiniGUIMiniGUI是一個面向?qū)崟r嵌入式系統(tǒng)或者實時系統(tǒng)的輕量級圖形用戶界面支持系統(tǒng),主要運行在Linux平臺上。早期由魏永明先生和眾多志愿者開發(fā),是我國為數(shù)不多的在國際比較知名的自由軟件之一,現(xiàn)在由北京飛漫軟技術(shù)有限公司()進(jìn)行維護(hù)和商業(yè)運作。第19頁,課件共45頁,創(chuàng)作于2023年2月9.2典型的嵌入式GUI系統(tǒng)2、MiniGUI提供了完備的窗口機(jī)制,提供了多個線程中的多窗口機(jī)制;支持多種字體和字符集合;支持GIF、BMP、JPEG、PCX、TGA等圖象文件。支持Windows的資源文件。小巧,包括全部功能的支持庫大小為300K左右;可定制配置并編譯高穩(wěn)定性和高性能。第20頁,課件共45頁,創(chuàng)作于2023年2月9.2典型的嵌入式GUI系統(tǒng)3、Qt/embededQt/Embedded是一個專門為嵌入式系統(tǒng)設(shè)計圖形用戶界面的工具包,Qt/Embedded兼容Qt的軟件包,便于移植。采用C++編程實現(xiàn)Qt是挪威Trolltech軟件(被諾基亞收購)公司的產(chǎn)品,它為各種系統(tǒng)提供圖形用戶界面的工具包,Linux桌面系統(tǒng)的KDE就是基于Qt庫開發(fā)的。第21頁,課件共45頁,創(chuàng)作于2023年2月9.2典型的嵌入式GUI系統(tǒng)3、Qt/embeded功能強(qiáng)大、控件豐富。結(jié)構(gòu)復(fù)雜,資源消耗較大,效率滴,適合于高端配置的硬件環(huán)境。第22頁,課件共45頁,創(chuàng)作于2023年2月MiniGUI和Qt界面比較第23頁,課件共45頁,創(chuàng)作于2023年2月9.2典型的嵌入式GUI系統(tǒng)第24頁,課件共45頁,創(chuàng)作于2023年2月MiniGUI是一種面向嵌入式系統(tǒng)和實時系統(tǒng)的圖形用戶界面支持系統(tǒng)。它主要運行于Linux控制臺,實際可以運行在任何一種具有線程支持的POSIX兼容系統(tǒng)上。MiniGUI同時也是國內(nèi)最早出現(xiàn)的幾個自由軟件項目之一。與Microwindows相比,MiniGUI和MicroWindows均為自由軟件,只是前者遵循LGPL條款,后者遵循MPL條款。這兩個系統(tǒng)的技術(shù)路線也有所不同。MiniGUI的策略是首先建立在比較成熟的圖形引擎之上,比如SVGALib和LibGGI,開發(fā)的重點在于窗口系統(tǒng)如圖形接口;MicroWindows目前的開發(fā)重點則在底層的圖形引擎,窗口系統(tǒng)和圖形接口方面的功能還比較欠缺。舉個例子來說,MiniGUI有一套用來支持多字符集和多編碼的函數(shù)接口,可以支持各種常見的字符集,包括GB、Big5、Unicode等,而MicroWindows在多字符集的支持上尚沒有統(tǒng)一接口。第25頁,課件共45頁,創(chuàng)作于2023年2月9.3MiniGUI

MiniGUI是一個基于SVGALib、Framebuffer和LinuxThread庫的多窗口圖形用戶界面支持系統(tǒng),可以應(yīng)用在電視頂置盒、實時控制系統(tǒng)、掌上型電腦等諸多場合,可定制、小巧,開放源代碼。

第26頁,課件共45頁,創(chuàng)作于2023年2月多線程和多窗口,使用消息驅(qū)動作為應(yīng)用程序的構(gòu)架MiniGUI中的窗口分為四類:主窗口、對話框、控件和主窗口中的子窗口。9.3.1MiniGUI主要特點第27頁,課件共45頁,創(chuàng)作于2023年2月MiniGUI還支持一些常見的GUI元素彈出式菜單、插入符、定時器、光標(biāo)、快捷鍵等。9.3.1MiniGUI主要特點第28頁,課件共45頁,創(chuàng)作于2023年2月多字體和多字符集支持

9.3.1MiniGUI主要特點第29頁,課件共45頁,創(chuàng)作于2023年2月MiniGUI采用分層結(jié)構(gòu),引入的圖形抽象層和輸入抽象層,大大提高了MiniGUI的可移植性API編程接口CoreGAL層IAL層圖形顯示設(shè)備輸入設(shè)備系統(tǒng)硬件驅(qū)動9.3.1MiniGUI主要特點第30頁,課件共45頁,創(chuàng)作于2023年2月MiniGUI需要多線程支持MiniGUI的許多模塊都以單獨的線程運行。利用線程來支持多窗口MiniGUI利用線程之間的同步操作實現(xiàn)了客戶線程和服務(wù)器線程之間的微客戶/服務(wù)器機(jī)制

9.3.1MiniGUI主要特點第31頁,課件共45頁,創(chuàng)作于2023年2月如何獲取MiniGUI目前,MiniGUI可免費下載的穩(wěn)定版本是1.3.3。可以從北京飛漫軟件技術(shù)有限公司的網(wǎng)站下載MiniGUI源代碼、開發(fā)文檔及示例程序。免費下載的MiniGUI只能用于開發(fā)GPL或其他公開源碼的應(yīng)用軟件,如果您要利用MiniGUI開發(fā)專有或商業(yè)軟件,則必須從北京飛漫軟件技術(shù)有限公司購買商業(yè)授權(quán)。第32頁,課件共45頁,創(chuàng)作于2023年2月模式1MiniGUI-thread可以在不同的線程中建立多個窗口,但所有的窗口都在一個進(jìn)程空間特點:占用資源少,控制簡單對系統(tǒng)可靠性有影響9.3.2MiniGUI的三種模式第33頁,課件共45頁,創(chuàng)作于2023年2月

模式2MiniGUI-lite每個程序都是單獨的進(jìn)程,每個進(jìn)程可以建立多個窗口,進(jìn)程之間、窗口之間互不影響。

特點:占用資源多,較好解決了進(jìn)程間窗口管理9.3.2MiniGUI的三種模式第34頁,課件共45頁,創(chuàng)作于2023年2月9.3.2MiniGUI的三種模式模式3MiniGUI-StandaloneMiniGUI以獨立進(jìn)程方式運行,當(dāng)其它進(jìn)程有需要時候,每次只能以最大化的方式顯示一個窗體。

特點:幾乎可以運行在所有操作系統(tǒng)上,應(yīng)用最廣的模式。第35頁,課件共45頁,創(chuàng)作于2023年2月9.3.3MiniGUI配置和交叉編譯Step1.宿主機(jī)上配置Framebuffer

需要激活VESAFrameBuffer驅(qū)動程序修改/boot/grub/menu.lst文件,TitleRedHatLinux(2.4.x,framebuffer)Root(hd0,0)Kernel/boot/vmlinux-2.4.xroroot=/dev/hda1vga=0x0317initrd/boot/initrd-2.4.x.imgFramebuffer是linux內(nèi)核的一種驅(qū)動程序接口,這種接口將顯示設(shè)備抽象為幀緩沖區(qū)。Framebuffer通過緩沖區(qū)提供了使用顯示設(shè)備的一般接口第36頁,課件共45頁,創(chuàng)作于2023年2月9.3.3MiniGUI配置和交叉編譯Step2.下載MiniGUI源代碼

從網(wǎng)上免費得到MiniGUI的資源文件壓縮包MiniGUI函數(shù)庫源代碼;libminigui-1.6.x.tar.gzMiniGUI所使用的資源,包括基本字體、圖標(biāo)、位圖、輸入法等;minigui-res-1.6.tar.gz

MiniGUI的綜合演示程序。mg-samples-1.6.x.tar.gz第37頁,課件共45頁,創(chuàng)作于2023年2月9.3.3MiniGUI配置和交叉編譯Step3.在PC機(jī)上編譯并安裝libminigui[root@vm-dev/]#tarjxvflibminigui-1.6.x.tar.gz[root@vm-dev/]#cdlibminigui-1.6.x[root@vm-devlibminigui-1.6.x]#./configure[root@vm-devlibminigui-1.6.x]#make[root@vm-devlibminigui-1.6.x]#su–cmakeinstall

第38頁,課件共45頁,創(chuàng)作于2023年2月9.3.3MiniGUI配置和交叉編譯Step4.把libminigui加入庫搜索路徑

默認(rèn)情況下MiniGUI的函數(shù)庫被安裝在/usr/local/lib目錄中,所以應(yīng)該確保此目錄已經(jīng)在/etc/ld.so.conf.d中[root@vm-dev/]#cd/etc/ld.so.conf.d[root@vm-devld.so.conf.d]#viminigui.conf寫上/usr/local/lib

運行l(wèi)dconfig命令刷新系統(tǒng)共享資源庫緩存

[root@vm-devld.so.conf.d]#su–c/sbin/ldconfig

第39頁,課件共45頁,創(chuàng)作于2023年2月9.3.3MiniGUI配置和交叉編譯Step5.在pc機(jī)上安裝MiniGUI的資源[root@vm-dev/]#tarjxvfminigui-res-1.6.tar.gz[root@vm-dev/]#cdminigui-res-1.6[root@vm-devminigui-res-1.6]#su–cmakeinstall第40頁,課件共45頁,創(chuàng)作于2023年2月9.3.3MiniGUI配置和交叉編譯Step6.在pc機(jī)上編譯應(yīng)用程序的例子[root@vm-dev/]#tarjxvfmg-samples-1.6.x.tar.gz[root@vm-dev/]#cdmg-samples-1.6.x[root@vm-devmg-samples-1.6.x]#./configure[root@vm-devmg-s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論