![基于OpenGL的VxWorks圖形界面開發(fā)_第1頁](http://file4.renrendoc.com/view/461f103b0f7951cc034e8cbecfb55dc0/461f103b0f7951cc034e8cbecfb55dc01.gif)
![基于OpenGL的VxWorks圖形界面開發(fā)_第2頁](http://file4.renrendoc.com/view/461f103b0f7951cc034e8cbecfb55dc0/461f103b0f7951cc034e8cbecfb55dc02.gif)
![基于OpenGL的VxWorks圖形界面開發(fā)_第3頁](http://file4.renrendoc.com/view/461f103b0f7951cc034e8cbecfb55dc0/461f103b0f7951cc034e8cbecfb55dc03.gif)
![基于OpenGL的VxWorks圖形界面開發(fā)_第4頁](http://file4.renrendoc.com/view/461f103b0f7951cc034e8cbecfb55dc0/461f103b0f7951cc034e8cbecfb55dc04.gif)
![基于OpenGL的VxWorks圖形界面開發(fā)_第5頁](http://file4.renrendoc.com/view/461f103b0f7951cc034e8cbecfb55dc0/461f103b0f7951cc034e8cbecfb55dc05.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、代號分類號學(xué)號密級UDC編號 企業(yè)指導(dǎo)教師姓名職稱學(xué)校指導(dǎo)教師姓名職稱工程領(lǐng)域作者姓名二九年三月提交論文日期Based on OpenGLResearch On Graphical User Interface of VxWorks 基于OpenGL的VxWorks圖形用戶界面開發(fā)題(中、英文)目西安電子科技大學(xué)學(xué)位論文創(chuàng)新性聲明秉承學(xué)校嚴(yán)謹(jǐn)?shù)膶W(xué)風(fēng)和優(yōu)良的科學(xué)道德,本人聲明所呈交的論文是我個人在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果。盡我所知,除了文中特別加以標(biāo)注和致謝中所羅列的內(nèi)容以外,論文中不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果;也不包含為獲得西安電子科技大學(xué)或其它教育機構(gòu)的學(xué)位或證書而
2、使用過的材料。與我一同工作的同志對本研究所做的任何貢獻(xiàn)均已在論文中做了明確的說明并表示了謝意。申請學(xué)位論文與資料若有不實之處,本人承擔(dān)一切的法律責(zé)任。本人簽名: 日期 西安電子科技大學(xué)關(guān)于論文使用授權(quán)的說明本人完全了解西安電子科技大學(xué)有關(guān)保留和使用學(xué)位論文的規(guī)定,即:研究生在校攻讀學(xué)位期間論文工作的知識產(chǎn)權(quán)單位屬西安電子科技大學(xué)。學(xué)校有權(quán)保留送交論文的復(fù)印件,允許查閱和借閱論文;學(xué)??梢怨颊撐牡娜炕虿糠謨?nèi)容,可以允許采用影印、縮印或其它復(fù)制手段保存論文。同時本人保證,畢業(yè)后結(jié)合學(xué)位論文研究課題再撰寫的文章一律署名單位為西安電子科技大學(xué)。(保密的論文在解密后遵守此規(guī)定)本學(xué)位論文屬于保密,在
3、 年解密后適用本授權(quán)書。本人簽名: 日期 導(dǎo)師簽名: 日期 摘要圖形用戶界面(GUI)是人機交互技術(shù)的重要內(nèi)容,它使用圖形圖像信息、直觀的表達(dá)方式與用戶交互,使軟件系統(tǒng)的人機界面簡潔、美觀、方便好用,更加人性化。目前GUI已經(jīng)大量應(yīng)用在嵌入式領(lǐng)域,但是大多數(shù)嵌入式GUI系統(tǒng)提供給用戶的顯示平面從邏輯設(shè)計上講是二維的,最大的缺點在于反映信息量小,在對真實場景進(jìn)行模擬顯示的時候,無法提供真實的場景數(shù)據(jù)。隨著嵌入式系統(tǒng)硬件功能的不斷提高,如何開發(fā)一款支持3D建模的嵌入式GUI已成為一個迫切的話題。本課題來源于實習(xí)工作中的“某星載儀表控制計算機”項目,該計算機采用VxWorks作為其操作系統(tǒng),要求設(shè)計
4、出人性化的人機界面,可以實時顯示系統(tǒng)的相關(guān)參數(shù)數(shù)據(jù)、圖形信息等,并提供對3D模塊的支持,能夠進(jìn)行3D圖形的繪制和顯示。本文經(jīng)過詳細(xì)分析和設(shè)計,實現(xiàn)了將OpenGL/Mesa3D圖形庫移植到VxWorks系統(tǒng),并結(jié)合VxWorks內(nèi)核及其多媒體庫WindML的相關(guān)接口,開發(fā)了以消息驅(qū)動為核心、具有基本窗口管理功能和仿Windows控件效果、支持中文界面和3D畫面繪制顯示的GUI系統(tǒng)。從工程應(yīng)用和測試的效果來看,該GUI系統(tǒng)基本實現(xiàn)了預(yù)期功能。關(guā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 國內(nèi)外研究現(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 論文結(jié)構(gòu) 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實時微內(nèi)核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事件服務(wù)機制 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 本章小結(jié) 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ā)庫結(jié)構(gòu)
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ù)結(jié)構(gòu)和函數(shù)的引入 PAGEREF _Toc224484706 h 29
18、 HYPERLINK l _Toc224484707 3.2.3 使用改進(jìn)后的庫 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 本章小結(jié) PAGEREF _Toc224484710 h 35 HYPERLINK l _Toc224484711 第四章 VxWorks
19、系統(tǒng)GUI關(guān)鍵技術(shù)及實現(xiàn) PAGEREF _Toc224484711 h 37 HYPERLINK l _Toc224484712 4.1 消息驅(qū)動機制 PAGEREF _Toc224484712 h 37 HYPERLINK l _Toc224484713 4.1.1 消息驅(qū)動機制實現(xiàn)原理 PAGEREF _Toc224484713 h 37 HYPERLINK l _Toc224484714 4.1.2 消息檢測任務(wù) PAGEREF _Toc224484714 h 38 HYPERLINK l _Toc224484715 4.1.3 事件分發(fā)任務(wù) 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 常用控件設(shè)計 PAGEREF _Toc224484725 h 47 HYPERLINK l _Toc224484726 4.5 本章小結(jié) PAGEREF _Toc224484726 h 50 HYPERLINK l _Toc224484727 第五章 工程應(yīng)用和效果測試 PAGEREF _Toc224484727 h 51 HYPERLINK l _Toc224484728 5.1 工程應(yīng)用 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 本章小結(jié) PAGEREF _Toc224484732 h 53 HYPERLINK l _Toc224484733 結(jié)束語 PAGEREF _Toc224484733 h 55 HYPERLINK l _Toc224484734 致謝 PAGEREF _Toc2244847
24、34 h 57 HYPERLINK l _Toc224484735 參考文獻(xiàn) PAGEREF _Toc224484735 h 59PAGE 9第一章 緒論 第一章 緒論1.1 背景知識介紹1.1.1 嵌入式實時系統(tǒng)在計算機技術(shù)和信息技術(shù)高速發(fā)展的今天,很多計算機已經(jīng)脫離了大型機和PC的概念,廣泛應(yīng)用的嵌入式計算機便是其中之一。嵌入式計算機或者叫嵌入式系統(tǒng),源于20世紀(jì)60年代,其定義為1:以應(yīng)用為中心、以計算機技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗等嚴(yán)格要求的,用來完成一種或多種特定功能的專用計算機系統(tǒng)。其具有軟件代碼小,高度自動化,響應(yīng)速度快,是軟硬件的緊密
25、結(jié)合體等特點。當(dāng)前嵌入式系統(tǒng)呈現(xiàn)出巨大的市場需求,小到照相機、電冰箱、移動電話,大到艦船、汽車、衛(wèi)星和火箭,涵蓋了工業(yè)控制、武器系統(tǒng)、航空航天、消費電子等領(lǐng)域。工業(yè)控制、武器系統(tǒng)、航空航天等領(lǐng)域的多數(shù)嵌入式系統(tǒng)有一個共同的特性:對系統(tǒng)的響應(yīng)時間有嚴(yán)格要求,這些系統(tǒng)也被稱為實時系統(tǒng)。所謂實時,也就是“立即”“及時”的意思。在實時控制系統(tǒng)中,計算機通過特定的外圍設(shè)備與被控對象發(fā)生聯(lián)系,并對外來事件在限定的時間內(nèi)做出反應(yīng)。所以,其結(jié)果的正確性不僅與計算或控制的邏輯正確性有關(guān),還與其時間特性有關(guān)。嵌入式實時操作系統(tǒng)(Embedded Real Time,RTOS)是實時系統(tǒng)的核心軟件,它嵌入在目標(biāo)代碼
26、中,系統(tǒng)復(fù)位后首先執(zhí)行,它負(fù)責(zé)在硬件基礎(chǔ)之上,為應(yīng)用軟件建立一個功能更為強大的運行環(huán)境,用戶的其他應(yīng)用程序都建立在RTOS之上,從這個意義上而言,可以認(rèn)為RTOS是一個虛擬機,它比底層硬件更容易編程。RTOS最關(guān)鍵的部分是實時多任務(wù)內(nèi)核,它的基本功能包括任務(wù)管理、定時器管理、存儲器管理、資源管理、事件管理、系統(tǒng)管理、消息管理、隊列管理、信號量管理等,這些管理功能是通過內(nèi)核服務(wù)函數(shù)形式交給用戶調(diào)用的,也就是API。RTOS根據(jù)各個任務(wù)的優(yōu)先級,合理地在不同任務(wù)之間分配CPU時間,從這個意義上而言,操作系統(tǒng)的作用是資源管理器。RTOS的引入,解決了嵌入式軟件開發(fā)標(biāo)準(zhǔn)化的難題。隨著嵌入式系統(tǒng)中軟件比
27、重不斷上升、應(yīng)用程序越來越大,對開發(fā)人員、應(yīng)用程序接口、程序檔案的組織管理成為一個大的課題,引入RTOS相當(dāng)于引入了一種新的管理模式。基于RTOS開發(fā)出的程序,具有較高的可移植性,實現(xiàn)90以上的設(shè)備獨立,一些成熟的通用程序可以作為專家?guī)旌瘮?shù)產(chǎn)品推向社會。目前國內(nèi)外主要的RTOS有:美國風(fēng)河公司的VxWorks,微軟的WinCE,3COM公司的Palm OS和嵌入式Linux。這些嵌入式操作系統(tǒng)各有各的特點。1) VxWorksVxWorks是美國Wind River System公司(WRS)推出的一個實時操作系統(tǒng)。VxWorks是專門為嵌入式而定制的,實時性非常好,其系統(tǒng)本身的開銷很小,進(jìn)程
28、調(diào)度、進(jìn)程間通信、中斷處理等系統(tǒng)公用程序精練而有效。VxWorks的內(nèi)核及一些系統(tǒng)模塊可以根據(jù)需要進(jìn)行定制,內(nèi)核最小僅8KB,且不失其實時、多任務(wù)的系統(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)境,但是在內(nèi)核結(jié)構(gòu)的設(shè)計中并未考慮適應(yīng)系統(tǒng)的高度可裁減性的要求,需要較大存儲空間,應(yīng)用程序也比較龐大,且在實時性方面較VxWorks略遜一
29、籌。3)嵌入式Linux嵌入式Linux具有開放的源代碼的優(yōu)點,但是它的開放代碼有很多都沒有經(jīng)過一個嚴(yán)格的測試,直接使用開放代碼的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)的圖形化的前端,使用圖形的方式借助菜單、按鈕等標(biāo)準(zhǔn)界面元素和鼠標(biāo)
30、操作,接收用戶的輸入或其它系統(tǒng)的輸入,產(chǎn)生圖形輸出,幫助用戶和計算機之間進(jìn)行交互。GUI的廣泛流行是當(dāng)今計算機技術(shù)的重大成就之一,其最重要的優(yōu)勢在于使用戶擺脫了在命令行提示符下與操作系統(tǒng)進(jìn)行交互的方式,用戶可以僅僅通過鼠標(biāo)點擊來快速的熟悉程序的操作,而且由于圖標(biāo)、對話框的引入,使得操作更為直觀、形象,這些直接給人們的生活方式帶來了變革,為數(shù)字化普及做出了巨大的貢獻(xiàn)。GUI工程是一種結(jié)合計算機科學(xué)、美學(xué)、心理學(xué)、語言學(xué)、行為學(xué),及各商業(yè)領(lǐng)域需求分析的人機系統(tǒng)工程,強調(diào)將人、機器、環(huán)境三者作為一個系統(tǒng)而進(jìn)行的總體設(shè)計,它充分利用硬件資源,通過合理的屏幕布局及顏色搭配,可提供清晰、直觀、友好的人機界
31、面,是連接計算機和操作者的橋梁。隨著計算機軟、硬件技術(shù)的不斷發(fā)展,人機界面的設(shè)計已成為軟件設(shè)計的重點。在軟件的開發(fā)過程中,人機界面的工作量約占整個軟件開發(fā)工作量的40%60%,人機界面的優(yōu)劣直接關(guān)系到軟件的成功和生存。這種面向客戶的系統(tǒng)工程設(shè)計將更好的優(yōu)化產(chǎn)品的性能,使操作更人性化,減輕使用者的認(rèn)知負(fù)擔(dān),使其更適合用戶的操作需求,直接提升產(chǎn)品的市場競爭力。GUI是計算機與其使用者之間的對話接口,是計算機系統(tǒng)的重組成部分,它基于硬件和操作系統(tǒng)之上,為用戶提供豐富的圖形編程接口,使其能夠方便快速的編制界面友好的應(yīng)用程序。雖然不同的GUI系統(tǒng)因為其使用場合或服務(wù)目的的不同,具體實現(xiàn)互有差異,但是總結(jié)
32、起來,一般在邏輯上可以分為三個基本的層次2:用戶模型、窗口模型和顯示模型。如圖1.1所示。桌面管理系統(tǒng)GUI用戶模型窗口模型顯示模型操作系統(tǒng)硬件平臺圖1.1 圖形用戶界面系統(tǒng)的層次結(jié)構(gòu)在圖1.1的框架結(jié)構(gòu)中,位于最底層的是計算機硬件平臺。和這些硬件密切相關(guān)的就是驅(qū)動程序,它完成諸如:初始化硬件設(shè)備,設(shè)定設(shè)備運行參數(shù);讀外部設(shè)備的數(shù)據(jù)和對設(shè)備中斷的響應(yīng)等。在硬件平臺的上面是計算機的操作系統(tǒng)。大多數(shù)GUI都只能在一兩種操作系統(tǒng)上運行,只有少數(shù)產(chǎn)品例外。操作系統(tǒng)之上的是顯示模型,它決定了圖形在屏幕上的基本顯示方式,即用位映射圖形顯示各種圖形對象的方式。不同的圖形用戶界面系統(tǒng)所采用的顯示模型各不相同。
33、例如大多數(shù)在UNIX之上運行的圖形用戶界面系統(tǒng)都采用X窗口作顯示模型;MS-Windows則采用自己設(shè)計的圖形設(shè)備接口(GDI)作顯示模型。顯示模型之上的是窗口模型,它確定了窗口如何在屏幕上顯示和窗口的層次關(guān)系,例如菜單、對話框等。它通常包括兩部分:一是編程工具,如函數(shù)集;二是對如何移動、輸出和讀取屏幕顯示信息的說明。窗口模型之上的是用戶模型,它主要包含了顯示和交互特征,由此圖形用戶界面這一術(shù)語有時也特指用戶模型。另外,用戶模型也定義為圖形用戶界面的外觀與視覺。它主要包括兩部分:一是構(gòu)造用戶界面的工具,如工具箱和框架集,包括對高層界面構(gòu)件對象的數(shù)據(jù)結(jié)構(gòu)的定義和說明;二是定義在屏幕上組織各種圖形
34、對象以及這些對象之間的行為規(guī)范和協(xié)議,即每個GUI用戶模型都應(yīng)當(dāng)說明它支持什么樣的窗口和什么樣的顯示方式,因為定義規(guī)范和建立工具集都必須針對具體的顯示模型和窗口模型。最上層的是桌面管理系統(tǒng),它是在圖形用戶界面基礎(chǔ)之上開發(fā)的應(yīng)用程序,實現(xiàn)人機交互的圖形化管理。它通常包括以下幾個組成部分:圖形化的文件管理系統(tǒng)、供用戶使用的圖標(biāo)庫、桌面管理機構(gòu)、圖標(biāo)庫管理機構(gòu)等。1.2 國內(nèi)外研究現(xiàn)狀1.2.1 嵌入式GUI的現(xiàn)狀隨著嵌入式技術(shù)的發(fā)展,嵌入式硬件平臺、操作系統(tǒng)、開發(fā)工具、以及應(yīng)用開發(fā)組件等很多方面都取得了較大突破,嵌入式GUI系統(tǒng)也得到了發(fā)展,涌現(xiàn)出了一大批嵌入式GUI系統(tǒng)或者組件。目前終端系統(tǒng)己經(jīng)
35、開始廣泛采用32位處理器芯片,配置觸摸屏(或鼠標(biāo))、鍵盤等多種輸入設(shè)備和LCD等圖象顯示設(shè)備,這為GUI在嵌入式系統(tǒng)上應(yīng)用提供了基礎(chǔ)硬件平臺。目前GUI的實現(xiàn)方法各有不同,分別有以下幾種方式3:1)某些大型廠商有能力自己開發(fā)滿足自身需要的GUI系統(tǒng)。如VxWorks集成的UGL,ZAL等;2)某些廠商沒有將GUI作為一個軟件層從應(yīng)用程序中剝離,GUI的支持邏輯由應(yīng)用程序自己負(fù)責(zé)。3)采用某些比較成熟的GUI系統(tǒng),比如MiniGUI、MicroWindows或者其他GUI系統(tǒng)。在上述手段中,第2種方法是一種臨時解決方案。利用這種手段編寫的程序,無法將顯示邏輯和數(shù)據(jù)處理邏輯劃分開來,從而導(dǎo)致程序結(jié)
36、構(gòu)不好,不便于調(diào)試,并導(dǎo)致大量的代碼重復(fù)。一般認(rèn)為GUI是一種類似于操作系統(tǒng)的基礎(chǔ)軟件,這種軟件系統(tǒng)應(yīng)該遵循一定的標(biāo)準(zhǔn),并且應(yīng)該是開放源碼的自由軟件,從而可以使開發(fā)商集中精力開發(fā)自己的應(yīng)用程序。下面是對一些成熟GUI方案的概述:1)緊縮的X Window系統(tǒng)4由麻省理工學(xué)院推出的X Window系統(tǒng)是類UNIX系統(tǒng)的標(biāo)準(zhǔn)GUI。XWindow系統(tǒng)采用標(biāo)準(zhǔn)的客戶/服務(wù)器體系結(jié)構(gòu),具有可擴展性、可移植性等優(yōu)點,但該系統(tǒng)的龐大、累贅和低效率也是大家所共知的。為了獲得應(yīng)用程序的可移植性,許多廠家都試圖通過對X Window系統(tǒng)的緊縮開發(fā),使之能夠在嵌入式系統(tǒng)上運行。國外已經(jīng)開發(fā)出了大小約為800K的X
37、服務(wù)器,基本能夠滿足嵌入式系統(tǒng)的需求。缺點:該系統(tǒng)的源代碼尚不開放,從而很難進(jìn)行本地化開發(fā)。2)MiniGUI5MiniGUI的主要特色有:提供了完備的多窗口機制。這包括:多個單獨線程中運行的多窗口、單個線程中主窗口的附屬、對話框和預(yù)定義的控間類(按鈕、單行和多行編輯框、列表、進(jìn)度條、工具欄等)。消息傳遞機制。多字符集和多字體支持,目前支持ISO8859-l,GB2312,Big5等字符集并且支持各種光柵字體和TrueType,Typel等矢量字體。全拼、五筆等漢字輸入法支持。BMP,GIF,JPEG,PCX等常見圖像文件的支持。小巧。包括全部功能的庫文件大小為300K左右。可配置。可根據(jù)項目
38、需求進(jìn)行定制配置和編譯。高穩(wěn)定性和高性能。MiniGUI己經(jīng)在Linux發(fā)行版安裝程序、CNC系統(tǒng)、藍(lán)點嵌入式系統(tǒng)等關(guān)鍵應(yīng)用程序中得到了實際的應(yīng)用。可移植性好。目前,MiniGUI可以在XWindows和Linux控制臺上運行。缺點:圖形功能不全,應(yīng)用設(shè)計比較困難。1.2.2 基于VxWorks的圖形解決方案當(dāng)前,VxWorks以其良好的可靠性和卓越的實時性被廣泛應(yīng)用于軍事、航空、航天、通信等高精尖技術(shù)及實時性要求極高的領(lǐng)域中。隨著硬件技術(shù)的不斷發(fā)展,硬件資源不再是一個制約的問題,同時為了提高系統(tǒng)的易用性,要求我們能夠開發(fā)出良好的圖形界面。比較普遍使用的有以下幾種678:1)VxWorks上的
39、媒體庫組件WindMLWindML是由Wind River公司提供的媒體庫,其中包含的UGL組件提供了顯示模式設(shè)置、標(biāo)準(zhǔn)輸入輸出和點線面作圖等函數(shù),是VxWorks的GUI基礎(chǔ)。但用WindML開發(fā)圖形界面效率較低,且顯示效果較差,圖像中的動畫、三維、反走樣等問題難以解決,不適宜開發(fā)高性能界面。2)WindML與Zinc結(jié)合Zinc基于WindML,提供了類似于Windows風(fēng)格的控件。將兩者結(jié)合,使用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結(jié)合X Window不依賴于特定硬件系統(tǒng)的圖形和文字顯示系統(tǒng)。X系統(tǒng)包含的Xlib庫提供了建立窗口、畫圖、處理用戶操作事件等基本功能,以Xlib庫為基礎(chǔ)又開發(fā)了Xt庫。Motif是基于Xlib庫和Xt庫建立的更高層次的工具包,提供了交互的圖形組件庫,其中包括建立各種窗口組件的便利函數(shù)。4)WindML與Tilcon結(jié)合Tilcon是目前最先進(jìn)的實時操作系統(tǒng)圖形開發(fā)工具,同步支持最新版本的Tornado/VxWorks以及WindML多媒體庫。Tilcon采用了最先進(jìn)的圖形技術(shù),具有極高的可靠性和可維護(hù)性,還
41、支持OPC,XML,SOAP等標(biāo)準(zhǔn)工業(yè)協(xié)議,已成功應(yīng)用在醫(yī)療儀器,軍用武器,工業(yè)流水線,航空/航天等領(lǐng)域。在資金充足的情況下,選擇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技術(shù)的應(yīng)用在嵌入式領(lǐng)域不斷增多,Open
42、GL已經(jīng)出現(xiàn)了獨立的嵌入式技術(shù)標(biāo)準(zhǔn)OpenGL ES。針對硬件資源相對緊缺的嵌人式系統(tǒng),統(tǒng)一標(biāo)準(zhǔn)的操作系統(tǒng)平臺接口層EGL,僅保留OpenGL最常用的API,增加了新的特性:定點運算、字節(jié)匹配、調(diào)色板紋理。在OpenGL標(biāo)準(zhǔn)的基礎(chǔ)上,OpenGL ES針對嵌入式系統(tǒng)硬件特點作了如下修改:刪除了冗余的API函數(shù),保留一個精簡高效的子集;刪除了實現(xiàn)復(fù)雜和很少使用的函數(shù);舍去部分?jǐn)?shù)據(jù)類型,加人少許數(shù)據(jù)類型;加人了定點運算(對OpenGL ES Comm支持浮點和定點運算,對OpenGL ES Comm-lite僅支持定點運算)。目前,OpenGL ES已經(jīng)推出了多個特征版本,OpenGL ES 1.
43、X 面向功能固定的硬件所設(shè)計并提供加速支持、圖形質(zhì)量及性能標(biāo)準(zhǔn)。OpenGL ES 2.X 則提供包括遮蓋器技術(shù)在內(nèi)的全可編程3D圖形算法。OpenGL ES-SC 專為有高安全性需求的特殊市場精心打造。6)其他開發(fā)方案作為一個應(yīng)用面非常廣泛的嵌入式實時操作系統(tǒng),很多廠商意識到了VxWorks下圖形開發(fā)的廣闊市場,紛紛推出了各種圖形界面開發(fā)方案。國內(nèi)的MiniGUI便是一款完善的輕量級圖形用戶界面支持系統(tǒng)。1.2.3 嵌入式GUI的發(fā)展趨勢目前,伴隨著各種手持、無線及嵌入式設(shè)備的迅猛發(fā)展,相應(yīng)的軟硬件設(shè)計也發(fā)生了很大的變化。許多設(shè)備都使用了ARM,MIPS,摩托羅拉的32位微處理器及大屏幕的液
44、晶圖形顯示器。由于在過去10年中,桌面操作模式取得了巨大成功,于是許多開發(fā)者在嵌入式設(shè)計中開始使用類似于桌面的操作系統(tǒng)。只要是面向人機交互的嵌入式產(chǎn)品,就涉及到文字或者圖形的輸出問題,人們與信息終端交互要求以GUI系統(tǒng)為中心的交互式界面。手寫文字輸入、語音撥號上網(wǎng)、收發(fā)電子郵件以及彩色圖形、圖像己取得初步成效。由此可見,從應(yīng)用領(lǐng)域的范圍來看,嵌入式GUI系統(tǒng)的發(fā)展空間將是無比寬廣的。隨著虛擬現(xiàn)實、科學(xué)計算、可視化、多媒體技術(shù)以及硬件技術(shù)的飛速發(fā)展,嵌入式GUI將有如下幾個發(fā)展方向9:1)更加高效、可靠、可定制和小巧靈活,并具有很好的跨硬件平臺、跨操作系統(tǒng)可移植性的嵌入式GUI系統(tǒng)將是將來的一個
45、重要方向。2)支持3D建模。在目前的嵌入式系統(tǒng)中,3D技術(shù)的應(yīng)用并不常見,這與嵌入式系統(tǒng)的特點有很大的關(guān)系,然而,隨著硬件技術(shù)的發(fā)展與市場的需求,目前,一些成熟的3D技術(shù)已經(jīng)應(yīng)用到了嵌入式環(huán)境中,比如OpenGL ES使用了大量的渲染技術(shù)以提供給用戶調(diào)用。因此支持3D建模必將成為未來嵌入式GUI發(fā)展的一個趨勢。3)智能化。精確交互技術(shù)是指能用一種技術(shù)來完全說明用戶交互目的的交互方式,鍵盤和鼠標(biāo)器均需用戶精確輸入。而人們的動作或思想往往并不很精確,計算機應(yīng)該理解人的要求,甚至于糾正人的錯誤,智能化的界面也是未來嵌入式GUI的一個重要方向。4)高寬帶。支持高的輸入帶寬,快速大批量地輸入信息以及對語
46、音、圖像、姿勢等的輸入和理解也是今后的發(fā)展方向。1.3 課題來源和意義本論文題目來源于實習(xí)工作中所進(jìn)行的“某星載儀表控制計算機”的項目。該設(shè)備采用VxWorks作為其操作系統(tǒng),而本課題的目的在于選擇合適的開發(fā)方案,在VxWorks環(huán)境下設(shè)計與開發(fā)一套友好的圖形用戶界面,能夠滿足在顯示器上進(jìn)行復(fù)雜和有實時性要求的圖形信息、參數(shù)信息以及狀態(tài)信息的顯示,該系統(tǒng)另一個重要的技術(shù)要求是能提供對3D模塊的支持,這就對研發(fā)人員提出了很大的挑戰(zhàn)。VxWorks提供了一個圖形開發(fā)庫WindML,同時也有很多軟件開發(fā)商開發(fā)了多種基于VxWorks的圖形界面軟件開發(fā)包,但由于這些方案中有的價格昂貴,有的不適合開發(fā)高
47、要求的圖形界面,還有的不易移植并且存在很多BUG。最終,我們選用OpenGL開發(fā)我們的圖形界面,主要原因分析如下:第一:獨立性和無關(guān)性。OpenGL被設(shè)計成獨立于硬件,獨立于窗口系統(tǒng)的,在運行各種操作系統(tǒng)的各種計算機上都可用,并能在網(wǎng)絡(luò)環(huán)境下以客戶/服務(wù)器模式工作,其目的是將用戶從具體的硬件中解放出來,完全不用理解這些系統(tǒng)的結(jié)構(gòu)和指令系統(tǒng),只要按照規(guī)定的格式書寫應(yīng)用程序就可以在任何支持該語言的硬件平臺上執(zhí)行,是專業(yè)圖形處理、科學(xué)計算等高端應(yīng)用領(lǐng)域的標(biāo)準(zhǔn)圖形庫。第二:靈活性和通用性。由于OpenGL是3D圖形的底層圖形庫,沒有提供幾何實體圖元,不能直接用以描述場景。但是,通過一些轉(zhuǎn)換程序,可以很
48、方便地將AutoCAD、3DS等3D圖形設(shè)計軟件制作的DFX和3DS模型文件轉(zhuǎn)換成OpenGL的頂點數(shù)組。另外,各種流行的編程語言都可以調(diào)用OpenGL的庫函數(shù),如:C、C+、Fortran、Ada、 Java。第三:高效性。OpenGL被計算機工業(yè)界看作當(dāng)前最先進(jìn)的三維圖形API,它提供很強的繪制二維和三維圖形能力,包括基本圖元、造型、著色、光照、景深、陰影、混合、動畫、反走樣、紋理映射、隱面消除、圖像處理等繪制功能。另外,OpenGL利用顯示列表概念引入了PHIGS中的層次概念,不需要包括復(fù)雜的預(yù)定義對象,設(shè)計者只需調(diào)用OpenGL的幾個簡單幾何單元,即可建立所要求的模型,因而深得許多專業(yè)
49、人員的喜愛。另外OpenGL頂部還設(shè)有實用程序庫,支持繪制二次曲線和曲面、nurbs曲線和曲面以及其它高級圖元。1.4 論文結(jié)構(gòu)本文詳細(xì)分析了國內(nèi)外嵌入式GUI系統(tǒng)的發(fā)展現(xiàn)狀,特別VxWorks系統(tǒng)下支持3D建模的嵌入式GUI系統(tǒng)的特點。OpenGL作為新一代的三維圖形工業(yè)標(biāo)準(zhǔn),以其與硬件無關(guān)性和獨立性使得它有很好的跨平臺能力。而Mesa3D圖形庫則是目前為止對OpenGL標(biāo)準(zhǔn)最完整的一個實現(xiàn),本論文的一個重要的工作就是將Mesa3D移植到VxWorks系統(tǒng),移植成功后,我們將結(jié)合UGL圖形庫為系統(tǒng)構(gòu)建一個簡單的、具有最基本功能的用戶圖形界面。本論文的安排如下:第一章:緒論。對嵌入式系統(tǒng)及其圖
50、形用戶界面進(jìn)行介紹。說明課題來源,國內(nèi)外現(xiàn)狀和本論文主要章節(jié)安排。第二章:VxWorks操作系統(tǒng)及媒體庫WindML。分析了VxWorks系統(tǒng)及其實時微內(nèi)核Wind的特性,介紹了VxWorks的集成開發(fā)環(huán)境Tornado的幾個重要組件,最后詳細(xì)說明風(fēng)河公司提供的多媒體庫WindML,對其事件服務(wù)機制、主要API和利用它開發(fā)圖形等多媒體程序的詳細(xì)流程。第三章:OpenGL/Mesa及其在VxWorks下的移植。介紹了當(dāng)今三維圖形工業(yè)標(biāo)準(zhǔn)OpenGL的開發(fā)庫結(jié)構(gòu)和它的一個實現(xiàn)版本Mesa。然后實現(xiàn)了本課題的兩個主要任務(wù):移植OpenGL/Mesa到VxWorks系統(tǒng)中,利用虛擬機搭建圖形開發(fā)環(huán)境。
51、第四章:VxWorks系統(tǒng)GUI關(guān)鍵技術(shù)詳細(xì)介紹。介紹了本課題的另一個主要的任務(wù)設(shè)計并實現(xiàn)一個以消息驅(qū)動機制為核心的、具有中文顯示功能、能創(chuàng)建和顯示窗口及常用控件、支持3D功能的圖形用戶界面系統(tǒng)。第五章:工程應(yīng)用和效果測試。介紹了本GUI系統(tǒng)在實際工程中的應(yī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、設(shè)計開發(fā)的操作系統(tǒng)內(nèi)核。VxWorks的出品公司美國風(fēng)河公司組建于1981年,是一個專門從實時操作系統(tǒng)開發(fā)與生產(chǎn)的軟件公司,該公司在實時操作系統(tǒng)領(lǐng)域被世界公認(rèn)是最具有領(lǐng)導(dǎo)作用的公司。從1983年設(shè)計成功以來,VxWorks已經(jīng)經(jīng)過廣泛的驗證,成功的應(yīng)用在航空、航天、艦船、通信、醫(yī)療等關(guān)鍵領(lǐng)域,如美國的F-16、FA-18戰(zhàn)斗機、B-2隱形轟炸機、愛國者導(dǎo)彈上以及1997年4月在火星表面登陸的火星探路者上都使用了VxWorks。目前,VxWorks得到了許多軟硬件廠家的支持,這些第三方軟硬件廠家提供豐富的VxWorks的擴展組件。因此,從應(yīng)用軟件角度而言,VxWorks操作系統(tǒng)在各種CPU硬件平
53、臺上可以提供統(tǒng)一的接口和一致的運行特性,應(yīng)用程序無需做過多的改動就可以運行在各種CPU上,為程序員提供了一致的開發(fā)、運行環(huán)境,減少了重復(fù)勞動。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技術(shù)。支持多種硬件環(huán)境也是VxWorks得以流行的重要原因。VxWorks的微內(nèi)核Wind是一個具有較高性能的、標(biāo)準(zhǔn)的嵌入式實時操作系統(tǒng)內(nèi)核,其主要特點包括:快速多任務(wù)切換、搶占式任務(wù)調(diào)度、任務(wù)間通信手段多樣化等。該內(nèi)核具有任務(wù)間
54、切換時間短、中斷延遲小、網(wǎng)絡(luò)流量大等特點,與其他嵌入式實時操作系統(tǒng)相比具有一定的優(yōu)勢。VxWorks是一種功能強大而且比較復(fù)雜的操作系統(tǒng),包括了進(jìn)程管理、存儲管理、設(shè)備管理、文件系統(tǒng)管理、I/O管理、網(wǎng)絡(luò)協(xié)議及系統(tǒng)應(yīng)用、C+和其他標(biāo)準(zhǔn)支持等幾個部分。VxWorks只占用了很小的存儲空間,并可高度裁減,保證了系統(tǒng)能以較高的效率運行。VxWorks系統(tǒng)具有較好的可剪裁的能力,可剪裁的組件超過80個,用戶可以根據(jù)自己系統(tǒng)的功能目標(biāo)通過交叉開發(fā)環(huán)境方便地進(jìn)行配置。VxWorks支持應(yīng)用程序的動態(tài)鏈接和動態(tài)下載,使開發(fā)者省去了每次調(diào)試都將應(yīng)用程序與操作系統(tǒng)內(nèi)核進(jìn)行鏈接和下載的步驟,縮短了編輯調(diào)試的周期。
55、VxWorks具有較好的兼容性。良好的兼容性,使其在不同運行環(huán)境間可以方便的移植,從而使用戶在開發(fā)和培訓(xùn)方面所做的工作得到保護(hù),減少了開發(fā)周期和經(jīng)費。VxWorks是最早兼容POSIX1003.1b標(biāo)準(zhǔn)的嵌入式實時操作系統(tǒng)之一,同時也是POSIX組織的主要會員。VxWorks的TCP/IP協(xié)議棧部分在保持與BSD4.4版本的TCP/IP兼容基礎(chǔ)上,在實時性方面有較大提高。這使得基于BSD4.4 UNIX socket的應(yīng)用程序可以很方便地移植到VxWorks中去,并且網(wǎng)絡(luò)的實時性得到提高。VxWorks還是第一個通過Windows NT測試的可以在Windows NT平臺進(jìn)行開發(fā)和仿真的嵌入式
56、實時操作系統(tǒng)。同時支持ANSIC標(biāo)準(zhǔn),并通過ISO 9001的認(rèn)證。VxWorks體系結(jié)構(gòu)圖如圖2.1所示。圖2.1 VxWorks體系結(jié)構(gòu)2.1.2 VxWorks實時微內(nèi)核1112VxWorks內(nèi)核(wind)的基本功能可以分為如下幾大類:1)任務(wù)管理;2)事件和異步信號服務(wù);3)信號量服務(wù);4)消息隊列服務(wù);5)內(nèi)存管理;6)中斷服務(wù)程序;7)時鐘管理和定時器服務(wù);8)錯誤處理。其中,本課題主要用到的功能是任務(wù)管理、任務(wù)間通信和同步,下面將重點對這兩方面內(nèi)容進(jìn)行描述。任務(wù)管理VxWorks實時內(nèi)核Wind提供了基本的多任務(wù)環(huán)境。從表面上來看,多個任務(wù)正在同時執(zhí)行,實際上,系統(tǒng)內(nèi)核根據(jù)某一
57、調(diào)度策略讓它們交替運行。系統(tǒng)調(diào)度器使用任務(wù)控制塊(TCB)的數(shù)據(jù)結(jié)構(gòu)來管理任務(wù)調(diào)度功能。TCB用來描述一個任務(wù),每一任務(wù)都與一個TCB關(guān)聯(lián)。TCB包括了任務(wù)的當(dāng)前狀態(tài)、優(yōu)先級、要等待的事件或資源、任務(wù)程序碼的起始地址、初始堆棧指針等信息。調(diào)度器在任務(wù)最初被激活時以及從休眠態(tài)重新被激活時,要用到這些信息。此外,TCB還被用來存放任務(wù)的上下文(context)。任務(wù)的上下文就是當(dāng)一個執(zhí)行中的任務(wù)被停止時,所要保存的所有信息。在任務(wù)被重新執(zhí)行時,必須要恢復(fù)上下文。嵌入實時系統(tǒng)的一個任務(wù)可有多種狀態(tài),其中最基本的狀態(tài)有四種:就緒態(tài):任務(wù)等待系統(tǒng)分配CPU資源;懸置態(tài):任務(wù)需等待某些不可利用的資源而被阻
58、塞;休眠態(tài):如果系統(tǒng)不需要某一個任務(wù)工作,則這個任務(wù)處于休眠狀態(tài);延遲態(tài):任務(wù)被延遲時所處狀態(tài)。任務(wù)的狀態(tài)在這幾種狀態(tài)中切換。內(nèi)核維護(hù)每個任務(wù)的當(dāng)前狀態(tài)。狀態(tài)遷移發(fā)生在應(yīng)用程序調(diào)用內(nèi)核功能服務(wù)的時候。任務(wù)被創(chuàng)建以后進(jìn)入掛起態(tài),需要通過特定的操作使被創(chuàng)建的任務(wù)進(jìn)入就緒態(tài),這一操作執(zhí)行速度很快,使應(yīng)用程序能夠提前創(chuàng)建任務(wù),并以一種快捷的方式激活該任務(wù),如圖2.2。圖2.2 VxWorks任務(wù)狀態(tài)的轉(zhuǎn)換多任務(wù)調(diào)度須采用一種調(diào)度算法來分配CPU給就緒態(tài)任務(wù)。Wind內(nèi)核采用基于優(yōu)先級的搶占式調(diào)度法作為它的缺省策略,同時它也提供了輪轉(zhuǎn)調(diào)度法。Wind內(nèi)核劃分優(yōu)先級為256級(0255)。優(yōu)先級0為最高優(yōu)
59、先級,優(yōu)先級255為最低。當(dāng)任務(wù)被創(chuàng)建時,系統(tǒng)根據(jù)給定值分配任務(wù)優(yōu)先級。優(yōu)先級也可以是動態(tài)的,它們能在系統(tǒng)運行時被用戶使用系統(tǒng)調(diào)用taskPrioritySet()來加以改變,但不能在運行時被操作系統(tǒng)所改變?;趦?yōu)先級的搶占式調(diào)度,它具有很多優(yōu)點。這種調(diào)度方法為每個任務(wù)指定不同的優(yōu)先級。沒有處于懸置或休眠態(tài)的最高優(yōu)先級任務(wù)將一直運行下去。當(dāng)更高優(yōu)先級的任務(wù)由就緒態(tài)進(jìn)入運行時,系統(tǒng)內(nèi)核立即保存當(dāng)前任務(wù)的上下文,切換到更高優(yōu)先級的任務(wù)。Wind內(nèi)核可通過調(diào)用taskLock()和taskUnlock()來使調(diào)度器起作用和失效。當(dāng)一個任務(wù)調(diào)用taskLock()使調(diào)度器失效,任務(wù)運行時沒有基于優(yōu)先級
60、的搶占發(fā)生。然而,如果任務(wù)被阻塞或是懸置時,調(diào)度器從就緒隊列中取出最高優(yōu)先級的任務(wù)運行。當(dāng)設(shè)置搶占禁止的任務(wù)解除阻塞,再次開始運行時,搶占又被禁止。這種搶占禁止防止任務(wù)的切換,但對中斷處理不起作用。任務(wù)通信和同步機制VxWorks支持各種任務(wù)間通信機制,提供了多樣的任務(wù)間通信方式,主要有如下幾種:1)共享內(nèi)存主要是數(shù)據(jù)的共享,任務(wù)間通信的最簡單的方法,即相關(guān)的各個任務(wù)分享屬于它們的地址空間的同一內(nèi)存區(qū)域。所有任務(wù)都存在于單一的線性地址空間,任務(wù)間共享數(shù)據(jù)。全局變量、線性隊列、環(huán)形隊列、鏈表、指針都可被運行在不同上下文的代碼所指向。2)信號量VxWorks信號量提供最快速的任務(wù)間通信機制,它主要
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廚房設(shè)備購買合同示范文本
- 2025年社交酒會接待服務(wù)合同
- 2025年寫字樓租賃代理合同范例
- 裝修工程設(shè)計合同范本
- 2025年全屋定制項目安裝合同范文
- 2025年企事業(yè)單位辦公大院租賃合同
- 2025年專屬銷售代理合同
- 2025年企業(yè)員工勞動合同樣本參考
- 2025年臨時工外包合同模板
- 2025年不動產(chǎn)質(zhì)押合同示例
- 教育案例評選細(xì)則(3篇模板)
- 數(shù)字孿生水利工程建設(shè)技術(shù)導(dǎo)則(試行)
- 2022年版初中物理課程標(biāo)準(zhǔn)解讀-課件
- 2024年山東化工職業(yè)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 方案偏離處理措施
- (2024年)剪映入門教程課件
- 《寵物飼養(yǎng)》課程標(biāo)準(zhǔn)
- 快餐品牌全案推廣方案
- 環(huán)境衛(wèi)生整治推進(jìn)行動實施方案
- 口腔醫(yī)院感染預(yù)防與控制1
- 2024年同等學(xué)力英語真題解析
評論
0/150
提交評論