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

正文內(nèi)容

基于opengl的vxworks圖形用戶界面開發(fā)畢業(yè)論文(編輯修改稿)

2025-07-15 16:20 本頁面
 

【文章內(nèi)容簡介】 的最簡單的方法,即相關(guān)的各個(gè)任務(wù)分享屬于它們的地址空間的同一內(nèi)存區(qū)域。所有任務(wù)都存在于單一的線性地址空間,任務(wù)間共享數(shù)據(jù)。全局變量、線性隊(duì)列、環(huán)形隊(duì)列、鏈表、指針都可被運(yùn)行在不同上下文的代碼所指向。2)信號量VxWorks信號量提供最快速的任務(wù)間通信機(jī)制,它主要用于解決任務(wù)間的互斥和同步。針對不同類型的問題,有以下三種信號量:二進(jìn)制信號量,使用最快捷、最廣泛,主要用于同步或互斥;互斥信號量,主要用于優(yōu)先級繼承、安全刪除和回溯;計(jì)數(shù)器信號量。VxWorks還提供POSIX信號量和多處理器上信號量的應(yīng)用。3)消息隊(duì)列和管道消息機(jī)制使用一個(gè)被各有關(guān)進(jìn)程共享的消息隊(duì)列,任務(wù)之間經(jīng)由這個(gè)消息隊(duì)列發(fā)送和接收消息。 任務(wù)間全雙工信息傳送管道用VxWorks的I/O系統(tǒng)提供一種靈活的消息傳送機(jī)制,它受驅(qū)動(dòng)器pipeDrv(VxWorks所提供)管理的虛擬I/O設(shè)備。任務(wù)能調(diào)用標(biāo)準(zhǔn)的I/O函數(shù)打開、讀出、寫入管道。當(dāng)任務(wù)試圖從一個(gè)空的管道中讀取數(shù)據(jù),或向一個(gè)滿的管道中寫入數(shù)據(jù)時(shí),任務(wù)被阻塞。象I/O設(shè)備一樣,管道有一個(gè)消息隊(duì)列所沒有的優(yōu)勢——調(diào)用select(),任務(wù)等待一系列I/O設(shè)備上的數(shù)據(jù)。4)Socket和遠(yuǎn)程過程調(diào)用主要用于網(wǎng)絡(luò)間任務(wù)消息傳送,是任務(wù)間透明的網(wǎng)絡(luò)通信。網(wǎng)絡(luò)是VxWorks系統(tǒng)之間及與其它系統(tǒng)間通信的主要途徑。 TCP/IP兼容的網(wǎng)絡(luò)協(xié)議堆棧。 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ā)VxWorks應(yīng)用系統(tǒng)提供的界面友好的圖形化的集成開發(fā)環(huán)境。使用Tornado及其開發(fā)調(diào)試工具,可以輕松地編譯生成BootRom,創(chuàng)建并配置VxWorks,編輯、編譯、下載和調(diào)試代碼,隨時(shí)查看目標(biāo)機(jī)的系統(tǒng)資源,幫助用戶縮短開發(fā)的周期。使用Tornado IDE,可以大大縮短嵌入式系統(tǒng)開發(fā)周期。Tornado支持動(dòng)態(tài)鏈接與加載,允許開發(fā)人員分別將目標(biāo)模塊加載到目標(biāo)系統(tǒng)中。這種動(dòng)態(tài)的鏈接與加載功能是Tornado系統(tǒng)的核心功能,可以使開發(fā)人員省去很多的開發(fā)步驟。這樣,編輯——測試——調(diào)試的周期就大為縮短,而且所有的模塊都可以共享,主機(jī)上的應(yīng)用程序模塊也不需要重新鏈接,所以,加載目標(biāo)模塊到運(yùn)行中的VxWorks目標(biāo)系統(tǒng)中以達(dá)到調(diào)試和重新配置成為可能。 交叉編譯環(huán)境Tornado環(huán)境采用主機(jī)——目標(biāo)機(jī)交叉開發(fā)模型[15]。交叉開發(fā)環(huán)境的建立需要宿主機(jī)和目標(biāo)機(jī)共同完成,通常稱所用的普通PC機(jī)為宿主機(jī)(Host),而所開發(fā)的目標(biāo)設(shè)備為目標(biāo)機(jī)(Target)。宿主機(jī)上運(yùn)行VxWorks的開發(fā)環(huán)境Tornado,編譯生成可以在目標(biāo)機(jī)上運(yùn)行的代碼映像,交叉調(diào)試器就是通過宿主機(jī)和目標(biāo)機(jī)之間的耦合實(shí)現(xiàn)前后臺調(diào)試。要建立VxWorks的交叉開發(fā)環(huán)境,就必須在目標(biāo)機(jī)上運(yùn)行起VxWorks嵌入式實(shí)時(shí)操作系統(tǒng)。目標(biāo)機(jī)運(yùn)行的程序包括兩部分:引導(dǎo)文件bootrom和系統(tǒng)映像文件VxWorks。引導(dǎo)文件bootrom的作用類似于PC機(jī)的BIOS,它可以存放在軟盤、目標(biāo)機(jī)硬盤或目標(biāo)機(jī)flash盤上,由Vxld程序加載到內(nèi)存。bootrom的作用是初始化目標(biāo)機(jī),建立VxWorks所需的運(yùn)行環(huán)境,并從引導(dǎo)設(shè)備上加載VxWorks操作系統(tǒng)映像,最后將CPU的控制權(quán)移交給VxWorks操作系統(tǒng)。VxWorks操作系統(tǒng)是以映像的形式存放在bootrom所在的軟盤、目標(biāo)機(jī)硬盤或目標(biāo)機(jī)flash盤上。如果是通過網(wǎng)絡(luò)來建立交叉開發(fā)環(huán)境,其映像文件還可以存放在宿主機(jī)硬盤上。VxWorks是應(yīng)用程序和目標(biāo)代理程序(調(diào)試環(huán)境的目標(biāo)機(jī)部分)運(yùn)行的軟件平臺。Bootrom和VxWorks映像文件可以利用Tornado提供的工具,按照配置文件的有關(guān)設(shè)置自動(dòng)生成。本項(xiàng)目中要根據(jù)目標(biāo)機(jī)的硬件配置,來生成引導(dǎo)文件bootrom和系統(tǒng)映像文件VxWorks。交叉開發(fā)環(huán)境一般存在很多問題,如有限的調(diào)試通信通道,有限的目標(biāo)機(jī)資源等。為了解決這些問題,Tornado使用了Target Server Agent模式。這種模式使所有主機(jī)工具可以用于各種目標(biāo)機(jī),而不必考慮目標(biāo)機(jī)的資源和通信機(jī)制,這種模式還提供了Tornado圖形界面的統(tǒng)一性和廣泛適用性。Tornado還是一個(gè)開放的可擴(kuò)展環(huán)境,很容易集成第三方的開發(fā)工具,也可以按自己習(xí)慣定制開發(fā)環(huán)境。 Tornado交叉編譯環(huán)境 Tornado的組成Tornado軟件工具包的核心工具主要包括以下幾種:調(diào)試器CrossWind、命令行界面WindShell、資源查看器Browser、模擬器Simulator等工具。圖形化的交叉調(diào)試器這是一個(gè)遠(yuǎn)程的源代碼集成調(diào)試器,支持任務(wù)級和系統(tǒng)級調(diào)試,支持混合源代碼和匯編代碼顯示,支持多目標(biāo)機(jī)同時(shí)調(diào)試。開發(fā)人員可以在目標(biāo)運(yùn)行系統(tǒng)上產(chǎn)生和調(diào)試任務(wù),也可以將調(diào)試器和已經(jīng)運(yùn)行的任務(wù)鏈接在一起,這些任務(wù)可以是源自應(yīng)用程序也可以是來自任務(wù)級調(diào)試環(huán)境。工程配置工具(Project Facility/Configuration)這是一個(gè)功能強(qiáng)大的圖形化工具,可以用來對VxWorks操作系統(tǒng)及其組件進(jìn)行自動(dòng)配置。自動(dòng)的依賴性分析、代碼容量計(jì)算和自動(dòng)裁剪大大縮短了開發(fā)周期。工程工具簡化了VxWorks應(yīng)用程序的組織、配置和建立工作,使工程管理和VxWorks配置的許多方面實(shí)現(xiàn)自動(dòng)化,并且單獨(dú)的組件可以各自獨(dú)立開發(fā),然后由小組的其他成員共享和重用。集成仿真器(Integrated Simulator)這種集成仿真器VxSim支持CrossWind、WindView和Browser,提供與真實(shí)目標(biāo)機(jī)一致的調(diào)試和仿真運(yùn)行環(huán)境。VxSim仿真器作為核心工具包含在各個(gè)軟件包中,因而允許開發(fā)者可以在沒有BSP、操作系統(tǒng)配置、目標(biāo)機(jī)硬件的情況下,使用Tornado迅速啟動(dòng)開發(fā)工作。診斷分析工具(WindView for the Integrated Simulator)WindView是一個(gè)圖形化的動(dòng)態(tài)診斷和分析工具,主要是向開發(fā)者提供目標(biāo)機(jī)硬件上實(shí)際運(yùn)行的應(yīng)用程序的許多詳細(xì)情況。這種系統(tǒng)級的診斷分析工具可以與VxSim一起使用。C/C++編譯環(huán)境(C/C++ Compilation Environment)Tornado提供了交叉編譯器、iostreams和一系列的工具來支持C語言和C++語言。交叉編譯器進(jìn)行了許多優(yōu)化,允許開發(fā)者能夠迅速產(chǎn)生高效而簡潔的代碼。主機(jī)目標(biāo)機(jī)連接配置器(Launcher)Tornado的主機(jī)目標(biāo)機(jī)連接配置器Launcher允許開發(fā)者輕松地設(shè)置和配置一定的開發(fā)環(huán)境,也提供對開發(fā)環(huá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ù)、信號、消息隊(duì)列、內(nèi)存分區(qū)、定時(shí)器、模塊、變量、堆棧等。這些顯示信息根據(jù)開發(fā)者的選擇進(jìn)行周期性或條件性更新。命令行執(zhí)行工縣(WindSh)Tornado的命令行執(zhí)行工具WindSh是Tornado所獨(dú)有的功能強(qiáng)大的命令行解釋器,可以直接解釋執(zhí)行C語言表達(dá)式、調(diào)用目標(biāo)機(jī)上的C函數(shù)、訪問系統(tǒng)符號表中登記的變量。WindSh不僅可以解釋幾乎所有的C語言表達(dá)式,而且可以實(shí)現(xiàn)所有的調(dià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ù)、信號量、消息隊(duì)列、內(nèi)存分區(qū)等);復(fù)位目標(biāo)機(jī)等等。 WindML媒體庫 WindML概述[16]利用WindML進(jìn)行圖形界面開發(fā)的研究是本課題一個(gè)重要的部分。WindML即Wind Media Library(Wind多媒體庫),是VxWoks庫的一部分,風(fēng)河公司設(shè)計(jì)它主要是為了是用來提供基本的圖形、視頻和聲頻技術(shù)以及為用戶提供一個(gè)開發(fā)標(biāo)準(zhǔn)用戶設(shè)備驅(qū)動(dòng)程序的框架。WindML的主要功能有二維圖形API、事件服務(wù)、區(qū)域和窗口管理、多媒體、資源管理。其中二維圖形API是最常用的部分,包括基本畫圖操作(畫線、矩形、橢圓、多邊形、點(diǎn))、選擇字體輸出文本、位圖、光標(biāo)管理,批量畫圖操作、圖形上下文、色彩管理、雙緩沖。事件服務(wù)程序是用來處理輸入設(shè)備的輸入請求的。區(qū)域和窗口管理可以在界面上定義一個(gè)區(qū)域或多線程之間共享的窗口以供畫圖操作。多媒體支持NTSC、PAL、SECAM等視頻制式及混頻器設(shè)備的音頻輸出。資源管理是指資源的建立、控制和刪除。并且,WindML提供了一系列工具用來處理輸入設(shè)備和過程事件。正是由于WindML提供了這樣基礎(chǔ)的圖形接口,因此很好地研究它是在VxWorks下進(jìn)行復(fù)雜的圖形界面開發(fā)不可缺少的臺階。應(yīng)用程序圖形、視頻、音頻、事件服務(wù)VxWorks輸出驅(qū)動(dòng)輸入驅(qū)動(dòng)…輸出設(shè)備(例如顯示器)驅(qū)動(dòng)(例如鼠標(biāo))SDKDDK(與硬件相關(guān)的層)硬件 WindML的層次結(jié)構(gòu)WindML包括兩個(gè)組件:軟件開發(fā)包(Software Development Kit,SDK)和驅(qū)動(dòng)程序開發(fā)包(Drive Development Kit,DDK)。SDK組件用于為各種平臺開發(fā)與硬件無關(guān)的應(yīng)用。它在圖形、輸出處理、多媒體、字體和內(nèi)存管理方面提供了完整的API。DDK用于開發(fā)驅(qū)動(dòng)程序,它提供了一整套可用于通用硬件配置、軟件框架的參考驅(qū)動(dòng)程序,以及支持開發(fā)人員從提供的“通用”代碼快速創(chuàng)建新驅(qū)動(dòng)程序的API。綜上所述,WinML是本課題的GUI系統(tǒng)設(shè)計(jì)的基礎(chǔ),正是由于WindML提供了眾多具有強(qiáng)大功能的接口,才使得在完成GUI設(shè)計(jì)的過程中,大大減少了工作量。 WindML事件服務(wù)機(jī)制事件服務(wù)機(jī)制[17]的建立在整個(gè)WindML界面開發(fā)過程中占有很重要的地位。WindML組件把鍵盤和鼠標(biāo)的輸入作為事件來處理,整個(gè)的處理過程稱為事件服務(wù)。通過使用uglInitialize,一個(gè)事件服務(wù)機(jī)制就被創(chuàng)建了。它主要完成以下三個(gè)任務(wù): 從輸入設(shè)備中得到原始數(shù)據(jù),并把它封裝成WindML事件;為了做進(jìn)一步的處理(比如鼠標(biāo)移動(dòng)、事件路由等),它可以將WindML事件傳遞給事件處理部分;它可以傳遞WindML事件到應(yīng)用程序隊(duì)列。每個(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āng)鼠標(biāo)和鍵盤有輸入時(shí),輸入任務(wù)被喚醒,它調(diào)用輸入設(shè)備對應(yīng)的設(shè)備驅(qū)動(dòng)讀取設(shè)備產(chǎn)生的原始數(shù)據(jù),將數(shù)據(jù)格式化并封裝成WindML事件,然后將事件傳遞給事件處理部分,事件處理調(diào)用應(yīng)用程序安裝的回調(diào)函數(shù)來處理事件,處理完后將事件放在應(yīng)用程序的事件隊(duì)列中。事件的處理可以單獨(dú)作為一個(gè)任務(wù),這個(gè)任務(wù)具有較低的優(yōu)先級,它讀取應(yīng)用程序的事件隊(duì)列,然后處理或通知其他的任務(wù)做出反應(yīng)。鍵盤和鼠標(biāo)的使用不需要額外的初始化,只要在WindML配置時(shí)包括普通鍵盤和鼠標(biāo)即可,輸入可以使用ANSIC的標(biāo)準(zhǔn)I/O庫函數(shù),也可以使用事件處理實(shí)現(xiàn)更精確的控制。具體在程序的實(shí)現(xiàn)中,通常會使用一個(gè)無限循環(huán)來接收事件的輸入。 WindML2D圖形庫分析WindML2D圖形庫可以分為以下幾個(gè)方面[18]:1)繪圖原語:提供了基本的畫圖原語包知畫點(diǎn)、線uglLine()、矩形ug1Rectangle()、圓uglEllipse()、多邊形uglPlogon()。2)文本顯示與字體管理:文本可以用不同的字體來表現(xiàn)。用戶可以通過這些函數(shù)進(jìn)行字體管理,包括:應(yīng)用程序需要的字體、指定的字體等等,并利用這些字體進(jìn)行文本的顯示,然后字體顯示函數(shù)可以在顯示設(shè)備上顯示出對應(yīng)的文本信息。如本系統(tǒng)中設(shè)置的英文字體和中文宋體的設(shè)置如下:uglFontFindString(fontDrvId,familyName=Courier ,amp。fontDef)。if((fontl=uglFontCreate(fontDrvId,amp。fontDef)) = = UGL_NULL){printf( WindML:Font not found,Exiting.\n )。uglDeinitialize()。return。} /*英文*/uglFontFindString(fontDrvId,familyName==Song,amp。fontDef)。if((fontl=uglFontCreate(fontDrvId,amp。fontDef)) = = UGL_NULL){printf( WindML:Font not found,Exiting.\n )。uglDeinitialize()。return。} /*中文*/3)位圖管理:WindML提供大量的位圖管理API,提供了彩色、單色、透明的位圖以及設(shè)備獨(dú)立/非獨(dú)立的位圖支持。位圖是圖形應(yīng)用程序的重要部分,它占有大量的CPU資源與總線時(shí)間,因此在應(yīng)用程序開發(fā)過程中對它的應(yīng)用進(jìn)行適當(dāng)?shù)墓芾砗陀?jì)劃是非常有必要的,WindML的2D位圖API提供了靈活的位圖管理,可以使應(yīng)用程序在性能和便利中進(jìn)行平衡。4)光標(biāo)管理:光標(biāo)是一個(gè)應(yīng)用程序創(chuàng)造的確定的位圖圖像,它被指向設(shè)備定位屏幕上。在本系統(tǒng)里不須光標(biāo)使用,所以不作討論。5)批處理繪圖:通過uglBatchStart()、ugBatchEnd()函數(shù)來支持繪圖動(dòng)作的批處理功能。優(yōu)點(diǎn):可以確保繪圖動(dòng)作的連續(xù)性及完整性;減少屏幕的閃爍、有效利用系統(tǒng)的資源。圖形上下文(GC)是一個(gè)重要的數(shù)據(jù)結(jié)構(gòu),它能夠保存與當(dāng)前繪圖工作相關(guān)的信息。在任何繪圖操作開始前,都必須為某個(gè)指定的輸出設(shè)備建立GC。大部分繪圖操作只有在具有有效的GC并確定相關(guān)的繪圖特性之后才可以完成。Wind
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1