




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、代号分类号学号密级UDC编号 企业指导教师姓名职称学校指导教师姓名职称工程领域作者姓名二九年三月提交论文日期Based on OpenGLResearch On Graphical User Interface of VxWorks 基于OpenGL的VxWorks图形用户界面开发题(中、英文)目西安电子科技大学学位论文创新性声明秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而
2、使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切的法律责任。本人签名: 日期 西安电子科技大学关于论文使用授权的说明本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。(保密的论文在解密后遵守此规定)本学位论文属于保密,在
3、 年解密后适用本授权书。本人签名: 日期 导师签名: 日期 摘要图形用户界面(GUI)是人机交互技术的重要内容,它使用图形图像信息、直观的表达方式与用户交互,使软件系统的人机界面简洁、美观、方便好用,更加人性化。目前GUI已经大量应用在嵌入式领域,但是大多数嵌入式GUI系统提供给用户的显示平面从逻辑设计上讲是二维的,最大的缺点在于反映信息量小,在对真实场景进行模拟显示的时候,无法提供真实的场景数据。随着嵌入式系统硬件功能的不断提高,如何开发一款支持3D建模的嵌入式GUI已成为一个迫切的话题。本课题来源于实习工作中的“某星载仪表控制计算机”项目,该计算机采用VxWorks作为其操作系统,要求设计
4、出人性化的人机界面,可以实时显示系统的相关参数数据、图形信息等,并提供对3D模块的支持,能够进行3D图形的绘制和显示。本文经过详细分析和设计,实现了将OpenGL/Mesa3D图形库移植到VxWorks系统,并结合VxWorks内核及其多媒体库WindML的相关接口,开发了以消息驱动为核心、具有基本窗口管理功能和仿Windows控件效果、支持中文界面和3D画面绘制显示的GUI系统。从工程应用和测试的效果来看,该GUI系统基本实现了预期功能。关键词:嵌入式系统 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图形用户界面开发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 嵌入式实时系统 PAGEREF _Toc224484677 h 1 HYPERLINK l _Toc224484678 1.1.2 图形用户界面概述 PAGEREF _Toc224484678 h 2 HYPERLINK l _Toc224484679 1.2 国内外研究现状 PAGEREF _Toc224484679 h 4 HYPERLINK l _Toc224484680 1.2.1 嵌入式GUI的现状 PAGEREF _Toc224484680 h 4 HYPERLINK l _Toc224484681 1.2.2 基
12、于VxWorks的图形解决方案 PAGEREF _Toc224484681 h 5 HYPERLINK l _Toc224484682 1.2.3 嵌入式GUI的发展趋势 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操作系统及媒体库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集成开发环境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 交叉编译环境 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程序开发流程 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开发库 PAGEREF _Toc224484701 h 23 HYPERLINK l _Toc224484702 3.1.2 OpenGL开发库结构
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 重要数据结构和函数的引入 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 搭建虚拟开发环境 PAGEREF _Toc224484709 h 33 HYPERLINK l _Toc224484710 3.4 本章小结 PAGEREF _Toc224484710 h 35 HYPERLINK l _Toc224484711 第四章 VxWorks
19、系统GUI关键技术及实现 PAGEREF _Toc224484711 h 37 HYPERLINK l _Toc224484712 4.1 消息驱动机制 PAGEREF _Toc224484712 h 37 HYPERLINK l _Toc224484713 4.1.1 消息驱动机制实现原理 PAGEREF _Toc224484713 h 37 HYPERLINK l _Toc224484714 4.1.2 消息检测任务 PAGEREF _Toc224484714 h 38 HYPERLINK l _Toc224484715 4.1.3 事件分发任务 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 具体的实现方案 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 嵌入式实时系统在计算机技术和信息技术高速发展的今天,很多计算机已经脱离了大型机和PC的概念,广泛应用的嵌入式计算机便是其中之一。嵌入式计算机或者叫嵌入式系统,源于20世纪60年代,其定义为1:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的,用来完成一种或多种特定功能的专用计算机系统。其具有软件代码小,高度自动化,响应速度快,是软硬件的紧密
25、结合体等特点。当前嵌入式系统呈现出巨大的市场需求,小到照相机、电冰箱、移动电话,大到舰船、汽车、卫星和火箭,涵盖了工业控制、武器系统、航空航天、消费电子等领域。工业控制、武器系统、航空航天等领域的多数嵌入式系统有一个共同的特性:对系统的响应时间有严格要求,这些系统也被称为实时系统。所谓实时,也就是“立即”“及时”的意思。在实时控制系统中,计算机通过特定的外围设备与被控对象发生联系,并对外来事件在限定的时间内做出反应。所以,其结果的正确性不仅与计算或控制的逻辑正确性有关,还与其时间特性有关。嵌入式实时操作系统(Embedded Real Time,RTOS)是实时系统的核心软件,它嵌入在目标代码
26、中,系统复位后首先执行,它负责在硬件基础之上,为应用软件建立一个功能更为强大的运行环境,用户的其他应用程序都建立在RTOS之上,从这个意义上而言,可以认为RTOS是一个虚拟机,它比底层硬件更容易编程。RTOS最关键的部分是实时多任务内核,它的基本功能包括任务管理、定时器管理、存储器管理、资源管理、事件管理、系统管理、消息管理、队列管理、信号量管理等,这些管理功能是通过内核服务函数形式交给用户调用的,也就是API。RTOS根据各个任务的优先级,合理地在不同任务之间分配CPU时间,从这个意义上而言,操作系统的作用是资源管理器。RTOS的引入,解决了嵌入式软件开发标准化的难题。随着嵌入式系统中软件比
27、重不断上升、应用程序越来越大,对开发人员、应用程序接口、程序档案的组织管理成为一个大的课题,引入RTOS相当于引入了一种新的管理模式。基于RTOS开发出的程序,具有较高的可移植性,实现90以上的设备独立,一些成熟的通用程序可以作为专家库函数产品推向社会。目前国内外主要的RTOS有:美国风河公司的VxWorks,微软的WinCE,3COM公司的Palm OS和嵌入式Linux。这些嵌入式操作系统各有各的特点。1) VxWorksVxWorks是美国Wind River System公司(WRS)推出的一个实时操作系统。VxWorks是专门为嵌入式而定制的,实时性非常好,其系统本身的开销很小,进程
28、调度、进程间通信、中断处理等系统公用程序精练而有效。VxWorks的内核及一些系统模块可以根据需要进行定制,内核最小仅8KB,且不失其实时、多任务的系统特征。随着近年来VxWorks操作系统开发环境的完善,提供了更加友善的开发界面和更加强大的模拟环境,并且改善了图形产品开发中存在的不足,使VxWorks成为嵌入式系统中比较成熟和完善的产品。2)WindowsCEMicrosoft公司的WinCE是从Windows 95发展而来,提供给开发人员一个熟悉的开发环境,但是在内核结构的设计中并未考虑适应系统的高度可裁减性的要求,需要较大存储空间,应用程序也比较庞大,且在实时性方面较VxWorks略逊一
29、筹。3)嵌入式Linux嵌入式Linux具有开放的源代码的优点,但是它的开放代码有很多都没有经过一个严格的测试,直接使用开放代码的BSP(Board Support Packet)会带来不稳定的问题。它和WinCE一样都是从桌面操作系统演变而成,不像VxWorks是专门为嵌入式而定制的,程序执行效率也没有VxWorks的高。4)Palm OSPalm OS是由3COM公司开发的一种嵌入式操作系统,一般只用于PDA。1.1.2 图形用户界面概述图形用户界面(Graphic User Interface),简称为GUI,是一个软件系统的图形化的前端,使用图形的方式借助菜单、按钮等标准界面元素和鼠标
30、操作,接收用户的输入或其它系统的输入,产生图形输出,帮助用户和计算机之间进行交互。GUI的广泛流行是当今计算机技术的重大成就之一,其最重要的优势在于使用户摆脱了在命令行提示符下与操作系统进行交互的方式,用户可以仅仅通过鼠标点击来快速的熟悉程序的操作,而且由于图标、对话框的引入,使得操作更为直观、形象,这些直接给人们的生活方式带来了变革,为数字化普及做出了巨大的贡献。GUI工程是一种结合计算机科学、美学、心理学、语言学、行为学,及各商业领域需求分析的人机系统工程,强调将人、机器、环境三者作为一个系统而进行的总体设计,它充分利用硬件资源,通过合理的屏幕布局及颜色搭配,可提供清晰、直观、友好的人机界
31、面,是连接计算机和操作者的桥梁。随着计算机软、硬件技术的不断发展,人机界面的设计已成为软件设计的重点。在软件的开发过程中,人机界面的工作量约占整个软件开发工作量的40%60%,人机界面的优劣直接关系到软件的成功和生存。这种面向客户的系统工程设计将更好的优化产品的性能,使操作更人性化,减轻使用者的认知负担,使其更适合用户的操作需求,直接提升产品的市场竞争力。GUI是计算机与其使用者之间的对话接口,是计算机系统的重组成部分,它基于硬件和操作系统之上,为用户提供丰富的图形编程接口,使其能够方便快速的编制界面友好的应用程序。虽然不同的GUI系统因为其使用场合或服务目的的不同,具体实现互有差异,但是总结
32、起来,一般在逻辑上可以分为三个基本的层次2:用户模型、窗口模型和显示模型。如图1.1所示。桌面管理系统GUI用户模型窗口模型显示模型操作系统硬件平台图1.1 图形用户界面系统的层次结构在图1.1的框架结构中,位于最底层的是计算机硬件平台。和这些硬件密切相关的就是驱动程序,它完成诸如:初始化硬件设备,设定设备运行参数;读外部设备的数据和对设备中断的响应等。在硬件平台的上面是计算机的操作系统。大多数GUI都只能在一两种操作系统上运行,只有少数产品例外。操作系统之上的是显示模型,它决定了图形在屏幕上的基本显示方式,即用位映射图形显示各种图形对象的方式。不同的图形用户界面系统所采用的显示模型各不相同。
33、例如大多数在UNIX之上运行的图形用户界面系统都采用X窗口作显示模型;MS-Windows则采用自己设计的图形设备接口(GDI)作显示模型。显示模型之上的是窗口模型,它确定了窗口如何在屏幕上显示和窗口的层次关系,例如菜单、对话框等。它通常包括两部分:一是编程工具,如函数集;二是对如何移动、输出和读取屏幕显示信息的说明。窗口模型之上的是用户模型,它主要包含了显示和交互特征,由此图形用户界面这一术语有时也特指用户模型。另外,用户模型也定义为图形用户界面的外观与视觉。它主要包括两部分:一是构造用户界面的工具,如工具箱和框架集,包括对高层界面构件对象的数据结构的定义和说明;二是定义在屏幕上组织各种图形
34、对象以及这些对象之间的行为规范和协议,即每个GUI用户模型都应当说明它支持什么样的窗口和什么样的显示方式,因为定义规范和建立工具集都必须针对具体的显示模型和窗口模型。最上层的是桌面管理系统,它是在图形用户界面基础之上开发的应用程序,实现人机交互的图形化管理。它通常包括以下几个组成部分:图形化的文件管理系统、供用户使用的图标库、桌面管理机构、图标库管理机构等。1.2 国内外研究现状1.2.1 嵌入式GUI的现状随着嵌入式技术的发展,嵌入式硬件平台、操作系统、开发工具、以及应用开发组件等很多方面都取得了较大突破,嵌入式GUI系统也得到了发展,涌现出了一大批嵌入式GUI系统或者组件。目前终端系统己经
35、开始广泛采用32位处理器芯片,配置触摸屏(或鼠标)、键盘等多种输入设备和LCD等图象显示设备,这为GUI在嵌入式系统上应用提供了基础硬件平台。目前GUI的实现方法各有不同,分别有以下几种方式3:1)某些大型厂商有能力自己开发满足自身需要的GUI系统。如VxWorks集成的UGL,ZAL等;2)某些厂商没有将GUI作为一个软件层从应用程序中剥离,GUI的支持逻辑由应用程序自己负责。3)采用某些比较成熟的GUI系统,比如MiniGUI、MicroWindows或者其他GUI系统。在上述手段中,第2种方法是一种临时解决方案。利用这种手段编写的程序,无法将显示逻辑和数据处理逻辑划分开来,从而导致程序结
36、构不好,不便于调试,并导致大量的代码重复。一般认为GUI是一种类似于操作系统的基础软件,这种软件系统应该遵循一定的标准,并且应该是开放源码的自由软件,从而可以使开发商集中精力开发自己的应用程序。下面是对一些成熟GUI方案的概述:1)紧缩的X Window系统4由麻省理工学院推出的X Window系统是类UNIX系统的标准GUI。XWindow系统采用标准的客户/服务器体系结构,具有可扩展性、可移植性等优点,但该系统的庞大、累赘和低效率也是大家所共知的。为了获得应用程序的可移植性,许多厂家都试图通过对X Window系统的紧缩开发,使之能够在嵌入式系统上运行。国外已经开发出了大小约为800K的X
37、服务器,基本能够满足嵌入式系统的需求。缺点:该系统的源代码尚不开放,从而很难进行本地化开发。2)MiniGUI5MiniGUI的主要特色有:提供了完备的多窗口机制。这包括:多个单独线程中运行的多窗口、单个线程中主窗口的附属、对话框和预定义的控间类(按钮、单行和多行编辑框、列表、进度条、工具栏等)。消息传递机制。多字符集和多字体支持,目前支持ISO8859-l,GB2312,Big5等字符集并且支持各种光栅字体和TrueType,Typel等矢量字体。全拼、五笔等汉字输入法支持。BMP,GIF,JPEG,PCX等常见图像文件的支持。小巧。包括全部功能的库文件大小为300K左右。可配置。可根据项目
38、需求进行定制配置和编译。高稳定性和高性能。MiniGUI己经在Linux发行版安装程序、CNC系统、蓝点嵌入式系统等关键应用程序中得到了实际的应用。可移植性好。目前,MiniGUI可以在XWindows和Linux控制台上运行。缺点:图形功能不全,应用设计比较困难。1.2.2 基于VxWorks的图形解决方案当前,VxWorks以其良好的可靠性和卓越的实时性被广泛应用于军事、航空、航天、通信等高精尖技术及实时性要求极高的领域中。随着硬件技术的不断发展,硬件资源不再是一个制约的问题,同时为了提高系统的易用性,要求我们能够开发出良好的图形界面。比较普遍使用的有以下几种678:1)VxWorks上的
39、媒体库组件WindMLWindML是由Wind River公司提供的媒体库,其中包含的UGL组件提供了显示模式设置、标准输入输出和点线面作图等函数,是VxWorks的GUI基础。但用WindML开发图形界面效率较低,且显示效果较差,图像中的动画、三维、反走样等问题难以解决,不适宜开发高性能界面。2)WindML与Zinc结合Zinc基于WindML,提供了类似于Windows风格的控件。将两者结合,使用Zinc实现用户界面,使用UGL库函数图画实现图形文字显示。不幸的是Zinc本身存在很多BUG,并且搭建Zinc开发环境需要给WindML和Tornado打补丁,对网卡也有一定要求,所以该方案已
40、经不再是VxWorks上图形界面开发的最佳选择。3)X Window与OSF/Motif结合X Window不依赖于特定硬件系统的图形和文字显示系统。X系统包含的Xlib库提供了建立窗口、画图、处理用户操作事件等基本功能,以Xlib库为基础又开发了Xt库。Motif是基于Xlib库和Xt库建立的更高层次的工具包,提供了交互的图形组件库,其中包括建立各种窗口组件的便利函数。4)WindML与Tilcon结合Tilcon是目前最先进的实时操作系统图形开发工具,同步支持最新版本的Tornado/VxWorks以及WindML多媒体库。Tilcon采用了最先进的图形技术,具有极高的可靠性和可维护性,还
41、支持OPC,XML,SOAP等标准工业协议,已成功应用在医疗仪器,军用武器,工业流水线,航空/航天等领域。在资金充足的情况下,选择WindMLTilcon方案是最为稳定可靠的选择。5)OpenGL图形开发包在VxWorks系统下开发3D图形显示,多数的采用的办法都是基于OpenGL的软件开发包。各大显卡厂商,在其专业级别的显卡产品上附带了OpenGL开发包,甚至出品了自己成套的OpenGL图形显示解决方案,如ALT的GT3D Embedded Graphics Solution,这也成为目前在VxWorks下开发2D/3D图形界面的一个主要方法。随着3D技术的应用在嵌入式领域不断增多,Open
42、GL已经出现了独立的嵌入式技术标准OpenGL ES。针对硬件资源相对紧缺的嵌人式系统,统一标准的操作系统平台接口层EGL,仅保留OpenGL最常用的API,增加了新的特性:定点运算、字节匹配、调色板纹理。在OpenGL标准的基础上,OpenGL ES针对嵌入式系统硬件特点作了如下修改:删除了冗余的API函数,保留一个精简高效的子集;删除了实现复杂和很少使用的函数;舍去部分数据类型,加人少许数据类型;加人了定点运算(对OpenGL ES Comm支持浮点和定点运算,对OpenGL ES Comm-lite仅支持定点运算)。目前,OpenGL ES已经推出了多个特征版本,OpenGL ES 1.
43、X 面向功能固定的硬件所设计并提供加速支持、图形质量及性能标准。OpenGL ES 2.X 则提供包括遮盖器技术在内的全可编程3D图形算法。OpenGL ES-SC 专为有高安全性需求的特殊市场精心打造。6)其他开发方案作为一个应用面非常广泛的嵌入式实时操作系统,很多厂商意识到了VxWorks下图形开发的广阔市场,纷纷推出了各种图形界面开发方案。国内的MiniGUI便是一款完善的轻量级图形用户界面支持系统。1.2.3 嵌入式GUI的发展趋势目前,伴随着各种手持、无线及嵌入式设备的迅猛发展,相应的软硬件设计也发生了很大的变化。许多设备都使用了ARM,MIPS,摩托罗拉的32位微处理器及大屏幕的液
44、晶图形显示器。由于在过去10年中,桌面操作模式取得了巨大成功,于是许多开发者在嵌入式设计中开始使用类似于桌面的操作系统。只要是面向人机交互的嵌入式产品,就涉及到文字或者图形的输出问题,人们与信息终端交互要求以GUI系统为中心的交互式界面。手写文字输入、语音拨号上网、收发电子邮件以及彩色图形、图像己取得初步成效。由此可见,从应用领域的范围来看,嵌入式GUI系统的发展空间将是无比宽广的。随着虚拟现实、科学计算、可视化、多媒体技术以及硬件技术的飞速发展,嵌入式GUI将有如下几个发展方向9:1)更加高效、可靠、可定制和小巧灵活,并具有很好的跨硬件平台、跨操作系统可移植性的嵌入式GUI系统将是将来的一个
45、重要方向。2)支持3D建模。在目前的嵌入式系统中,3D技术的应用并不常见,这与嵌入式系统的特点有很大的关系,然而,随着硬件技术的发展与市场的需求,目前,一些成熟的3D技术已经应用到了嵌入式环境中,比如OpenGL ES使用了大量的渲染技术以提供给用户调用。因此支持3D建模必将成为未来嵌入式GUI发展的一个趋势。3)智能化。精确交互技术是指能用一种技术来完全说明用户交互目的的交互方式,键盘和鼠标器均需用户精确输入。而人们的动作或思想往往并不很精确,计算机应该理解人的要求,甚至于纠正人的错误,智能化的界面也是未来嵌入式GUI的一个重要方向。4)高宽带。支持高的输入带宽,快速大批量地输入信息以及对语
46、音、图像、姿势等的输入和理解也是今后的发展方向。1.3 课题来源和意义本论文题目来源于实习工作中所进行的“某星载仪表控制计算机”的项目。该设备采用VxWorks作为其操作系统,而本课题的目的在于选择合适的开发方案,在VxWorks环境下设计与开发一套友好的图形用户界面,能够满足在显示器上进行复杂和有实时性要求的图形信息、参数信息以及状态信息的显示,该系统另一个重要的技术要求是能提供对3D模块的支持,这就对研发人员提出了很大的挑战。VxWorks提供了一个图形开发库WindML,同时也有很多软件开发商开发了多种基于VxWorks的图形界面软件开发包,但由于这些方案中有的价格昂贵,有的不适合开发高
47、要求的图形界面,还有的不易移植并且存在很多BUG。最终,我们选用OpenGL开发我们的图形界面,主要原因分析如下:第一:独立性和无关性。OpenGL被设计成独立于硬件,独立于窗口系统的,在运行各种操作系统的各种计算机上都可用,并能在网络环境下以客户/服务器模式工作,其目的是将用户从具体的硬件中解放出来,完全不用理解这些系统的结构和指令系统,只要按照规定的格式书写应用程序就可以在任何支持该语言的硬件平台上执行,是专业图形处理、科学计算等高端应用领域的标准图形库。第二:灵活性和通用性。由于OpenGL是3D图形的底层图形库,没有提供几何实体图元,不能直接用以描述场景。但是,通过一些转换程序,可以很
48、方便地将AutoCAD、3DS等3D图形设计软件制作的DFX和3DS模型文件转换成OpenGL的顶点数组。另外,各种流行的编程语言都可以调用OpenGL的库函数,如:C、C+、Fortran、Ada、 Java。第三:高效性。OpenGL被计算机工业界看作当前最先进的三维图形API,它提供很强的绘制二维和三维图形能力,包括基本图元、造型、着色、光照、景深、阴影、混合、动画、反走样、纹理映射、隐面消除、图像处理等绘制功能。另外,OpenGL利用显示列表概念引入了PHIGS中的层次概念,不需要包括复杂的预定义对象,设计者只需调用OpenGL的几个简单几何单元,即可建立所要求的模型,因而深得许多专业
49、人员的喜爱。另外OpenGL顶部还设有实用程序库,支持绘制二次曲线和曲面、nurbs曲线和曲面以及其它高级图元。1.4 论文结构本文详细分析了国内外嵌入式GUI系统的发展现状,特别VxWorks系统下支持3D建模的嵌入式GUI系统的特点。OpenGL作为新一代的三维图形工业标准,以其与硬件无关性和独立性使得它有很好的跨平台能力。而Mesa3D图形库则是目前为止对OpenGL标准最完整的一个实现,本论文的一个重要的工作就是将Mesa3D移植到VxWorks系统,移植成功后,我们将结合UGL图形库为系统构建一个简单的、具有最基本功能的用户图形界面。本论文的安排如下:第一章:绪论。对嵌入式系统及其图
50、形用户界面进行介绍。说明课题来源,国内外现状和本论文主要章节安排。第二章:VxWorks操作系统及媒体库WindML。分析了VxWorks系统及其实时微内核Wind的特性,介绍了VxWorks的集成开发环境Tornado的几个重要组件,最后详细说明风河公司提供的多媒体库WindML,对其事件服务机制、主要API和利用它开发图形等多媒体程序的详细流程。第三章:OpenGL/Mesa及其在VxWorks下的移植。介绍了当今三维图形工业标准OpenGL的开发库结构和它的一个实现版本Mesa。然后实现了本课题的两个主要任务:移植OpenGL/Mesa到VxWorks系统中,利用虚拟机搭建图形开发环境。
51、第四章:VxWorks系统GUI关键技术详细介绍。介绍了本课题的另一个主要的任务设计并实现一个以消息驱动机制为核心的、具有中文显示功能、能创建和显示窗口及常用控件、支持3D功能的图形用户界面系统。第五章:工程应用和效果测试。介绍了本GUI系统在实际工程中的应用情况及显示效果,验证了其普通2D图形界面和3D图形显示的性能。 PAGE 60基于OpenGL的VxWorks图形用户界面开发PAGE 21第二章 VxWorks操作系统及媒体库WindML第二章 VxWorks操作系统及媒体库WindML2.1 VxWorks深入研究2.1.1 VxWorks概述10VxWorks是专门为实时嵌入式系统
52、设计开发的操作系统内核。VxWorks的出品公司美国风河公司组建于1981年,是一个专门从实时操作系统开发与生产的软件公司,该公司在实时操作系统领域被世界公认是最具有领导作用的公司。从1983年设计成功以来,VxWorks已经经过广泛的验证,成功的应用在航空、航天、舰船、通信、医疗等关键领域,如美国的F-16、FA-18战斗机、B-2隐形轰炸机、爱国者导弹上以及1997年4月在火星表面登陆的火星探路者上都使用了VxWorks。目前,VxWorks得到了许多软硬件厂家的支持,这些第三方软硬件厂家提供丰富的VxWorks的扩展组件。因此,从应用软件角度而言,VxWorks操作系统在各种CPU硬件平
53、台上可以提供统一的接口和一致的运行特性,应用程序无需做过多的改动就可以运行在各种CPU上,为程序员提供了一致的开发、运行环境,减少了重复劳动。VxWorks操作系统是现在所有独立于处理器的实时系统中最具特色的操作系统之一。VxWorks系统运行环境支持的CPU包括:Power PC、68K、CPU32、SPARC、i960、x86、Mips等;同时支持RISC、DSP技术。支持多种硬件环境也是VxWorks得以流行的重要原因。VxWorks的微内核Wind是一个具有较高性能的、标准的嵌入式实时操作系统内核,其主要特点包括:快速多任务切换、抢占式任务调度、任务间通信手段多样化等。该内核具有任务间
54、切换时间短、中断延迟小、网络流量大等特点,与其他嵌入式实时操作系统相比具有一定的优势。VxWorks是一种功能强大而且比较复杂的操作系统,包括了进程管理、存储管理、设备管理、文件系统管理、I/O管理、网络协议及系统应用、C+和其他标准支持等几个部分。VxWorks只占用了很小的存储空间,并可高度裁减,保证了系统能以较高的效率运行。VxWorks系统具有较好的可剪裁的能力,可剪裁的组件超过80个,用户可以根据自己系统的功能目标通过交叉开发环境方便地进行配置。VxWorks支持应用程序的动态链接和动态下载,使开发者省去了每次调试都将应用程序与操作系统内核进行链接和下载的步骤,缩短了编辑调试的周期。
55、VxWorks具有较好的兼容性。良好的兼容性,使其在不同运行环境间可以方便的移植,从而使用户在开发和培训方面所做的工作得到保护,减少了开发周期和经费。VxWorks是最早兼容POSIX1003.1b标准的嵌入式实时操作系统之一,同时也是POSIX组织的主要会员。VxWorks的TCP/IP协议栈部分在保持与BSD4.4版本的TCP/IP兼容基础上,在实时性方面有较大提高。这使得基于BSD4.4 UNIX socket的应用程序可以很方便地移植到VxWorks中去,并且网络的实时性得到提高。VxWorks还是第一个通过Windows NT测试的可以在Windows NT平台进行开发和仿真的嵌入式
56、实时操作系统。同时支持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提供了基本的多任务环境。从表面上来看,多个任务正在同时执行,实际上,系统内核根据某一
57、调度策略让它们交替运行。系统调度器使用任务控制块(TCB)的数据结构来管理任务调度功能。TCB用来描述一个任务,每一任务都与一个TCB关联。TCB包括了任务的当前状态、优先级、要等待的事件或资源、任务程序码的起始地址、初始堆栈指针等信息。调度器在任务最初被激活时以及从休眠态重新被激活时,要用到这些信息。此外,TCB还被用来存放任务的上下文(context)。任务的上下文就是当一个执行中的任务被停止时,所要保存的所有信息。在任务被重新执行时,必须要恢复上下文。嵌入实时系统的一个任务可有多种状态,其中最基本的状态有四种:就绪态:任务等待系统分配CPU资源;悬置态:任务需等待某些不可利用的资源而被阻
58、塞;休眠态:如果系统不需要某一个任务工作,则这个任务处于休眠状态;延迟态:任务被延迟时所处状态。任务的状态在这几种状态中切换。内核维护每个任务的当前状态。状态迁移发生在应用程序调用内核功能服务的时候。任务被创建以后进入挂起态,需要通过特定的操作使被创建的任务进入就绪态,这一操作执行速度很快,使应用程序能够提前创建任务,并以一种快捷的方式激活该任务,如图2.2。图2.2 VxWorks任务状态的转换多任务调度须采用一种调度算法来分配CPU给就绪态任务。Wind内核采用基于优先级的抢占式调度法作为它的缺省策略,同时它也提供了轮转调度法。Wind内核划分优先级为256级(0255)。优先级0为最高优
59、先级,优先级255为最低。当任务被创建时,系统根据给定值分配任务优先级。优先级也可以是动态的,它们能在系统运行时被用户使用系统调用taskPrioritySet()来加以改变,但不能在运行时被操作系统所改变。基于优先级的抢占式调度,它具有很多优点。这种调度方法为每个任务指定不同的优先级。没有处于悬置或休眠态的最高优先级任务将一直运行下去。当更高优先级的任务由就绪态进入运行时,系统内核立即保存当前任务的上下文,切换到更高优先级的任务。Wind内核可通过调用taskLock()和taskUnlock()来使调度器起作用和失效。当一个任务调用taskLock()使调度器失效,任务运行时没有基于优先级
60、的抢占发生。然而,如果任务被阻塞或是悬置时,调度器从就绪队列中取出最高优先级的任务运行。当设置抢占禁止的任务解除阻塞,再次开始运行时,抢占又被禁止。这种抢占禁止防止任务的切换,但对中断处理不起作用。任务通信和同步机制VxWorks支持各种任务间通信机制,提供了多样的任务间通信方式,主要有如下几种:1)共享内存主要是数据的共享,任务间通信的最简单的方法,即相关的各个任务分享属于它们的地址空间的同一内存区域。所有任务都存在于单一的线性地址空间,任务间共享数据。全局变量、线性队列、环形队列、链表、指针都可被运行在不同上下文的代码所指向。2)信号量VxWorks信号量提供最快速的任务间通信机制,它主要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 粮食仓储企业绿色经济企业绿色经济可持续发展目标考核试卷
- 生物质能源产业政策解读考核试卷
- 美容仪器在皮肤管理技术的研究与发展考核试卷
- 电声器件在家庭影院系统中的应用考核试卷
- 2025员工借用合同格式范本
- 2025电子产品销售合同电子产品销售合同模板
- 2025婚庆主持服务合同示范文本
- 2025一级建造师《项目管理》考点设备采购合同条款
- 2025减震器采购合同范本
- 流程优化子课题
- 2024中考英语必考1600词汇分类速记表
- 江苏泰州市泰兴经济开发区国有企业招聘笔试题库2024
- 2024年风力发电运维值班员(技师)技能鉴定考试题库-下(判断题)
- DL∕T 1709.3-2017 智能电网调度控制系统技术规范 第3部分:基础平台
- 考核办法和考核方案
- 化妆品生产OEM合同书
- 海上CANTITRAVEL平台桩基施工关键技术应用v7
- 有色金属冶金概论课程教案
- 华为MA5800配置及调试手册
- 中国生产安全行业市场运行动态及投资发展潜力分析报告
- 2023-2024年电子物证专业考试复习题库(含答案)
评论
0/150
提交评论