基于OpenGL的VxWorks圖形界面開發(fā)_第1頁
基于OpenGL的VxWorks圖形界面開發(fā)_第2頁
基于OpenGL的VxWorks圖形界面開發(fā)_第3頁
基于OpenGL的VxWorks圖形界面開發(fā)_第4頁
基于OpenGL的VxWorks圖形界面開發(fā)_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、代號分類號學號密級UDC編號 企業(yè)指導教師姓名職稱學校指導教師姓名職稱工程領域作者姓名二九年三月提交論文日期Based on OpenGLResearch On Graphical User Interface of VxWorks 基于OpenGL的VxWorks圖形用戶界面開發(fā)題(中、英文)目西安電子科技大學學位論文創(chuàng)新性聲明秉承學校嚴謹?shù)膶W風和優(yōu)良的科學道德,本人聲明所呈交的論文是我個人在導師指導下進行的研究工作及取得的研究成果。盡我所知,除了文中特別加以標注和致謝中所羅列的內容以外,論文中不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果;也不包含為獲得西安電子科技大學或其它教育機構的學位或證書而

2、使用過的材料。與我一同工作的同志對本研究所做的任何貢獻均已在論文中做了明確的說明并表示了謝意。申請學位論文與資料若有不實之處,本人承擔一切的法律責任。本人簽名: 日期 西安電子科技大學關于論文使用授權的說明本人完全了解西安電子科技大學有關保留和使用學位論文的規(guī)定,即:研究生在校攻讀學位期間論文工作的知識產(chǎn)權單位屬西安電子科技大學。學校有權保留送交論文的復印件,允許查閱和借閱論文;學校可以公布論文的全部或部分內容,可以允許采用影印、縮印或其它復制手段保存論文。同時本人保證,畢業(yè)后結合學位論文研究課題再撰寫的文章一律署名單位為西安電子科技大學。(保密的論文在解密后遵守此規(guī)定)本學位論文屬于保密,在

3、 年解密后適用本授權書。本人簽名: 日期 導師簽名: 日期 摘要圖形用戶界面(GUI)是人機交互技術的重要內容,它使用圖形圖像信息、直觀的表達方式與用戶交互,使軟件系統(tǒng)的人機界面簡潔、美觀、方便好用,更加人性化。目前GUI已經(jīng)大量應用在嵌入式領域,但是大多數(shù)嵌入式GUI系統(tǒng)提供給用戶的顯示平面從邏輯設計上講是二維的,最大的缺點在于反映信息量小,在對真實場景進行模擬顯示的時候,無法提供真實的場景數(shù)據(jù)。隨著嵌入式系統(tǒng)硬件功能的不斷提高,如何開發(fā)一款支持3D建模的嵌入式GUI已成為一個迫切的話題。本課題來源于實習工作中的“某星載儀表控制計算機”項目,該計算機采用VxWorks作為其操作系統(tǒng),要求設計

4、出人性化的人機界面,可以實時顯示系統(tǒng)的相關參數(shù)數(shù)據(jù)、圖形信息等,并提供對3D模塊的支持,能夠進行3D圖形的繪制和顯示。本文經(jīng)過詳細分析和設計,實現(xiàn)了將OpenGL/Mesa3D圖形庫移植到VxWorks系統(tǒng),并結合VxWorks內核及其多媒體庫WindML的相關接口,開發(fā)了以消息驅動為核心、具有基本窗口管理功能和仿Windows控件效果、支持中文界面和3D畫面繪制顯示的GUI系統(tǒng)。從工程應用和測試的效果來看,該GUI系統(tǒng)基本實現(xiàn)了預期功能。關鍵詞:嵌入式系統(tǒng) VxWorks 圖形用戶界面 OpenGL/Mesa WindMLAbstractAs an important branch of t

5、he HMI(Human-Machine Interface), GUI(Graphical User Interface)provides rich graphics modes for exchanging information with users in graphical and intuitionistic ways. GUI makes software convenient and humanistic, and has been applied in embedded fields prevalently. Most of traditional embedded GUI s

6、ystems only provide 2D drawing control. It means that the show planes which are available to users are two-dimensional in logic. In the simulation of showing the real scene, the major drawback of this system is that information which is reflected is so little that can not provide true data. With the

7、 improvement of embedded systemshardwares, it has become an urgent topic how to develop an embedded GUI which supports 3D modeling. This issus originates from the project named Space Instrument Control Computer and this computer uses VxWorks as its operating system, which request the UI is humanisti

8、c and could demonstrate the systems related parameter data, graphic and other information in real-time, and it also has the 3D graphical function, which can be used to display and render the 3d graphics. With deeply analysis and design, this thesis finally make the OpenGL/Mesa3D library portable for

9、 the VxWorks system, and by using the WindML library containted inVxWorks System, I developed a Message-Driven oriented GUI System, whose style is windows liked and Chinese character supported. Moreover it can be used as a 3D display and rendering system. Regarding the test effect of the application

10、, this GUI system has basically realized the anticipated function.Keyword: Embedded System VxWorks GUI OpenGL/Mesa WindML PAGE 8基于OpenGL的VxWorks圖形用戶界面開發(fā)PAGE I目錄 目錄 TOC o 1-3 h z u HYPERLINK l _Toc224484675 第一章 緒論 PAGEREF _Toc224484675 h 1 HYPERLINK l _Toc224484676 1.1 背景知識介紹 PAGEREF _Toc224484676 h

11、1 HYPERLINK l _Toc224484677 1.1.1 嵌入式實時系統(tǒng) PAGEREF _Toc224484677 h 1 HYPERLINK l _Toc224484678 1.1.2 圖形用戶界面概述 PAGEREF _Toc224484678 h 2 HYPERLINK l _Toc224484679 1.2 國內外研究現(xiàn)狀 PAGEREF _Toc224484679 h 4 HYPERLINK l _Toc224484680 1.2.1 嵌入式GUI的現(xiàn)狀 PAGEREF _Toc224484680 h 4 HYPERLINK l _Toc224484681 1.2.2 基

12、于VxWorks的圖形解決方案 PAGEREF _Toc224484681 h 5 HYPERLINK l _Toc224484682 1.2.3 嵌入式GUI的發(fā)展趨勢 PAGEREF _Toc224484682 h 7 HYPERLINK l _Toc224484683 1.3 課題來源和意義 PAGEREF _Toc224484683 h 7 HYPERLINK l _Toc224484684 1.4 論文結構 PAGEREF _Toc224484684 h 8 HYPERLINK l _Toc224484685 第二章 VxWorks操作系統(tǒng)及媒體庫WindML PAGEREF _To

13、c224484685 h 11 HYPERLINK l _Toc224484686 2.1 VxWorks深入研究 PAGEREF _Toc224484686 h 11 HYPERLINK l _Toc224484687 2.1.1 VxWorks概述10 PAGEREF _Toc224484687 h 11 HYPERLINK l _Toc224484688 2.1.2 VxWorks實時微內核1112 PAGEREF _Toc224484688 h 12 HYPERLINK l _Toc224484689 2.2 VxWorks集成開發(fā)環(huán)境Tornado PAGEREF _Toc22448

14、4689 h 15 HYPERLINK l _Toc224484690 2.2.1 Tornado介紹1314 PAGEREF _Toc224484690 h 15 HYPERLINK l _Toc224484691 2.2.2 交叉編譯環(huán)境 PAGEREF _Toc224484691 h 15 HYPERLINK l _Toc224484692 2.2.3 Tornado的組成 PAGEREF _Toc224484692 h 16 HYPERLINK l _Toc224484693 2.3 WindML媒體庫 PAGEREF _Toc224484693 h 18 HYPERLINK l _T

15、oc224484694 2.3.1 WindML概述16 PAGEREF _Toc224484694 h 18 HYPERLINK l _Toc224484695 2.3.2 WindML事件服務機制 PAGEREF _Toc224484695 h 19 HYPERLINK l _Toc224484696 2.3.3 WindML2D圖形庫分析 PAGEREF _Toc224484696 h 19 HYPERLINK l _Toc224484697 2.3.4 WindML程序開發(fā)流程 PAGEREF _Toc224484697 h 21 HYPERLINK l _Toc224484698 2

16、.4 本章小結 PAGEREF _Toc224484698 h 22 HYPERLINK l _Toc224484699 第三章 OpenGL/Mesa及其在VxWorks下的移植 PAGEREF _Toc224484699 h 23 HYPERLINK l _Toc224484700 3.1 OpenGL/Mesa PAGEREF _Toc224484700 h 23 HYPERLINK l _Toc224484701 3.1.1 OpenGL開發(fā)庫 PAGEREF _Toc224484701 h 23 HYPERLINK l _Toc224484702 3.1.2 OpenGL開發(fā)庫結構

17、PAGEREF _Toc224484702 h 24 HYPERLINK l _Toc224484703 3.1.3 Mesa庫 PAGEREF _Toc224484703 h 28 HYPERLINK l _Toc224484704 3.2 OpenGL/Mesa庫的移植 PAGEREF _Toc224484704 h 29 HYPERLINK l _Toc224484705 3.2.1 工作概述 PAGEREF _Toc224484705 h 29 HYPERLINK l _Toc224484706 3.2.2 重要數(shù)據(jù)結構和函數(shù)的引入 PAGEREF _Toc224484706 h 29

18、 HYPERLINK l _Toc224484707 3.2.3 使用改進后的庫 PAGEREF _Toc224484707 h 31 HYPERLINK l _Toc224484708 3.2.4 編譯Mesa庫 PAGEREF _Toc224484708 h 32 HYPERLINK l _Toc224484709 3.3 搭建虛擬開發(fā)環(huán)境 PAGEREF _Toc224484709 h 33 HYPERLINK l _Toc224484710 3.4 本章小結 PAGEREF _Toc224484710 h 35 HYPERLINK l _Toc224484711 第四章 VxWorks

19、系統(tǒng)GUI關鍵技術及實現(xiàn) PAGEREF _Toc224484711 h 37 HYPERLINK l _Toc224484712 4.1 消息驅動機制 PAGEREF _Toc224484712 h 37 HYPERLINK l _Toc224484713 4.1.1 消息驅動機制實現(xiàn)原理 PAGEREF _Toc224484713 h 37 HYPERLINK l _Toc224484714 4.1.2 消息檢測任務 PAGEREF _Toc224484714 h 38 HYPERLINK l _Toc224484715 4.1.3 事件分發(fā)任務 PAGEREF _Toc224484715

20、 h 38 HYPERLINK l _Toc224484716 4.2 中文顯示方案 PAGEREF _Toc224484716 h 39 HYPERLINK l _Toc224484717 4.2.1 中文顯示的基本原理 PAGEREF _Toc224484717 h 39 HYPERLINK l _Toc224484718 4.2.2 字庫文件格式 PAGEREF _Toc224484718 h 40 HYPERLINK l _Toc224484719 4.2.3 具體的實現(xiàn)方案 PAGEREF _Toc224484719 h 42 HYPERLINK l _Toc224484720 4.

21、3 窗體管理 PAGEREF _Toc224484720 h 44 HYPERLINK l _Toc224484721 4.3.1 主窗口 PAGEREF _Toc224484721 h 44 HYPERLINK l _Toc224484722 4.3.2 對話框 PAGEREF _Toc224484722 h 45 HYPERLINK l _Toc224484723 4.3.3 控件 PAGEREF _Toc224484723 h 46 HYPERLINK l _Toc224484724 4.3.4 菜單 PAGEREF _Toc224484724 h 46 HYPERLINK l _Toc

22、224484725 4.4 常用控件設計 PAGEREF _Toc224484725 h 47 HYPERLINK l _Toc224484726 4.5 本章小結 PAGEREF _Toc224484726 h 50 HYPERLINK l _Toc224484727 第五章 工程應用和效果測試 PAGEREF _Toc224484727 h 51 HYPERLINK l _Toc224484728 5.1 工程應用 PAGEREF _Toc224484728 h 51 HYPERLINK l _Toc224484729 5.2 測試效果 PAGEREF _Toc224484729 h 51

23、 HYPERLINK l _Toc224484730 5.2.1 普通圖形界面 PAGEREF _Toc224484730 h 51 HYPERLINK l _Toc224484731 5.2.2 3D圖形顯示 PAGEREF _Toc224484731 h 52 HYPERLINK l _Toc224484732 5.3 本章小結 PAGEREF _Toc224484732 h 53 HYPERLINK l _Toc224484733 結束語 PAGEREF _Toc224484733 h 55 HYPERLINK l _Toc224484734 致謝 PAGEREF _Toc2244847

24、34 h 57 HYPERLINK l _Toc224484735 參考文獻 PAGEREF _Toc224484735 h 59PAGE 9第一章 緒論 第一章 緒論1.1 背景知識介紹1.1.1 嵌入式實時系統(tǒng)在計算機技術和信息技術高速發(fā)展的今天,很多計算機已經(jīng)脫離了大型機和PC的概念,廣泛應用的嵌入式計算機便是其中之一。嵌入式計算機或者叫嵌入式系統(tǒng),源于20世紀60年代,其定義為1:以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗等嚴格要求的,用來完成一種或多種特定功能的專用計算機系統(tǒng)。其具有軟件代碼小,高度自動化,響應速度快,是軟硬件的緊密

25、結合體等特點。當前嵌入式系統(tǒng)呈現(xiàn)出巨大的市場需求,小到照相機、電冰箱、移動電話,大到艦船、汽車、衛(wèi)星和火箭,涵蓋了工業(yè)控制、武器系統(tǒng)、航空航天、消費電子等領域。工業(yè)控制、武器系統(tǒng)、航空航天等領域的多數(shù)嵌入式系統(tǒng)有一個共同的特性:對系統(tǒng)的響應時間有嚴格要求,這些系統(tǒng)也被稱為實時系統(tǒng)。所謂實時,也就是“立即”“及時”的意思。在實時控制系統(tǒng)中,計算機通過特定的外圍設備與被控對象發(fā)生聯(lián)系,并對外來事件在限定的時間內做出反應。所以,其結果的正確性不僅與計算或控制的邏輯正確性有關,還與其時間特性有關。嵌入式實時操作系統(tǒng)(Embedded Real Time,RTOS)是實時系統(tǒng)的核心軟件,它嵌入在目標代碼

26、中,系統(tǒng)復位后首先執(zhí)行,它負責在硬件基礎之上,為應用軟件建立一個功能更為強大的運行環(huán)境,用戶的其他應用程序都建立在RTOS之上,從這個意義上而言,可以認為RTOS是一個虛擬機,它比底層硬件更容易編程。RTOS最關鍵的部分是實時多任務內核,它的基本功能包括任務管理、定時器管理、存儲器管理、資源管理、事件管理、系統(tǒng)管理、消息管理、隊列管理、信號量管理等,這些管理功能是通過內核服務函數(shù)形式交給用戶調用的,也就是API。RTOS根據(jù)各個任務的優(yōu)先級,合理地在不同任務之間分配CPU時間,從這個意義上而言,操作系統(tǒng)的作用是資源管理器。RTOS的引入,解決了嵌入式軟件開發(fā)標準化的難題。隨著嵌入式系統(tǒng)中軟件比

27、重不斷上升、應用程序越來越大,對開發(fā)人員、應用程序接口、程序檔案的組織管理成為一個大的課題,引入RTOS相當于引入了一種新的管理模式。基于RTOS開發(fā)出的程序,具有較高的可移植性,實現(xiàn)90以上的設備獨立,一些成熟的通用程序可以作為專家?guī)旌瘮?shù)產(chǎn)品推向社會。目前國內外主要的RTOS有:美國風河公司的VxWorks,微軟的WinCE,3COM公司的Palm OS和嵌入式Linux。這些嵌入式操作系統(tǒng)各有各的特點。1) VxWorksVxWorks是美國Wind River System公司(WRS)推出的一個實時操作系統(tǒng)。VxWorks是專門為嵌入式而定制的,實時性非常好,其系統(tǒng)本身的開銷很小,進程

28、調度、進程間通信、中斷處理等系統(tǒng)公用程序精練而有效。VxWorks的內核及一些系統(tǒng)模塊可以根據(jù)需要進行定制,內核最小僅8KB,且不失其實時、多任務的系統(tǒng)特征。隨著近年來VxWorks操作系統(tǒng)開發(fā)環(huán)境的完善,提供了更加友善的開發(fā)界面和更加強大的模擬環(huán)境,并且改善了圖形產(chǎn)品開發(fā)中存在的不足,使VxWorks成為嵌入式系統(tǒng)中比較成熟和完善的產(chǎn)品。2)WindowsCEMicrosoft公司的WinCE是從Windows 95發(fā)展而來,提供給開發(fā)人員一個熟悉的開發(fā)環(huán)境,但是在內核結構的設計中并未考慮適應系統(tǒng)的高度可裁減性的要求,需要較大存儲空間,應用程序也比較龐大,且在實時性方面較VxWorks略遜一

29、籌。3)嵌入式Linux嵌入式Linux具有開放的源代碼的優(yōu)點,但是它的開放代碼有很多都沒有經(jīng)過一個嚴格的測試,直接使用開放代碼的BSP(Board Support Packet)會帶來不穩(wěn)定的問題。它和WinCE一樣都是從桌面操作系統(tǒng)演變而成,不像VxWorks是專門為嵌入式而定制的,程序執(zhí)行效率也沒有VxWorks的高。4)Palm OSPalm OS是由3COM公司開發(fā)的一種嵌入式操作系統(tǒng),一般只用于PDA。1.1.2 圖形用戶界面概述圖形用戶界面(Graphic User Interface),簡稱為GUI,是一個軟件系統(tǒng)的圖形化的前端,使用圖形的方式借助菜單、按鈕等標準界面元素和鼠標

30、操作,接收用戶的輸入或其它系統(tǒng)的輸入,產(chǎn)生圖形輸出,幫助用戶和計算機之間進行交互。GUI的廣泛流行是當今計算機技術的重大成就之一,其最重要的優(yōu)勢在于使用戶擺脫了在命令行提示符下與操作系統(tǒng)進行交互的方式,用戶可以僅僅通過鼠標點擊來快速的熟悉程序的操作,而且由于圖標、對話框的引入,使得操作更為直觀、形象,這些直接給人們的生活方式帶來了變革,為數(shù)字化普及做出了巨大的貢獻。GUI工程是一種結合計算機科學、美學、心理學、語言學、行為學,及各商業(yè)領域需求分析的人機系統(tǒng)工程,強調將人、機器、環(huán)境三者作為一個系統(tǒng)而進行的總體設計,它充分利用硬件資源,通過合理的屏幕布局及顏色搭配,可提供清晰、直觀、友好的人機界

31、面,是連接計算機和操作者的橋梁。隨著計算機軟、硬件技術的不斷發(fā)展,人機界面的設計已成為軟件設計的重點。在軟件的開發(fā)過程中,人機界面的工作量約占整個軟件開發(fā)工作量的40%60%,人機界面的優(yōu)劣直接關系到軟件的成功和生存。這種面向客戶的系統(tǒng)工程設計將更好的優(yōu)化產(chǎn)品的性能,使操作更人性化,減輕使用者的認知負擔,使其更適合用戶的操作需求,直接提升產(chǎn)品的市場競爭力。GUI是計算機與其使用者之間的對話接口,是計算機系統(tǒng)的重組成部分,它基于硬件和操作系統(tǒng)之上,為用戶提供豐富的圖形編程接口,使其能夠方便快速的編制界面友好的應用程序。雖然不同的GUI系統(tǒng)因為其使用場合或服務目的的不同,具體實現(xiàn)互有差異,但是總結

32、起來,一般在邏輯上可以分為三個基本的層次2:用戶模型、窗口模型和顯示模型。如圖1.1所示。桌面管理系統(tǒng)GUI用戶模型窗口模型顯示模型操作系統(tǒng)硬件平臺圖1.1 圖形用戶界面系統(tǒng)的層次結構在圖1.1的框架結構中,位于最底層的是計算機硬件平臺。和這些硬件密切相關的就是驅動程序,它完成諸如:初始化硬件設備,設定設備運行參數(shù);讀外部設備的數(shù)據(jù)和對設備中斷的響應等。在硬件平臺的上面是計算機的操作系統(tǒng)。大多數(shù)GUI都只能在一兩種操作系統(tǒng)上運行,只有少數(shù)產(chǎn)品例外。操作系統(tǒng)之上的是顯示模型,它決定了圖形在屏幕上的基本顯示方式,即用位映射圖形顯示各種圖形對象的方式。不同的圖形用戶界面系統(tǒng)所采用的顯示模型各不相同。

33、例如大多數(shù)在UNIX之上運行的圖形用戶界面系統(tǒng)都采用X窗口作顯示模型;MS-Windows則采用自己設計的圖形設備接口(GDI)作顯示模型。顯示模型之上的是窗口模型,它確定了窗口如何在屏幕上顯示和窗口的層次關系,例如菜單、對話框等。它通常包括兩部分:一是編程工具,如函數(shù)集;二是對如何移動、輸出和讀取屏幕顯示信息的說明。窗口模型之上的是用戶模型,它主要包含了顯示和交互特征,由此圖形用戶界面這一術語有時也特指用戶模型。另外,用戶模型也定義為圖形用戶界面的外觀與視覺。它主要包括兩部分:一是構造用戶界面的工具,如工具箱和框架集,包括對高層界面構件對象的數(shù)據(jù)結構的定義和說明;二是定義在屏幕上組織各種圖形

34、對象以及這些對象之間的行為規(guī)范和協(xié)議,即每個GUI用戶模型都應當說明它支持什么樣的窗口和什么樣的顯示方式,因為定義規(guī)范和建立工具集都必須針對具體的顯示模型和窗口模型。最上層的是桌面管理系統(tǒng),它是在圖形用戶界面基礎之上開發(fā)的應用程序,實現(xiàn)人機交互的圖形化管理。它通常包括以下幾個組成部分:圖形化的文件管理系統(tǒng)、供用戶使用的圖標庫、桌面管理機構、圖標庫管理機構等。1.2 國內外研究現(xiàn)狀1.2.1 嵌入式GUI的現(xiàn)狀隨著嵌入式技術的發(fā)展,嵌入式硬件平臺、操作系統(tǒng)、開發(fā)工具、以及應用開發(fā)組件等很多方面都取得了較大突破,嵌入式GUI系統(tǒng)也得到了發(fā)展,涌現(xiàn)出了一大批嵌入式GUI系統(tǒng)或者組件。目前終端系統(tǒng)己經(jīng)

35、開始廣泛采用32位處理器芯片,配置觸摸屏(或鼠標)、鍵盤等多種輸入設備和LCD等圖象顯示設備,這為GUI在嵌入式系統(tǒng)上應用提供了基礎硬件平臺。目前GUI的實現(xiàn)方法各有不同,分別有以下幾種方式3:1)某些大型廠商有能力自己開發(fā)滿足自身需要的GUI系統(tǒng)。如VxWorks集成的UGL,ZAL等;2)某些廠商沒有將GUI作為一個軟件層從應用程序中剝離,GUI的支持邏輯由應用程序自己負責。3)采用某些比較成熟的GUI系統(tǒng),比如MiniGUI、MicroWindows或者其他GUI系統(tǒng)。在上述手段中,第2種方法是一種臨時解決方案。利用這種手段編寫的程序,無法將顯示邏輯和數(shù)據(jù)處理邏輯劃分開來,從而導致程序結

36、構不好,不便于調試,并導致大量的代碼重復。一般認為GUI是一種類似于操作系統(tǒng)的基礎軟件,這種軟件系統(tǒng)應該遵循一定的標準,并且應該是開放源碼的自由軟件,從而可以使開發(fā)商集中精力開發(fā)自己的應用程序。下面是對一些成熟GUI方案的概述:1)緊縮的X Window系統(tǒng)4由麻省理工學院推出的X Window系統(tǒng)是類UNIX系統(tǒng)的標準GUI。XWindow系統(tǒng)采用標準的客戶/服務器體系結構,具有可擴展性、可移植性等優(yōu)點,但該系統(tǒng)的龐大、累贅和低效率也是大家所共知的。為了獲得應用程序的可移植性,許多廠家都試圖通過對X Window系統(tǒng)的緊縮開發(fā),使之能夠在嵌入式系統(tǒng)上運行。國外已經(jīng)開發(fā)出了大小約為800K的X

37、服務器,基本能夠滿足嵌入式系統(tǒng)的需求。缺點:該系統(tǒng)的源代碼尚不開放,從而很難進行本地化開發(fā)。2)MiniGUI5MiniGUI的主要特色有:提供了完備的多窗口機制。這包括:多個單獨線程中運行的多窗口、單個線程中主窗口的附屬、對話框和預定義的控間類(按鈕、單行和多行編輯框、列表、進度條、工具欄等)。消息傳遞機制。多字符集和多字體支持,目前支持ISO8859-l,GB2312,Big5等字符集并且支持各種光柵字體和TrueType,Typel等矢量字體。全拼、五筆等漢字輸入法支持。BMP,GIF,JPEG,PCX等常見圖像文件的支持。小巧。包括全部功能的庫文件大小為300K左右。可配置??筛鶕?jù)項目

38、需求進行定制配置和編譯。高穩(wěn)定性和高性能。MiniGUI己經(jīng)在Linux發(fā)行版安裝程序、CNC系統(tǒng)、藍點嵌入式系統(tǒng)等關鍵應用程序中得到了實際的應用??梢浦残院谩D壳?,MiniGUI可以在XWindows和Linux控制臺上運行。缺點:圖形功能不全,應用設計比較困難。1.2.2 基于VxWorks的圖形解決方案當前,VxWorks以其良好的可靠性和卓越的實時性被廣泛應用于軍事、航空、航天、通信等高精尖技術及實時性要求極高的領域中。隨著硬件技術的不斷發(fā)展,硬件資源不再是一個制約的問題,同時為了提高系統(tǒng)的易用性,要求我們能夠開發(fā)出良好的圖形界面。比較普遍使用的有以下幾種678:1)VxWorks上的

39、媒體庫組件WindMLWindML是由Wind River公司提供的媒體庫,其中包含的UGL組件提供了顯示模式設置、標準輸入輸出和點線面作圖等函數(shù),是VxWorks的GUI基礎。但用WindML開發(fā)圖形界面效率較低,且顯示效果較差,圖像中的動畫、三維、反走樣等問題難以解決,不適宜開發(fā)高性能界面。2)WindML與Zinc結合Zinc基于WindML,提供了類似于Windows風格的控件。將兩者結合,使用Zinc實現(xiàn)用戶界面,使用UGL庫函數(shù)圖畫實現(xiàn)圖形文字顯示。不幸的是Zinc本身存在很多BUG,并且搭建Zinc開發(fā)環(huán)境需要給WindML和Tornado打補丁,對網(wǎng)卡也有一定要求,所以該方案已

40、經(jīng)不再是VxWorks上圖形界面開發(fā)的最佳選擇。3)X Window與OSF/Motif結合X Window不依賴于特定硬件系統(tǒng)的圖形和文字顯示系統(tǒng)。X系統(tǒng)包含的Xlib庫提供了建立窗口、畫圖、處理用戶操作事件等基本功能,以Xlib庫為基礎又開發(fā)了Xt庫。Motif是基于Xlib庫和Xt庫建立的更高層次的工具包,提供了交互的圖形組件庫,其中包括建立各種窗口組件的便利函數(shù)。4)WindML與Tilcon結合Tilcon是目前最先進的實時操作系統(tǒng)圖形開發(fā)工具,同步支持最新版本的Tornado/VxWorks以及WindML多媒體庫。Tilcon采用了最先進的圖形技術,具有極高的可靠性和可維護性,還

41、支持OPC,XML,SOAP等標準工業(yè)協(xié)議,已成功應用在醫(yī)療儀器,軍用武器,工業(yè)流水線,航空/航天等領域。在資金充足的情況下,選擇WindMLTilcon方案是最為穩(wěn)定可靠的選擇。5)OpenGL圖形開發(fā)包在VxWorks系統(tǒng)下開發(fā)3D圖形顯示,多數(shù)的采用的辦法都是基于OpenGL的軟件開發(fā)包。各大顯卡廠商,在其專業(yè)級別的顯卡產(chǎn)品上附帶了OpenGL開發(fā)包,甚至出品了自己成套的OpenGL圖形顯示解決方案,如ALT的GT3D Embedded Graphics Solution,這也成為目前在VxWorks下開發(fā)2D/3D圖形界面的一個主要方法。隨著3D技術的應用在嵌入式領域不斷增多,Open

42、GL已經(jīng)出現(xiàn)了獨立的嵌入式技術標準OpenGL ES。針對硬件資源相對緊缺的嵌人式系統(tǒng),統(tǒng)一標準的操作系統(tǒng)平臺接口層EGL,僅保留OpenGL最常用的API,增加了新的特性:定點運算、字節(jié)匹配、調色板紋理。在OpenGL標準的基礎上,OpenGL ES針對嵌入式系統(tǒng)硬件特點作了如下修改:刪除了冗余的API函數(shù),保留一個精簡高效的子集;刪除了實現(xiàn)復雜和很少使用的函數(shù);舍去部分數(shù)據(jù)類型,加人少許數(shù)據(jù)類型;加人了定點運算(對OpenGL ES Comm支持浮點和定點運算,對OpenGL ES Comm-lite僅支持定點運算)。目前,OpenGL ES已經(jīng)推出了多個特征版本,OpenGL ES 1.

43、X 面向功能固定的硬件所設計并提供加速支持、圖形質量及性能標準。OpenGL ES 2.X 則提供包括遮蓋器技術在內的全可編程3D圖形算法。OpenGL ES-SC 專為有高安全性需求的特殊市場精心打造。6)其他開發(fā)方案作為一個應用面非常廣泛的嵌入式實時操作系統(tǒng),很多廠商意識到了VxWorks下圖形開發(fā)的廣闊市場,紛紛推出了各種圖形界面開發(fā)方案。國內的MiniGUI便是一款完善的輕量級圖形用戶界面支持系統(tǒng)。1.2.3 嵌入式GUI的發(fā)展趨勢目前,伴隨著各種手持、無線及嵌入式設備的迅猛發(fā)展,相應的軟硬件設計也發(fā)生了很大的變化。許多設備都使用了ARM,MIPS,摩托羅拉的32位微處理器及大屏幕的液

44、晶圖形顯示器。由于在過去10年中,桌面操作模式取得了巨大成功,于是許多開發(fā)者在嵌入式設計中開始使用類似于桌面的操作系統(tǒng)。只要是面向人機交互的嵌入式產(chǎn)品,就涉及到文字或者圖形的輸出問題,人們與信息終端交互要求以GUI系統(tǒng)為中心的交互式界面。手寫文字輸入、語音撥號上網(wǎng)、收發(fā)電子郵件以及彩色圖形、圖像己取得初步成效。由此可見,從應用領域的范圍來看,嵌入式GUI系統(tǒng)的發(fā)展空間將是無比寬廣的。隨著虛擬現(xiàn)實、科學計算、可視化、多媒體技術以及硬件技術的飛速發(fā)展,嵌入式GUI將有如下幾個發(fā)展方向9:1)更加高效、可靠、可定制和小巧靈活,并具有很好的跨硬件平臺、跨操作系統(tǒng)可移植性的嵌入式GUI系統(tǒng)將是將來的一個

45、重要方向。2)支持3D建模。在目前的嵌入式系統(tǒng)中,3D技術的應用并不常見,這與嵌入式系統(tǒng)的特點有很大的關系,然而,隨著硬件技術的發(fā)展與市場的需求,目前,一些成熟的3D技術已經(jīng)應用到了嵌入式環(huán)境中,比如OpenGL ES使用了大量的渲染技術以提供給用戶調用。因此支持3D建模必將成為未來嵌入式GUI發(fā)展的一個趨勢。3)智能化。精確交互技術是指能用一種技術來完全說明用戶交互目的的交互方式,鍵盤和鼠標器均需用戶精確輸入。而人們的動作或思想往往并不很精確,計算機應該理解人的要求,甚至于糾正人的錯誤,智能化的界面也是未來嵌入式GUI的一個重要方向。4)高寬帶。支持高的輸入帶寬,快速大批量地輸入信息以及對語

46、音、圖像、姿勢等的輸入和理解也是今后的發(fā)展方向。1.3 課題來源和意義本論文題目來源于實習工作中所進行的“某星載儀表控制計算機”的項目。該設備采用VxWorks作為其操作系統(tǒng),而本課題的目的在于選擇合適的開發(fā)方案,在VxWorks環(huán)境下設計與開發(fā)一套友好的圖形用戶界面,能夠滿足在顯示器上進行復雜和有實時性要求的圖形信息、參數(shù)信息以及狀態(tài)信息的顯示,該系統(tǒng)另一個重要的技術要求是能提供對3D模塊的支持,這就對研發(fā)人員提出了很大的挑戰(zhàn)。VxWorks提供了一個圖形開發(fā)庫WindML,同時也有很多軟件開發(fā)商開發(fā)了多種基于VxWorks的圖形界面軟件開發(fā)包,但由于這些方案中有的價格昂貴,有的不適合開發(fā)高

47、要求的圖形界面,還有的不易移植并且存在很多BUG。最終,我們選用OpenGL開發(fā)我們的圖形界面,主要原因分析如下:第一:獨立性和無關性。OpenGL被設計成獨立于硬件,獨立于窗口系統(tǒng)的,在運行各種操作系統(tǒng)的各種計算機上都可用,并能在網(wǎng)絡環(huán)境下以客戶/服務器模式工作,其目的是將用戶從具體的硬件中解放出來,完全不用理解這些系統(tǒng)的結構和指令系統(tǒng),只要按照規(guī)定的格式書寫應用程序就可以在任何支持該語言的硬件平臺上執(zhí)行,是專業(yè)圖形處理、科學計算等高端應用領域的標準圖形庫。第二:靈活性和通用性。由于OpenGL是3D圖形的底層圖形庫,沒有提供幾何實體圖元,不能直接用以描述場景。但是,通過一些轉換程序,可以很

48、方便地將AutoCAD、3DS等3D圖形設計軟件制作的DFX和3DS模型文件轉換成OpenGL的頂點數(shù)組。另外,各種流行的編程語言都可以調用OpenGL的庫函數(shù),如:C、C+、Fortran、Ada、 Java。第三:高效性。OpenGL被計算機工業(yè)界看作當前最先進的三維圖形API,它提供很強的繪制二維和三維圖形能力,包括基本圖元、造型、著色、光照、景深、陰影、混合、動畫、反走樣、紋理映射、隱面消除、圖像處理等繪制功能。另外,OpenGL利用顯示列表概念引入了PHIGS中的層次概念,不需要包括復雜的預定義對象,設計者只需調用OpenGL的幾個簡單幾何單元,即可建立所要求的模型,因而深得許多專業(yè)

49、人員的喜愛。另外OpenGL頂部還設有實用程序庫,支持繪制二次曲線和曲面、nurbs曲線和曲面以及其它高級圖元。1.4 論文結構本文詳細分析了國內外嵌入式GUI系統(tǒng)的發(fā)展現(xiàn)狀,特別VxWorks系統(tǒng)下支持3D建模的嵌入式GUI系統(tǒng)的特點。OpenGL作為新一代的三維圖形工業(yè)標準,以其與硬件無關性和獨立性使得它有很好的跨平臺能力。而Mesa3D圖形庫則是目前為止對OpenGL標準最完整的一個實現(xiàn),本論文的一個重要的工作就是將Mesa3D移植到VxWorks系統(tǒng),移植成功后,我們將結合UGL圖形庫為系統(tǒng)構建一個簡單的、具有最基本功能的用戶圖形界面。本論文的安排如下:第一章:緒論。對嵌入式系統(tǒng)及其圖

50、形用戶界面進行介紹。說明課題來源,國內外現(xiàn)狀和本論文主要章節(jié)安排。第二章:VxWorks操作系統(tǒng)及媒體庫WindML。分析了VxWorks系統(tǒng)及其實時微內核Wind的特性,介紹了VxWorks的集成開發(fā)環(huán)境Tornado的幾個重要組件,最后詳細說明風河公司提供的多媒體庫WindML,對其事件服務機制、主要API和利用它開發(fā)圖形等多媒體程序的詳細流程。第三章:OpenGL/Mesa及其在VxWorks下的移植。介紹了當今三維圖形工業(yè)標準OpenGL的開發(fā)庫結構和它的一個實現(xiàn)版本Mesa。然后實現(xiàn)了本課題的兩個主要任務:移植OpenGL/Mesa到VxWorks系統(tǒng)中,利用虛擬機搭建圖形開發(fā)環(huán)境。

51、第四章:VxWorks系統(tǒng)GUI關鍵技術詳細介紹。介紹了本課題的另一個主要的任務設計并實現(xiàn)一個以消息驅動機制為核心的、具有中文顯示功能、能創(chuàng)建和顯示窗口及常用控件、支持3D功能的圖形用戶界面系統(tǒng)。第五章:工程應用和效果測試。介紹了本GUI系統(tǒng)在實際工程中的應用情況及顯示效果,驗證了其普通2D圖形界面和3D圖形顯示的性能。 PAGE 60基于OpenGL的VxWorks圖形用戶界面開發(fā)PAGE 21第二章 VxWorks操作系統(tǒng)及媒體庫WindML第二章 VxWorks操作系統(tǒng)及媒體庫WindML2.1 VxWorks深入研究2.1.1 VxWorks概述10VxWorks是專門為實時嵌入式系統(tǒng)

52、設計開發(fā)的操作系統(tǒng)內核。VxWorks的出品公司美國風河公司組建于1981年,是一個專門從實時操作系統(tǒng)開發(fā)與生產(chǎn)的軟件公司,該公司在實時操作系統(tǒng)領域被世界公認是最具有領導作用的公司。從1983年設計成功以來,VxWorks已經(jīng)經(jīng)過廣泛的驗證,成功的應用在航空、航天、艦船、通信、醫(yī)療等關鍵領域,如美國的F-16、FA-18戰(zhàn)斗機、B-2隱形轟炸機、愛國者導彈上以及1997年4月在火星表面登陸的火星探路者上都使用了VxWorks。目前,VxWorks得到了許多軟硬件廠家的支持,這些第三方軟硬件廠家提供豐富的VxWorks的擴展組件。因此,從應用軟件角度而言,VxWorks操作系統(tǒng)在各種CPU硬件平

53、臺上可以提供統(tǒng)一的接口和一致的運行特性,應用程序無需做過多的改動就可以運行在各種CPU上,為程序員提供了一致的開發(fā)、運行環(huán)境,減少了重復勞動。VxWorks操作系統(tǒng)是現(xiàn)在所有獨立于處理器的實時系統(tǒng)中最具特色的操作系統(tǒng)之一。VxWorks系統(tǒng)運行環(huán)境支持的CPU包括:Power PC、68K、CPU32、SPARC、i960、x86、Mips等;同時支持RISC、DSP技術。支持多種硬件環(huán)境也是VxWorks得以流行的重要原因。VxWorks的微內核Wind是一個具有較高性能的、標準的嵌入式實時操作系統(tǒng)內核,其主要特點包括:快速多任務切換、搶占式任務調度、任務間通信手段多樣化等。該內核具有任務間

54、切換時間短、中斷延遲小、網(wǎng)絡流量大等特點,與其他嵌入式實時操作系統(tǒng)相比具有一定的優(yōu)勢。VxWorks是一種功能強大而且比較復雜的操作系統(tǒng),包括了進程管理、存儲管理、設備管理、文件系統(tǒng)管理、I/O管理、網(wǎng)絡協(xié)議及系統(tǒng)應用、C+和其他標準支持等幾個部分。VxWorks只占用了很小的存儲空間,并可高度裁減,保證了系統(tǒng)能以較高的效率運行。VxWorks系統(tǒng)具有較好的可剪裁的能力,可剪裁的組件超過80個,用戶可以根據(jù)自己系統(tǒng)的功能目標通過交叉開發(fā)環(huán)境方便地進行配置。VxWorks支持應用程序的動態(tài)鏈接和動態(tài)下載,使開發(fā)者省去了每次調試都將應用程序與操作系統(tǒng)內核進行鏈接和下載的步驟,縮短了編輯調試的周期。

55、VxWorks具有較好的兼容性。良好的兼容性,使其在不同運行環(huán)境間可以方便的移植,從而使用戶在開發(fā)和培訓方面所做的工作得到保護,減少了開發(fā)周期和經(jīng)費。VxWorks是最早兼容POSIX1003.1b標準的嵌入式實時操作系統(tǒng)之一,同時也是POSIX組織的主要會員。VxWorks的TCP/IP協(xié)議棧部分在保持與BSD4.4版本的TCP/IP兼容基礎上,在實時性方面有較大提高。這使得基于BSD4.4 UNIX socket的應用程序可以很方便地移植到VxWorks中去,并且網(wǎng)絡的實時性得到提高。VxWorks還是第一個通過Windows NT測試的可以在Windows NT平臺進行開發(fā)和仿真的嵌入式

56、實時操作系統(tǒng)。同時支持ANSIC標準,并通過ISO 9001的認證。VxWorks體系結構圖如圖2.1所示。圖2.1 VxWorks體系結構2.1.2 VxWorks實時微內核1112VxWorks內核(wind)的基本功能可以分為如下幾大類:1)任務管理;2)事件和異步信號服務;3)信號量服務;4)消息隊列服務;5)內存管理;6)中斷服務程序;7)時鐘管理和定時器服務;8)錯誤處理。其中,本課題主要用到的功能是任務管理、任務間通信和同步,下面將重點對這兩方面內容進行描述。任務管理VxWorks實時內核Wind提供了基本的多任務環(huán)境。從表面上來看,多個任務正在同時執(zhí)行,實際上,系統(tǒng)內核根據(jù)某一

57、調度策略讓它們交替運行。系統(tǒng)調度器使用任務控制塊(TCB)的數(shù)據(jù)結構來管理任務調度功能。TCB用來描述一個任務,每一任務都與一個TCB關聯(lián)。TCB包括了任務的當前狀態(tài)、優(yōu)先級、要等待的事件或資源、任務程序碼的起始地址、初始堆棧指針等信息。調度器在任務最初被激活時以及從休眠態(tài)重新被激活時,要用到這些信息。此外,TCB還被用來存放任務的上下文(context)。任務的上下文就是當一個執(zhí)行中的任務被停止時,所要保存的所有信息。在任務被重新執(zhí)行時,必須要恢復上下文。嵌入實時系統(tǒng)的一個任務可有多種狀態(tài),其中最基本的狀態(tài)有四種:就緒態(tài):任務等待系統(tǒng)分配CPU資源;懸置態(tài):任務需等待某些不可利用的資源而被阻

58、塞;休眠態(tài):如果系統(tǒng)不需要某一個任務工作,則這個任務處于休眠狀態(tài);延遲態(tài):任務被延遲時所處狀態(tài)。任務的狀態(tài)在這幾種狀態(tài)中切換。內核維護每個任務的當前狀態(tài)。狀態(tài)遷移發(fā)生在應用程序調用內核功能服務的時候。任務被創(chuàng)建以后進入掛起態(tài),需要通過特定的操作使被創(chuàng)建的任務進入就緒態(tài),這一操作執(zhí)行速度很快,使應用程序能夠提前創(chuàng)建任務,并以一種快捷的方式激活該任務,如圖2.2。圖2.2 VxWorks任務狀態(tài)的轉換多任務調度須采用一種調度算法來分配CPU給就緒態(tài)任務。Wind內核采用基于優(yōu)先級的搶占式調度法作為它的缺省策略,同時它也提供了輪轉調度法。Wind內核劃分優(yōu)先級為256級(0255)。優(yōu)先級0為最高優(yōu)

59、先級,優(yōu)先級255為最低。當任務被創(chuàng)建時,系統(tǒng)根據(jù)給定值分配任務優(yōu)先級。優(yōu)先級也可以是動態(tài)的,它們能在系統(tǒng)運行時被用戶使用系統(tǒng)調用taskPrioritySet()來加以改變,但不能在運行時被操作系統(tǒng)所改變?;趦?yōu)先級的搶占式調度,它具有很多優(yōu)點。這種調度方法為每個任務指定不同的優(yōu)先級。沒有處于懸置或休眠態(tài)的最高優(yōu)先級任務將一直運行下去。當更高優(yōu)先級的任務由就緒態(tài)進入運行時,系統(tǒng)內核立即保存當前任務的上下文,切換到更高優(yōu)先級的任務。Wind內核可通過調用taskLock()和taskUnlock()來使調度器起作用和失效。當一個任務調用taskLock()使調度器失效,任務運行時沒有基于優(yōu)先級

60、的搶占發(fā)生。然而,如果任務被阻塞或是懸置時,調度器從就緒隊列中取出最高優(yōu)先級的任務運行。當設置搶占禁止的任務解除阻塞,再次開始運行時,搶占又被禁止。這種搶占禁止防止任務的切換,但對中斷處理不起作用。任務通信和同步機制VxWorks支持各種任務間通信機制,提供了多樣的任務間通信方式,主要有如下幾種:1)共享內存主要是數(shù)據(jù)的共享,任務間通信的最簡單的方法,即相關的各個任務分享屬于它們的地址空間的同一內存區(qū)域。所有任務都存在于單一的線性地址空間,任務間共享數(shù)據(jù)。全局變量、線性隊列、環(huán)形隊列、鏈表、指針都可被運行在不同上下文的代碼所指向。2)信號量VxWorks信號量提供最快速的任務間通信機制,它主要

溫馨提示

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

評論

0/150

提交評論