freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于opengl的vxworks圖形界面開發(fā)畢業(yè)論文-在線瀏覽

2025-08-10 22:08本頁面
  

【正文】 。 嵌入式GUI的發(fā)展趨勢目前,伴隨著各種手持、無線及嵌入式設(shè)備的迅猛發(fā)展,相應(yīng)的軟硬件設(shè)計(jì)也發(fā)生了很大的變化。由于在過去10年中,桌面操作模式取得了巨大成功,于是許多開發(fā)者在嵌入式設(shè)計(jì)中開始使用類似于桌面的操作系統(tǒng)。手寫文字輸入、語音撥號(hào)上網(wǎng)、收發(fā)電子郵件以及彩色圖形、圖像己取得初步成效。隨著虛擬現(xiàn)實(shí)、科學(xué)計(jì)算、可視化、多媒體技術(shù)以及硬件技術(shù)的飛速發(fā)展,嵌入式GUI將有如下幾個(gè)發(fā)展方向[9]:1)更加高效、可靠、可定制和小巧靈活,并具有很好的跨硬件平臺(tái)、跨操作系統(tǒng)可移植性的嵌入式GUI系統(tǒng)將是將來的一個(gè)重要方向。在目前的嵌入式系統(tǒng)中,3D技術(shù)的應(yīng)用并不常見,這與嵌入式系統(tǒng)的特點(diǎn)有很大的關(guān)系,然而,隨著硬件技術(shù)的發(fā)展與市場的需求,目前,一些成熟的3D技術(shù)已經(jīng)應(yīng)用到了嵌入式環(huán)境中,比如OpenGL ES使用了大量的渲染技術(shù)以提供給用戶調(diào)用。3)智能化。而人們的動(dòng)作或思想往往并不很精確,計(jì)算機(jī)應(yīng)該理解人的要求,甚至于糾正人的錯(cuò)誤,智能化的界面也是未來嵌入式GUI的一個(gè)重要方向。支持高的輸入帶寬,快速大批量地輸入信息以及對語音、圖像、姿勢等的輸入和理解也是今后的發(fā)展方向。該設(shè)備采用VxWorks作為其操作系統(tǒng),而本課題的目的在于選擇合適的開發(fā)方案,在VxWorks環(huán)境下設(shè)計(jì)與開發(fā)一套友好的圖形用戶界面,能夠滿足在顯示器上進(jìn)行復(fù)雜和有實(shí)時(shí)性要求的圖形信息、參數(shù)信息以及狀態(tài)信息的顯示,該系統(tǒng)另一個(gè)重要的技術(shù)要求是能提供對3D模塊的支持,這就對研發(fā)人員提出了很大的挑戰(zhàn)。最終,我們選用OpenGL開發(fā)我們的圖形界面,主要原因分析如下:第一:獨(dú)立性和無關(guān)性。第二:靈活性和通用性。但是,通過一些轉(zhuǎn)換程序,可以很方便地將AutoCAD、3DS等3D圖形設(shè)計(jì)軟件制作的DFX和3DS模型文件轉(zhuǎn)換成OpenGL的頂點(diǎn)數(shù)組。第三:高效性。另外,OpenGL利用顯示列表概念引入了PHIGS中的層次概念,不需要包括復(fù)雜的預(yù)定義對象,設(shè)計(jì)者只需調(diào)用OpenGL的幾個(gè)簡單幾何單元,即可建立所要求的模型,因而深得許多專業(yè)人員的喜愛。 論文結(jié)構(gòu)本文詳細(xì)分析了國內(nèi)外嵌入式GUI系統(tǒng)的發(fā)展現(xiàn)狀,特別VxWorks系統(tǒng)下支持3D建模的嵌入式GUI系統(tǒng)的特點(diǎn)。而Mesa3D圖形庫則是目前為止對OpenGL標(biāo)準(zhǔn)最完整的一個(gè)實(shí)現(xiàn),本論文的一個(gè)重要的工作就是將Mesa3D移植到VxWorks系統(tǒng),移植成功后,我們將結(jié)合UGL圖形庫為系統(tǒng)構(gòu)建一個(gè)簡單的、具有最基本功能的用戶圖形界面。對嵌入式系統(tǒng)及其圖形用戶界面進(jìn)行介紹。第二章:VxWorks操作系統(tǒng)及媒體庫WindML。第三章:OpenGL/Mesa及其在VxWorks下的移植。然后實(shí)現(xiàn)了本課題的兩個(gè)主要任務(wù):移植OpenGL/Mesa到VxWorks系統(tǒng)中,利用虛擬機(jī)搭建圖形開發(fā)環(huán)境。介紹了本課題的另一個(gè)主要的任務(wù)——設(shè)計(jì)并實(shí)現(xiàn)一個(gè)以消息驅(qū)動(dòng)機(jī)制為核心的、具有中文顯示功能、能創(chuàng)建和顯示窗口及常用控件、支持3D功能的圖形用戶界面系統(tǒng)。介紹了本GUI系統(tǒng)在實(shí)際工程中的應(yīng)用情況及顯示效果,驗(yàn)證了其普通2D圖形界面和3D圖形顯示的性能。VxWorks的出品公司美國風(fēng)河公司組建于1981年,是一個(gè)專門從實(shí)時(shí)操作系統(tǒng)開發(fā)與生產(chǎn)的軟件公司,該公司在實(shí)時(shí)操作系統(tǒng)領(lǐng)域被世界公認(rèn)是最具有領(lǐng)導(dǎo)作用的公司。目前,VxWorks得到了許多軟硬件廠家的支持,這些第三方軟硬件廠家提供豐富的VxWorks的擴(kuò)展組件。VxWorks操作系統(tǒng)是現(xiàn)在所有獨(dú)立于處理器的實(shí)時(shí)系統(tǒng)中最具特色的操作系統(tǒng)之一。支持多種硬件環(huán)境也是VxWorks得以流行的重要原因。該內(nèi)核具有任務(wù)間切換時(shí)間短、中斷延遲小、網(wǎng)絡(luò)流量大等特點(diǎn),與其他嵌入式實(shí)時(shí)操作系統(tǒng)相比具有一定的優(yōu)勢。VxWorks只占用了很小的存儲(chǔ)空間,并可高度裁減,保證了系統(tǒng)能以較高的效率運(yùn)行。VxWorks支持應(yīng)用程序的動(dòng)態(tài)鏈接和動(dòng)態(tài)下載,使開發(fā)者省去了每次調(diào)試都將應(yīng)用程序與操作系統(tǒng)內(nèi)核進(jìn)行鏈接和下載的步驟,縮短了編輯調(diào)試的周期。良好的兼容性,使其在不同運(yùn)行環(huán)境間可以方便的移植,從而使用戶在開發(fā)和培訓(xùn)方面所做的工作得到保護(hù),減少了開發(fā)周期和經(jīng)費(fèi)。VxWorks的TCP/,在實(shí)時(shí)性方面有較大提高。VxWorks還是第一個(gè)通過Windows NT測試的可以在Windows NT平臺(tái)進(jìn)行開發(fā)和仿真的嵌入式實(shí)時(shí)操作系統(tǒng)。其中,本課題主要用到的功能是任務(wù)管理、任務(wù)間通信和同步,下面將重點(diǎn)對這兩方面內(nèi)容進(jìn)行描述。從表面上來看,多個(gè)任務(wù)正在同時(shí)執(zhí)行,實(shí)際上,系統(tǒng)內(nèi)核根據(jù)某一調(diào)度策略讓它們交替運(yùn)行。TCB用來描述一個(gè)任務(wù),每一任務(wù)都與一個(gè)TCB關(guān)聯(lián)。調(diào)度器在任務(wù)最初被激活時(shí)以及從休眠態(tài)重新被激活時(shí),要用到這些信息。任務(wù)的上下文就是當(dāng)一個(gè)執(zhí)行中的任務(wù)被停止時(shí),所要保存的所有信息。嵌入實(shí)時(shí)系統(tǒng)的一個(gè)任務(wù)可有多種狀態(tài),其中最基本的狀態(tài)有四種:就緒態(tài):任務(wù)等待系統(tǒng)分配CPU資源;懸置態(tài):任務(wù)需等待某些不可利用的資源而被阻塞;休眠態(tài):如果系統(tǒng)不需要某一個(gè)任務(wù)工作,則這個(gè)任務(wù)處于休眠狀態(tài);延遲態(tài):任務(wù)被延遲時(shí)所處狀態(tài)。內(nèi)核維護(hù)每個(gè)任務(wù)的當(dāng)前狀態(tài)。任務(wù)被創(chuàng)建以后進(jìn)入掛起態(tài),需要通過特定的操作使被創(chuàng)建的任務(wù)進(jìn)入就緒態(tài),這一操作執(zhí)行速度很快,使應(yīng)用程序能夠提前創(chuàng)建任務(wù),并以一種快捷的方式激活該任務(wù)。Wind內(nèi)核采用基于優(yōu)先級(jí)的搶占式調(diào)度法作為它的缺省策略,同時(shí)它也提供了輪轉(zhuǎn)調(diào)度法。優(yōu)先級(jí)0為最高優(yōu)先級(jí),優(yōu)先級(jí)255為最低。優(yōu)先級(jí)也可以是動(dòng)態(tài)的,它們能在系統(tǒng)運(yùn)行時(shí)被用戶使用系統(tǒng)調(diào)用taskPrioritySet()來加以改變,但不能在運(yùn)行時(shí)被操作系統(tǒng)所改變。這種調(diào)度方法為每個(gè)任務(wù)指定不同的優(yōu)先級(jí)。當(dāng)更高優(yōu)先級(jí)的任務(wù)由就緒態(tài)進(jìn)入運(yùn)行時(shí),系統(tǒng)內(nèi)核立即保存當(dāng)前任務(wù)的上下文,切換到更高優(yōu)先級(jí)的任務(wù)。當(dāng)一個(gè)任務(wù)調(diào)用taskLock()使調(diào)度器失效,任務(wù)運(yùn)行時(shí)沒有基于優(yōu)先級(jí)的搶占發(fā)生。當(dāng)設(shè)置搶占禁止的任務(wù)解除阻塞,再次開始運(yùn)行時(shí),搶占又被禁止。l 任務(wù)通信和同步機(jī)制VxWorks支持各種任務(wù)間通信機(jī)制,提供了多樣的任務(wù)間通信方式,主要有如下幾種:1)共享內(nèi)存主要是數(shù)據(jù)的共享,任務(wù)間通信的最簡單的方法,即相關(guān)的各個(gè)任務(wù)分享屬于它們的地址空間的同一內(nèi)存區(qū)域。全局變量、線性隊(duì)列、環(huán)形隊(duì)列、鏈表、指針都可被運(yùn)行在不同上下文的代碼所指向。針對不同類型的問題,有以下三種信號(hào)量:二進(jìn)制信號(hào)量,使用最快捷、最廣泛,主要用于同步或互斥;互斥信號(hào)量,主要用于優(yōu)先級(jí)繼承、安全刪除和回溯;計(jì)數(shù)器信號(hào)量。3)消息隊(duì)列和管道消息機(jī)制使用一個(gè)被各有關(guān)進(jìn)程共享的消息隊(duì)列,任務(wù)之間經(jīng)由這個(gè)消息隊(duì)列發(fā)送和接收消息。任務(wù)能調(diào)用標(biāo)準(zhǔn)的I/O函數(shù)打開、讀出、寫入管道。象I/O設(shè)備一樣,管道有一個(gè)消息隊(duì)列所沒有的優(yōu)勢——調(diào)用select(),任務(wù)等待一系列I/O設(shè)備上的數(shù)據(jù)。網(wǎng)絡(luò)是VxWorks系統(tǒng)之間及與其它系統(tǒng)間通信的主要途徑。 VxWorks集成開發(fā)環(huán)境Tornado Tornado介紹[13][14]嵌入式軟件開發(fā)是一種比較復(fù)雜的勞動(dòng),操作系統(tǒng)性能再好,僅僅依靠人工編程調(diào)試,很難發(fā)揮它的功能,要設(shè)計(jì)出可靠、高效的嵌入式系統(tǒng),必須要有與之相適應(yīng)的開發(fā)工具。使用Tornado及其開發(fā)調(diào)試工具,可以輕松地編譯生成BootRom,創(chuàng)建并配置VxWorks,編輯、編譯、下載和調(diào)試代碼,隨時(shí)查看目標(biāo)機(jī)的系統(tǒng)資源,幫助用戶縮短開發(fā)的周期。Tornado支持動(dòng)態(tài)鏈接與加載,允許開發(fā)人員分別將目標(biāo)模塊加載到目標(biāo)系統(tǒng)中。這樣,編輯——測試——調(diào)試的周期就大為縮短,而且所有的模塊都可以共享,主機(jī)上的應(yīng)用程序模塊也不需要重新鏈接,所以,加載目標(biāo)模塊到運(yùn)行中的VxWorks目標(biāo)系統(tǒng)中以達(dá)到調(diào)試和重新配置成為可能。交叉開發(fā)環(huán)境的建立需要宿主機(jī)和目標(biāo)機(jī)共同完成,通常稱所用的普通PC機(jī)為宿主機(jī)(Host),而所開發(fā)的目標(biāo)設(shè)備為目標(biāo)機(jī)(Target)。要建立VxWorks的交叉開發(fā)環(huán)境,就必須在目標(biāo)機(jī)上運(yùn)行起VxWorks嵌入式實(shí)時(shí)操作系統(tǒng)。引導(dǎo)文件bootrom的作用類似于PC機(jī)的BIOS,它可以存放在軟盤、目標(biāo)機(jī)硬盤或目標(biāo)機(jī)flash盤上,由Vxld程序加載到內(nèi)存。VxWorks操作系統(tǒng)是以映像的形式存放在bootrom所在的軟盤、目標(biāo)機(jī)硬盤或目標(biāo)機(jī)flash盤上。VxWorks是應(yīng)用程序和目標(biāo)代理程序(調(diào)試環(huán)境的目標(biāo)機(jī)部分)運(yùn)行的軟件平臺(tái)。本項(xiàng)目中要根據(jù)目標(biāo)機(jī)的硬件配置,來生成引導(dǎo)文件bootrom和系統(tǒng)映像文件VxWorks。為了解決這些問題,Tornado使用了Target Server Agent模式。Tornado還是一個(gè)開放的可擴(kuò)展環(huán)境,很容易集成第三方的開發(fā)工具,也可以按自己習(xí)慣定制開發(fā)環(huán)境。圖形化的交叉調(diào)試器這是一個(gè)遠(yuǎn)程的源代碼集成調(diào)試器,支持任務(wù)級(jí)和系統(tǒng)級(jí)調(diào)試,支持混合源代碼和匯編代碼顯示,支持多目標(biāo)機(jī)同時(shí)調(diào)試。工程配置工具(Project Facility/Configuration)這是一個(gè)功能強(qiáng)大的圖形化工具,可以用來對VxWorks操作系統(tǒng)及其組件進(jìn)行自動(dòng)配置。工程工具簡化了VxWorks應(yīng)用程序的組織、配置和建立工作,使工程管理和VxWorks配置的許多方面實(shí)現(xiàn)自動(dòng)化,并且單獨(dú)的組件可以各自獨(dú)立開發(fā),然后由小組的其他成員共享和重用。VxSim仿真器作為核心工具包含在各個(gè)軟件包中,因而允許開發(fā)者可以在沒有BSP、操作系統(tǒng)配置、目標(biāo)機(jī)硬件的情況下,使用Tornado迅速啟動(dòng)開發(fā)工作。這種系統(tǒng)級(jí)的診斷分析工具可以與VxSim一起使用。交叉編譯器進(jìn)行了許多優(yōu)化,允許開發(fā)者能夠迅速產(chǎn)生高效而簡潔的代碼。目標(biāo)機(jī)系統(tǒng)狀態(tài)測覽器(Browser)Tornado的目標(biāo)機(jī)系統(tǒng)測覽器Browser是Tornado shell的一個(gè)圖形化組件,目標(biāo)機(jī)系統(tǒng)狀態(tài)創(chuàng)覽器Browesr的主窗口提供目標(biāo)系統(tǒng)的全面狀態(tài)總結(jié),也允許開發(fā)者監(jiān)視獨(dú)立的目標(biāo)系統(tǒng)對象:任務(wù)、信號(hào)、消息隊(duì)列、內(nèi)存分區(qū)、定時(shí)器、模塊、變量、堆棧等。命令行執(zhí)行工縣(WindSh)Tornado的命令行執(zhí)行工具WindSh是Tornado所獨(dú)有的功能強(qiáng)大的命令行解釋器,可以直接解釋執(zhí)行C語言表達(dá)式、調(diào)用目標(biāo)機(jī)上的C函數(shù)、訪問系統(tǒng)符號(hào)表中登記的變量。主要的調(diào)試功能有:下載軟件模塊;刪除軟件模塊;創(chuàng)建并發(fā)起一個(gè)任務(wù);刪除任務(wù);設(shè)置斷點(diǎn);刪除斷點(diǎn);運(yùn)行、單步、繼續(xù)執(zhí)行程序;查看內(nèi)存、寄存器、變量;修改內(nèi)存、寄存器、變量;查看任務(wù)列表、內(nèi)存使用情況、CPU利用率;查看特定的對象(任務(wù)、信號(hào)量、消息隊(duì)列、內(nèi)存分區(qū)等);復(fù)位目標(biāo)機(jī)等等。WindML即Wind Media Library(Wind多媒體庫),是VxWoks庫的一部分,風(fēng)河公司設(shè)計(jì)它主要是為了是用來提供基本的圖形、視頻和聲頻技術(shù)以及為用戶提供一個(gè)開發(fā)標(biāo)準(zhǔn)用戶設(shè)備驅(qū)動(dòng)程序的框架。其中二維圖形API是最常用的部分,包括基本畫圖操作(畫線、矩形、橢圓、多邊形、點(diǎn))、選擇字體輸出文本、位圖、光標(biāo)管理,批量畫圖操作、圖形上下文、色彩管理、雙緩沖。區(qū)域和窗口管理可以在界面上定義一個(gè)區(qū)域或多線程之間共享的窗口以供畫圖操作。資源管理是指資源的建立、控制和刪除。正是由于WindML提供了這樣基礎(chǔ)的圖形接口,因此很好地研究它是在VxWorks下進(jìn)行復(fù)雜的圖形界面開發(fā)不可缺少的臺(tái)階。SDK組件用于為各種平臺(tái)開發(fā)與硬件無關(guān)的應(yīng)用。DDK用于開發(fā)驅(qū)動(dòng)程序,它提供了一整套可用于通用硬件配置、軟件框架的參考驅(qū)動(dòng)程序,以及支持開發(fā)人員從提供的“通用”代碼快速創(chuàng)建新驅(qū)動(dòng)程序的API。 WindML事件服務(wù)機(jī)制事件服務(wù)機(jī)制[17]的建立在整個(gè)WindML界面開發(fā)過程中占有很重要的地位。通過使用uglInitialize,一個(gè)事件服務(wù)機(jī)制就被創(chuàng)建了。每個(gè)事件服務(wù)被創(chuàng)建時(shí)就產(chǎn)生一個(gè)輸入任務(wù),這個(gè)任務(wù)阻塞在與這個(gè)事件服務(wù)關(guān)聯(lián)的輸入設(shè)備的輸入上,每個(gè)事件服務(wù)可以和多個(gè)輸入設(shè)備關(guān)聯(lián),使用select函數(shù)可以同時(shí)監(jiān)測多個(gè)設(shè)備的數(shù)據(jù)。事件的處理可以單獨(dú)作為一個(gè)任務(wù),這個(gè)任務(wù)具有較低的優(yōu)先級(jí),它讀取應(yīng)用程序的事件隊(duì)列,然后處理或通知其他的任務(wù)做出反應(yīng)。具體在程序的實(shí)現(xiàn)中,通常會(huì)使用一個(gè)無限循環(huán)來接收事件的輸入。2)文本顯示與字體管理:文本可以用不同的字體來表現(xiàn)。如本系統(tǒng)中設(shè)置的英文字體和中文宋體的設(shè)置如下:uglFontFindString(fontDrvId,familyName=Courier ,amp。if((fontl=uglFontCreate(fontDrvId,amp。uglDeinitialize()。} /*英文*/uglFontFindString(fontDrvId,familyName==Song,amp。if((fontl=uglFontCreate(fontDrvId,amp。uglDeinitialize()。} /*中文*/3)位圖管理:WindML提供大量的位圖管理API,提供了彩色、單色、透明的位圖以及設(shè)備獨(dú)立/非獨(dú)立的位圖支持。4)光標(biāo)管理:光標(biāo)是一個(gè)應(yīng)用程序創(chuàng)造的確定的位圖圖像,它被指向設(shè)備定位屏幕上。5)批處理繪圖:通過uglBatchStart()、ugBatchEnd()函數(shù)來支持繪圖動(dòng)作的批處理功能。圖形上下文(GC)是一個(gè)重要的數(shù)據(jù)結(jié)構(gòu),它能夠保存與當(dāng)前繪圖工作相關(guān)的信息。大部分繪圖操作只有在具有有效的GC并確定相關(guān)的繪圖特性之后才可以完成。保存在GC中的繪圖特性包括:繪圖原語的信息(如前景色、背景色、線的類型與寬度、顏色)、默認(rèn)的位圖、設(shè)定的字體等等,GC是直接與圖形或顯示設(shè)備ID相聯(lián)系的,應(yīng)用程序可在一個(gè)圖形設(shè)備上創(chuàng)建多個(gè)GC。其顏色管理函數(shù)的使應(yīng)用程序的開發(fā)易于移植,即單個(gè)應(yīng)用程序可運(yùn)行在多個(gè)顯示模式或顯示設(shè)備。每個(gè)索引向量指明一個(gè)顏色查詢標(biāo)(CLUT)的入口。在本系統(tǒng)中的位圖的顯示就是使用的直接顏色來進(jìn)行顏色管理。頁面或緩沖通常與實(shí)際的物理顯示器屏幕具有相同尺寸。隨后發(fā)生的繪圖操作都將直接作用于當(dāng)前的活動(dòng)繪圖頁上。主要用到的API包括:完成UGL的初始化uglInitialize();圖形上下文的創(chuàng)建uglGcCreate()等。圖形繪制函數(shù)進(jìn)行區(qū)域和窗口的繪制,并在上面顯示二維圖形和文字。結(jié)束程序用來在退出程序時(shí)對占用的資源進(jìn)行釋放。第三、編寫消息循環(huán)函數(shù)、消息響應(yīng)函數(shù)。消息響應(yīng)函數(shù)對收得的消息進(jìn)行分析判斷,并進(jìn)行相應(yīng)的
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1