(计算机应用技术专业论文)嵌入式ugui的研究与实现.pdf_第1页
(计算机应用技术专业论文)嵌入式ugui的研究与实现.pdf_第2页
(计算机应用技术专业论文)嵌入式ugui的研究与实现.pdf_第3页
(计算机应用技术专业论文)嵌入式ugui的研究与实现.pdf_第4页
(计算机应用技术专业论文)嵌入式ugui的研究与实现.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(计算机应用技术专业论文)嵌入式ugui的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉理工大学硕+ 学位论文 摘要 图形用户界面系统( g u i ) 是系统级的支撑软件,它可以和文件系统、操作 系统内核等一起构成一个完整的操作系统,g u i 为用户提供与应用系统交互的 可视化通道,同时也为程序员提供了一种编程模式,即g u i 负责系统的可视化 界面的生成,管理系统与用户之间的交互信息,而程序员只需要专注于实际应 用程序的分析与设计。 ,现行的嵌入式g u i 系统有很多,虽然它们有各自的优点,但都存在一定的 问题。基于此,本论文在嵌入式g u i 方面做了比较详细的研究,并开发了个 基于l i n u x 的嵌入式g u i 系统u g u l ,其目标是设计一个轻型、占资源少、高性 能、高可靠性、可配置性的嵌入式g u i 系统。 论文内容主要围绕以下几个方面:首先概述了嵌入式系统及图形用户界面 的发展情况,接着介绍了几种嵌入式系统下的g u i ,通过相互比较,指出和通 用的g u i 系统相比,嵌入式系统下的g u i 需要有轻型、占资源少、高性能、高 可靠性、可配置性、可移植等特点;接着分析嵌入式g u i 系统设计的核心机制 与技术,提出了分层次体系结构模型以及基于l i n u x 的f r a m e b u f f e r 显示驱动、 事件消息驱动机制、窗口管理技术、面向对象技术在嵌入式g u i 系统中的应用; 然后在第四章中根据上述理论与技术,采用层次化、模块化和面向对象技术等 具体实现嵌入式l l g u i 系统的输入输出层、u g u i 核心层和应用接口层,并具体 讨论了些主要的算法和核心模块的实现过程,其中包括一些具体的实现技术 细节与开发难点。然后对u g u i 系统进行了比较全面的功能和性能测试,结果证 明u g u i 系统是一个结构合理、性能稳定,符合预期设计目标的嵌入式g u i 系 统。 最后介绍了关于基于u g u i 系统进行图形用户应用程序开发的模式与方法, 总结了在实现嵌入式u g u i 系统的一些心得。 关键词:嵌入式系统,图形用户界面,事件消息驱动机制,面向对象技术, 抽象层 武汉理工大学硕十学位论文 a b s t r a c t g r a p h i c su s e fi n t e r f a c e ( g u i ) s y s t e mi sak i n do fs u p p o r ts y s t e m w h i c hc a n c o n s t r u c taw h o l eo p e r a t i n gs y s t e mw i t hf i l es y s t e ma n do p e r a t i n gs y s t e mk e r n e l g u ip r o v i d e sn o to n l yav i s u a lw a yt oc o m m u n i c a t ew i t ha p p l y i n gs y s t e m ,b u ta l s oa p r o g r a m m i n gm o d e lt op r o g r a m m e r s g u it a k e sc h a r g eo fc r e a t i n gv i s u a lw i n d o w s , a n dm a n a g e st h ec o m m u n i c a t i o ni n f o r m a t i o no fs y s t e ma n du s e r s a n dt h e p r o g r a m m e r sn e e do n l yt oa n a l y z ea n dd e s i g nt h ea p p l i c a t i o n s r o u t i n e s t h e r ea r e m a n yg o o de m b e d d e dg u is y s t e m su n d e re m b e d d e dl i n u xs y s t e m ,b u te a c ho n eh a s s o m ep i t f a l l si nt h e i rd e s i g na n ds u p p o r t s oal o to fw o r kh a sb e e nd o n eo n ei n c o m p a r i n ga n da n a l y z i n gt h e i ra r c h i t e c t u r e sa n dt e c h n i q u e s t h e np l a nt od e s i g n u g u io fe m b e d d e dg u is y s t e mb a s e do nl i n u x t h et a r g e ti sl i g h tw e i g h t ,l e s s r e s o u r c e sc o n s u m i n g , h i g hc a p a b i l i t ya n dr e l i a b i l i t y ,a n dc o n f i g u r a b l ee m b e d d e dg u i s y s t e m t h ed e t a i ld e s i g na n dd e v e l o p m e n to f u g u ii sd e s c r i b e di nt h en e x tc h a p t e r s f i r s t l y ,i n t r o d u c et h ec o n c e p t so f e m b e d d e ds y s t e ma n dg u ia n dt h e i rp r o g r e s s i n s t a n c e s ,a n dt h e nl a yo u tc u r r e n t l ym a i n s t r e a me m b e d d e dg u ip r o d u c t s c o m p a r e d w i t hg e n e r a lp u r p o s eg u is y s t e m , e m b e d d e dg u in e e dl i g h tw e i g h t ,l e s sr e s o u r c e s c o n s u m i n g ,h i g hc a p a b i l i v ya n dr e l i a b i l i t y ,a n dc o n f i g u r a b l ea n dp o r t a b l e i nt h et h i r d c h a p t e r , w ed i s c u s st h ee m b e d d e dg u is y s t e m sp i v o t a lm e c h a n i s ma n dt e c h n i q u e , r a i s eal a y e rs y s t e mm o d e la n dd i s p l a yd r i v e rb a s e do nf r a m e b u f f e r , e v e n t - m e s s a g e d r i v i n gm e c h a n i s m ,w i n d o wm a n a g i n g ,o b j e c to r i e n t e dt e c h n o l o g yu s e di ne m b e d d e d g u is y s t e m s e c o n d l y ,a c c o r d i n gt ot h et h e o r ya n dt e c h n o l o g ym e n t i o n e da b o v e id e s i g n e d t h ei a l ,u g u ik e r n e la n da p ib yu s i n gl a y e r , m o d u l ea n do o t t h ed a t as t r u c t u r e a n dm a i na l g o r i t h mr e a l i z a t i o na r en a r r a t e dm o r es p e c i f i c a l l y ,i n c l u d i n gs o m e w h a ti h a sl e a r n e d t h et e s to f u g u ii sd o n em o r ef u l ls c a l e a n dt h er e s u l ti sa c c o r dw i t ho u r t a r g e ti ns t r u c t u r e ,c a p 曲i i i 够 l a s t l y ,t h ec o n t e n ti sa b o u td e v e l o p i n gm o d e la n dm e t h o du n d e rt h eu g u i a n d t h i n ki nr e a l i z a t i o no f u g u i k e yw o r d s :e m b e d d e ds y s t e m ,g r a p h i c su s e ri n t e r f a c e ,o o x , a b s t r a c tl a y e r , e v e n t - m e s s a g ed r i v i n gm e c h a n i s m i i 武汉理丁大学硕士学位论文 1 1 嵌入式系统概述 第1 章概述 1 1 1 嵌入式系统的概念及特点 随着计算机技术的发展,嵌入式系统已经成为计算机应用领域中的一个重 要组成部分。所谓嵌入式系鲥l j ( e m b e d d e ds y s t e m ) 是指以应用为中心、以计 算机技术为基础、软硬件可裁剪、适应应用环境( r e a lw o r l d ) 对功能、实时性、 可靠性、成本、体积、功耗等严格约束的专用计算机系统。目前,嵌入式计算 机在应用数量上已远远超过了各种通用计算机。在制造工业、过程控制、通讯、 仪器仪表、汽车、船舶、航空航天、军事装备、消费类电子产品等领域具有广 泛的应用,其产品如常见的移动电话、掌上电脑,数码相机、机顶盒、多媒体 终端等设备。 嵌入式系统具有面向用户、面向产品、面向应用的特征f 2 l 。和个人计算机与 工作站相比,嵌入式系统是针对具体应用的专用系统,不具有通用性,它的硬 件和软件都必须高效率地设计,量体裁衣,成为完成特定任务的最小系统,以 力求降低成本。 1 1 2 嵌入式系统发展 嵌入式系统的出现至今已经有3 0 多年的历史了,综观嵌入式系统的发展大 致经历了如下4 个阶段吲: 第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与监 测伺服、指示设备相配合的功能,这种系统大部分应用于一些专业性极强的工 业控制系统中,一般没有操作系统的支持。这一阶段系统的主要特点是系统结 构和功能都相对单一,处理效率较低,存储容量较小,几乎没有用户接口。由 于这种嵌入式系统使用简便、价格低廉,以前在国内工业领域应用较为普遍, 但是已经远远不能适合高效的,需大容量存储介质的现代化工业控制和新兴的 信息家电等领域的需求。 武汉理丁大学硕+ 学位论文 第二阶段是以嵌入式c p u 为基础,以简单操作系统为核心的嵌入式系 统。这一阶段的主要特点是:c p u 种类繁多,通用性比较弱,系统开销小,效 率高,操作系统具有定的兼容性和扩展性,应用软件较专业,用户界面不够 友好,系统主要用来控制系统负载以及监控应用程序运行。 第三阶段是以嵌入式操作系统为标志的嵌入式系统,这一阶段系统的主 要特点是嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好,操 作系统内核精小,效率高,并且具有高度的模块化和扩展性,具备文件和目录 管理,设备支持,多任务,网络支持,图形窗口已经用户界面等功能,具有大 量的应用程序接口( a p l ) ,开发简单,嵌入式应用软件丰富。 第四阶段是以基于i n t e r a c t 为标志的嵌入式系统。这是一个正在迅速发 展的阶段,目前绝大多数的嵌入式系统还孤立于i n t e r a c t 之外,但随着i n t e m e t 的发展,与信息家电、工业控制技术等结合日益紧密,嵌入式设备与i n t e m e l 的 结合将代表着嵌入式技术的真正未来。 1 1 3 嵌入式软件特征及其发展趋势 硬件是支撑,软件是灵魂,嵌入式软件是实现各种系统功能的关键,也是 计算机技术最活跃的研究方向之一,几乎所有的嵌入式产品中都需要嵌入式软 件来提供灵活多样、而且应用特制的功能,且有如下特征【2 1 ; ( 1 ) 软件需要固化存储 为了提高提高执行速度和系统可靠性,嵌入式软件一般都固化在存储器芯 片或单片机上,而不是存储于磁盘等载体中。 ( 2 ) 软件代码高质量、高可靠性 尽管半导体技术的发展使处理器速度不断提高,片上存储器容量不断增加, 但大多数应用中,存储空间仍然是宝贵的,还存在实时性的要求。为此要求程 序编写和编译工具的质量要高,以减少程序二进制代码长度,提高执行速度。 ( 3 ) 系统软件( o s ) 的高实时性是基本要求 在多任务嵌入式系统中,对重要性各不相同的任务进行统筹兼顾的合理调 度是保证每个任务及时执行的关键,单纯通过提高处理器速度是无法完成和没 有效率的,这种任务调度只能由优化编写的系统软件来完成,因此系统软件的 高实时性是基本要求。 ( 4 ) 多任务操作系统是知识集成的平台和走向工业标准化道路的基础。 2 武汉理t 大学硕十学位论文 随着嵌入式系统与多媒体和互联网技术地结合,系统开发复杂性的增加, 因此开发入员需要一个包含一些软件开发工具的支撑平台。 由于嵌入式系统应用广泛,嵌入式软件在整个软件产业中占据了重要地位, 并受到世界各国的广泛关注;如今已成为信息产业中最为耀眼的“明星”之一。 总体看来,嵌入式系统具有便利灵活,性能价格比高,嵌入性强等特点, 可以嵌入到现有任何信息家电和工业控制系统中,从软件角度来看,嵌入式系 统具有不可修改性,系统所需配黄要求较低,系统专业性和实时性较强等特点。 1 2 图形用户界面 计算机图形用户界面是用户与计算机进行交互的接口,是计算机系统的重 要组成部分。图形用户界面技术因美观、简单易用而深受广大用户所喜爱,大 大加速了计算机的普及,成为当今计算机技术的重大成就之一。随着多媒体、 虚拟现实、i n t e r a c t 技术等对用户界面提出了更高的要求,用户界面技术面临新 的挑战。 图形用户界面的主要特点如下: w i m p w ( w i n d o w s ) 窗口,是用户或系统的一个工作区域。一个屏幕上可以有多个 窗口。 i ( i c o n ) e f l 标,是形象化的图形标志,易于人们理解。 m ( m e n u ) 菜单,可供用户选择的功能提示。 p ( p o i n t i n gd e v i c e s ) 标等,便于用户直接对屏幕对象进行操作。 用户模型 g u i 采用了不少d e s k t o p 桌面办公的隐喻,使用户共享一个直观的界面框架。 由于人们属性办公桌的情况,因而对计算机显示的图标容易理解,诸如:文件 夹、收件箱、画笔、工作簿、时钟等。 直接操作 直接在屏幕上的对象进行操作,用户操作后,屏幕能够立即给出反馈信息 或结果,即所见即所得。 武汉理t 大学硕十学位论文 1 3 课题目的及成果 随着嵌入式技术的广泛应用和发展,在很多嵌入式系统中,如手机、p d a 和数字机顶盒等,系统使用者往往要求具有菜单、窗口和按钮等一些基本的图 形化操作界面;系统的设计和实现者又迫切需要一个成熟的g u i 软件开发包, 来提高嵌入式系统的开发效率。 嵌入式g u i 不仅具有相当好的应用前景,而且也具有相当高的理论研究价 值。嵌入式o u i 是- i 1 融合了计算机图形学、操作系统、面向对象软件理论、 数字图像和数字视频、汉字信息处理技术等的交叉性应用型学科。 我们在对国内外同类产品实现进行比较的基础上,通过借鉴和继承主流嵌 入式g u i 系统的多层次系统结构设计,研究和完善g u i 系统的事件消息驱动机 制,扩展和丰富对上层的用户界面控件,实现了一个面向于手持终端设备的嵌 入式g u i 系统- _ u g u i ,其主要特点是: ( 1 ) 采用层次化设计方法,能够按照功能需求来定制u g u i ; ( 2 ) 能够独立于具体输入输出硬件设备,具有良好的可移植性; ( 3 ) 采用f r a m e b u f f e r 技术,实现高效的图形设备驱动; ( 4 ) 多窗口支持,中文支持; ( 5 ) 丰富的控件支持。 1 4 本文内容与组织 第l 章概述。对嵌入式系统进行详细介绍,分析嵌入式软件在嵌入式g u i 在嵌入式系统中的重要作用,介绍了课题的目的及成果。 第2 章嵌入式l i n u x 下的g u i 概况。分析了当前嵌入式l i n u x 下的主流 g u l 的设计特点和各自优势与不足。 第3 章嵌入式g u i 设计的关键技术研究。分析了嵌入式g u i 系统的系统 结构设计,以及核心机制与技术。 第4 章嵌入式u g u i 系统的设计。详细地分析了u g u i 系统的设计,以及 第3 章中各种机制与技术在其中的具体实现方法。 第5 章嵌入式u g u i 系统系统性能评测。 第6 章基于u g u i 的应用开发模式。 第7 章工作总结与展望。 4 武汉理jr = 大学硕七学位论文 第2 章嵌入式l ir u x 下的g u l 概况 2 1 嵌入式g u i 在嵌入式系统中的地位 在常见的p d a 等小型手持式设备上,由于硬件条件等的限制,我们看到的 用户界面都是非常简单,几乎看不到我们在p c 机上看到的华丽美观的g u l 支 持。但最近出现的p a l m 等手持式电脑或者在w i n d o w sc e 等面向嵌入式系统的 操作系统上,我们已经看到了完整的图形用户界面支持。随着手持式设备的硬 件条件的提高,我们估计嵌入式系统对轻量级g u i 的需求会越来越迫切。 近来的市场需求显示,越来越多的嵌入式系统,包括p d a 、机顶盒、 d v d v c d 播放机、w a p 手机等等系统均要求提供全功能的w e b 浏览器。这 包括h t m l4 0 的支持、j a v a s c r i p t 的支持,甚至包括j a v a 虚拟机的支持。而 这一切均要求有一个商性能、高可靠的g u i 的支持。 另外一个迫切需要轻量级g u i 的系统是工业实时控制系统。这些系统一般 建立在标准p c 平台上,硬件条件相对嵌入式系统要好,但对实时性的要求非 常高,并且比起嵌入式系统来说,对g u i 的性能要求也更高。这些系统一般不 希望建立在庞大累赘的、非常消耗系统资源的操作系统和g u l 之上,比如 w i n d o w s 或xw i n d o w 。目前许多这类系统都建立在d o s 等系统上,并且采 用比较简单的手法实现g u i 。但是,在出现l i n u x 系统之后,尤其在r t - l i n u x 系统出现之后,许多工业控制系统开始采用r t l i n u x 作为操作系统,但g u i 仍然是一个问题。关键是xw i n d o w 太过庞大和臃肿。这样,这些系统对轻型 g u i 的需求更加突出。 但是,我们必须清楚的是,嵌入式系统往往是一种定制设备,它们对g u i 的 需求也各不相同。举个简单的例子,有的系统只要求一些简单的图形功能,而 有些系统要求完备的g u l 支持。因此,g u i 也必须是可定制的。 综上所述,g u i 在嵌入式系统或者实时系统中的地位将越来越重要,这些 系统对g u i 的基本要求包括:嘲 1 轻型、占用资源少。 2 高性能。 武汉理下大学硕士学位论文 3 。高可靠性。 4 。可配置。 2 2 目前主流嵌入式系统g u l 的实现方法 尽管嵌入式系统对g u i 的需求越来越明显,但目前g u i 的实现方法各有 不同: 某些大型厂商有能力自己开发满足自身需要的g u i 系统。 某些厂商没有将g u i 作为一个软件层从应用程序中剥离,g u i 的支持 逻辑由应用程序自己负责。 采用现有某些比较成熟的g u i 系统,比如m i n i o u i 或其他g u i 系统。 在上述手段中,第2 种方法是一种临时解决方案。利用这种手段编写的程 序,无法将显示逻辑和数据处理逻辑划分开来,从而导致程序结构不好,不便 于调试,并导致大量的代码重复。我们认为g u i 是一种类似于操作系统的基础 软件,这种软件系统应该遵循一定的标准,并且应该是开放源码的自由软件, 从丽可以让开放商集中精力开发自己的应用程序。目前看来,在l i n u x 之上进 行( 实时) 嵌入式系统开发的厂商,一般选择如下几种g u i 系统:紧缩的x w i n d o w 系统、m i n i g u i 、n a n o xw i n d o ws y s t e m 、o p e n g u i 、q t e m b e d d e d 等, 下面首先对这些系统进行简单介绍,并对它们的优缺点进行比较。 2 2 1 紧缩的xw i n d o w 系统 众所周知,xw i n d o w 是l i n u x 以及其他类u n i x 系统的标准g u i 。x w i n d o w 系统采用标准的客户月臣务器体系结构,它由x 协议,x 服务器,客户 和x l i b 函数库等几部分组成,具有可扩展性好、可移植性好等优点。但该系统 的庞大、累赘和低效率也是大家所共知的。为了获得应用程序的可移植性,许 多厂家都试图通过对xw i n d o w 系统的紧缩开发,使之能够在嵌入式系统上运 行。国外已经开发出了大小约为8 0 0 k 的x 服务器。这对西方国家来说基本能 够满足嵌入式系统的需求了。但该系统的源代码尚不开放,从而很难进行本地 化开发。 武汉理丁大学硕士学能论文 2 2 2m i n ig u i m i n i g u l 4 1 是由魏永明先生开发,是国人做得较好得自由软件之一。m i n i g u i 是一种面向嵌入式系统的图形用户界面支持系统。它主要运行于l i n u x 控制台 上,也可以运行在任何一种具有p o s 线程支持的p o s i x 兼容系统上。m i n i g u i 同时也是国内最早出现的几个自由软件项目之一。 m i n i g u i 的主要特点有: 遵循l g p l ( g n ul e s s e rg e n e r a lp u b l i cl i c e n s e ) 条款的纯自由软件; 提供了完备的多窗口机制,这包括: 多个单独线程中运行的多窗口: 单个线程中主窗口的附属; 对话框和预定义的控件类、按钮、单行和多行编辑框、列表框、进度条、 工具栏等: 多字符集和多字体支持,目前支持i s 0 8 8 5 9 1 、g b 2 3 1 2 、b i 9 5 等字符 集,并且支持各种光栅字体和t r u e t y p e 、t y p e l 等矢量字体。 全拼、五笔等汉字输入法支持。 b m p 、g i f 、j p e g 、p c x 等常见图像文件的支持。 w i n d o w s 的资源文件支持,如位图、图标、光标、插入符、定时器、 加速键等。 小巧,包含全部功能的库文件大小为3 0 0 k 左右。 可配置,可根据项目需求进行定制配置和编译。 高稳定性和高性能,m i m g u i 已经在l i n u x 发行版安装程序、c n c 系 统、蓝点嵌入式系统等关键应用程序中得到了实际的应用。 可移植性好。目前,m i n i g u i 可以在xw i n d o w 和l i n u x 控制台上运行。 中科院e e o s 开发组已经成功地将m i n i g u i 移植到了他们的p o s i x 兼容系 统上。蓝点软件研发中心也已经成功地将m i n i g u l 移植到了两款基于 s t r o n g a r m 的嵌入式系统上。 2 2 3n a n o - xw in d o ws y s t 鲫 n a n o xw i n d o ws y s t e m l 5 】( 以前称为m i c r o w i n d o w s ) 是一个开放源码的项 目,目前由美国一家公司在主持开发。该项目的开发非常活跃,国内也有人参 7 武汉理下大学硕七学位论文 与了其中的开发,并编写了g b 2 3 1 2 等字符集的支持。该项目的主要特色在于 提供了比较完善的图形功能,包括一些高级的功能,比如a l p h a 混合,三维支 持,t m e t y p e 字体支持等。但作为一个窗口系统,该项目提供的窗口处理功能 还需要进一步完善,比如控件或构件的实现还很不完备,键盘和鼠标等的驱动 还很不完善。 该项目已经启动了一个开放源码的浏览器项目,该浏览器在k d e k f m 提供 的h t m l 解释器的基础上开发,目前能够解释些简单的h 删l 页面。 2 2 4o p e n g u o p e n g u l l 6 1 在l i n u x 系统上存在已经很长时间了。最初的名字叫f a s t g l , 只支持2 5 6 的线性显存模式。但目前也支持其他显示模式。这个库是用c + + 编 写的,只提供c + + 接口。 o p e n g u l 基于一个用汇编语言实现的x 8 6 图形内核,提供了一个高层的 c c + + 图形窗口接口,它和m i n i g u i 一样也是使用l g p l 许可证,o p e n g u i 提 供了2 维绘图原语、消息驱动的a p i 、b m p 文件格式支持。o p e n g u l 功能强大, 使用方便,我们甚至可以实现b o r l a n db g i 风格的应用程序或者是q t 风格的窗 口。o p e n g u l 支持鼠标和键盘的事件,在l i n u x 上基于f r a m e b u f f e r 或者s v g a l i b 实现绘图。l i n u x 下o p e n g u i 也支持m e s a 3 d 。颜色模型方面,o p e n g u i 已经支 持8 ,1 6 和3 2 位模型。 由于其基于汇编实现的内核并利用m m x 指令进行了优化,o p e n g u l 运行 速度非常快,它支持3 2 位的机器,能够在m s - d o s 、q n x 和l i n u x 下运行,主 要用来在这些系统中开发图形应用程序和游戏。由于历史悠久,o p e n g u l 非常 稳定。由于其内核用汇编实现,可移植性受到了影响,通常在驱动程序一级性 能和可移植性是矛盾的,我们必须找到一个折衷。 2 2 50 t e m b e d d e d q t e m b e d d e d r 是著名的q t 库开放商正在进行的面向嵌入式系统的 q t 版本。这个版本的主要特点是可移植性较好,许多基于q t 的xw i n d o w 程序可以非常方便地移植到嵌入式版本。但是该系统不是开放源码的,如果你 要使用这个库,可能需要支付昂贵的授权费用。 8 武汉理i :大学硕士学位论文 2 3 小结 比较上述几个面向嵌入式系统的g u i ,我认为目前比较成熟、同时得到最 多开发人员认可的有紧缩xw i n d o w 系统,m i n i g u i n a n o xw i n d o ws y s t e m 等 系统,q t e m b e d d e d 尽管刚推出,但来势凶猛。 紧缩的xw i n d o w 系统其x 服务器可以降低至i8 0 0 k 的大小,但因为x w i n d o w 系统的运行还需要其他程序和库的支持,包括x 窗口管理器,x l i b 、建 立在x l i b 之上的g t k 和q t 等函数库,因此紧缩xw i n d o w 系统在运行期间所 占用的系统资源很多,加上中文显示和中文输入等本地化代码之后,系统的整 体尺寸和运行时的资源消耗将进一步变大。因此,嵌入式系统的开发商往往将 紧缩xw i n d o w 系统定位在机顶盒等对资源要求并不苛刻的嵌入式系统上。 q t e m b e d d e d 由于移植了大量的原来基于q t 的x w i n d o w 程序,提供了非 常完整的嵌入式g u i 解决方案,再加上o p e r a 浏览器可以说是一个成熟的商业 软件。 m i n i g u l 和n a n o xw i n d o ws y s t e m 均为自由软件,但这两个系统的技术路 线也有所不同,m i n i g u i 的策略是首先建立在比较成熟的图形引擎之上,比如 s v g a l i b 和l i b g g i ,开发的重点在于窗口系统、图形接口之上;而n a n o xw i n d o w s y s t e m 目前的开发重点则在底层的图形引擎之上,窗口系统和图形接口方面的 功能还比较欠缺,例如,m i n i g u i 有一套用来支持多字符集和多编码的函数接口, 可以支持各种常见的字符集,包括g b 2 3 1 2 ,b i g 5 ,u n i c o d e 等,而n a n o x w i n d o w s y s t e m 在多字符集的支持上尚没有统一接口。 9 武汉理:r = 大学硕士学位论文 第3 章嵌入式g u f 关键技术研究 3 1 系统结构 3 1 1 嵌入式系统层次结构 根据嵌入式g u ! 系统的可移植性、可配置性和可扩展性等特点,一般将它 作为嵌入式软件系统的一个组件部分以保持g u 自身的独立性,即采用层次式 体系结构。嵌入式g u i 在嵌入式系统中的层次结构如图3 1 所示郾】。 臣= 二j 亟亟二二 匠= 匿耍交口 匿星区圃圈匿圜 区= j 塑西登耍e 二j 图3 - 1 嵌入式系统层次结构 嵌入式g u i 以a p i 接口的形式向应用程序提供各种g u i 对象( 如窗口、菜 单等) 编程接口函数。嵌入式g u i 根据嵌入式操作系统提供的进程创建与进程 通信底层系统调用工具来实现自身的消息驱动机制,窗口管理器等。通过硬件 抽象层,嵌入式g u 可以拥有统的设备操作接口,能够方便的接收各种输入 ( 如鼠标、键盘、触摸屏等) ,而不需依赖操作系统的某种特殊的功能,实现g u i 系统良好的可移植性和通用性。 3 1 2 嵌入式u g i j i 系统结构模型 一个好的嵌入式g u i 系统提供上层接口使其与硬件无关并且具有良好的可 移植性。因此g u i 系统需要使用抽象层来封装底层功能,同时还要给上层应用 提供封装接口。 1 0 武汉理t 大学硕士学位论文 啊仄研 触摸屏j 已;壁垒。:l 酴 a p i 接口 a w 窗口管理 “ 输 入 消息管理 抽对象管理 象 内存管理 层 图形崖 。; 输出抽象层。 二垂堕叠二 图3 - 2 :嵌入式u g u i 系统结构 图3 - 2 给出了嵌入式g u i 系统结构图,包括内部核心模块及各模块与外围 设备或应用程序的接口情况。内部采用垂直分层结构设计,分层体系结构便于 抽象、结构清晰、层间接口功能定义明确。虚线方框内是组成g u i 内核的主要 模块,它由窗口管理器( w i n d o w m a n a g e r ) 、消息管理器( m e s s a g em a n a g e r ) 等 模块组成。 分层设计方法使得窗口系统中各个部分具有相对的独立性,当需要针对嵌 入式系统中多样的软硬件环境进行功能扩展或系统移植时,只需要对相关层的 模块进行改写或编写新的结合层代码,而对整个系统不会有很大的改动,提高 了系统移植的效率,方便扩充,体现了嵌入式图形用户晃厦的可定制的特点, 本文将在随后具体讨论这个问题。 3 2 核心机制与技术 3 2 1 基于l in u x 的f r a m e b u f f e r 显示驱动技术 显示驱动是设备驱动中最复杂的部分,一种现实方案是采用第三方的比较成 熟的图形驱动库。l i n u x 自内核2 2 0 版本起引入了f r a m e b u f f e r 设备子系统,这 种驱动程序接口将显示设备抽象成帧缓冲区,提供了基于帧缓存的图形硬件的 抽象接口。帧缓冲区可以看成是显示内存的一个映象,允许用户通过帧缓存区 映射到用户进程空间来直接进行读写操作,从两达到控制图形显示的效果。这 种方法屏蔽了底层图形硬件的细节,提供了在不同平台上访问图形硬件的一致 武汉理工大学硕士学位论文 接口,成为嵌入式g u i 系统所广泛采用的通用显示驱动技术。 该驱动程序的设备文件一般是d e v f b o 、d e v t b l 等。比如,假设现在的显示 模式是8 0 0 x 6 0 0 - - 8 位色,则可以通过如下的命令清空屏幕 9 1 0 l : $ d di f = - d e v z e t oo f = - d e v f b 0b s = 8 0 0c o u n t = 6 0 0 在应用程序中,般通过将f r a m e b u f f e r 设备映射到应用程序进程地址空间 下的方式使用,比如下面的程序就打开d e v f b 0 设备,并通过m m a p 系统调用进 行地址映射,随后用n l c m s e t 将屏幕清空( 这里假设显示模式是8 0 0 6 0 0 - - 8 位 色模式,线性内存模式) : i n t t b ; u n s i g n e dc h a r + f b _ m e m ; f b = o p e n ( d e v l b 0 , or d w r ) ; f om e m = m m a p ( n u l l ,8 0 0 + 6 0 0 ,p r o tr e a d i p r o t _ _ w r i t e ,m a ps h a r e d , f b ,0 ) ; m e m s e t ( t b _ m e m 0 ,8 0 0 6 0 0 ) ; f r a r a e b u f f e r 设备还提供了若干i o c t l 命令,通过这些命令,可以获得显示设 备的一些固定信息( 比如显示内存大小) 、与显示模式相关的可变信息( 比如分 辨率、象素结构、扫描线的字节宽度) ,以及伪彩色模式下的调色板信息等等。 因此,采用f r a m e b u f f e r 来构建g a l ( g r a p h i c a b s t r u c t l a y e r ) 是相当合适的, 当添加新的硬件时,只需要添加新的针对这种设备的g a l 实现版本就可以了, 而不必修改上层模块。 3 2 2 事件消息驱动机制 在g u i 程序的整个生命周期中,它是不断地从外部输入设备获取某些事件, 如用户的按键或者鼠标的移动,然后根据这些事件做出某种响应,并完成一定 的功能,这个循环直到程序接收到某个特定消息为止。在早期的单片机上使用 的简单单任务g u i 系统,是使用一个大循环,以便在这个循环中不断的检查每 一个应用程序是否触发了特定的事件,如是否点选了鼠标等。而且即使我们能 够在这个大循环中检查到所有的可能发生的事件,这也不是一个好的设计,因 为这不但会让整个系统不时的处于1 0 0 的运作状态之中,当循环检查一个特定 的应用程序时,可能另外一个应用程序已经发生了事件,但是由于系统还在检 查其它的应用程序,因此没有时间来处理真正发生的事件,因而造成处理此时 发生事件的应用程序严重缓慢地响应时间,甚至事件丢失的情况发生。 1 2 武汉理r 大学硕十学仲论文 事件消息驱动机制【l l 】:当特定的事件( e v e m ) 发生时,我们的系统只要知道 是哪一个应用程序应该或是能够处理这个事件,在把该事件所对应的消息 ( m e s s a g e ) 分派到正确的应用程序来处理。事件消息驱动机制运行模型如图3 - 3 所示。 图3 3 事件消息驱动运行模型 事件消息驱动机制的特点【1 2 - 1 q : ( 1 ) 事件触发的随机性。在程序执行过程中,下一步做什么是不可预知的, 完全取决于当时所发生的事件。 ( 2 ) 多任务。多个任务可同时执行,即可以连续激活多个事件,引发多个 任务同时执行。 ( 3 ) 消息分发。当一个事件被触发,即向这个事件相关联的应用程序发送 一个消息,完成其相应的功能。 采用事件消息驱动机制后,用户只需关心事件产生和消息处理,使得g u i 系统比较容易维护,增强了可扩展性。 3 2 3 窗口管理技术 现代窗口系统的一个重要特征是对多窗口的支持,即允许用户把内容显示 在不同的、可以重叠的屏幕区域内。多窗口系统能够显示更丰富的信息,而且 之间可以方便、快速地切换。为了正确地显示各个c u i 对象,需要解决如下两 个基本问题:一个是如何确定每个g u i 对象的物理位置;另一个是如何解决g u i 对象间的相对位置关系。这些窗口单元之间的相互关系主要有:窗口之间的相 互位置关系,窗口之间的显示顺序关系,以及当窗口的位置信息和显示顺序发 生变化时,窗口之间的变化关系等l l5 1 。 因此窗口管理技术要解决如下问题: ( 1 ) 接受消息管理器入口( 桌面窗口) 进入的消息,并使消息正确路由至 武汉理1 = 人学硕七学位论文 目标窗口,并触发窗口过程; ( 2 ) 更新活动窗口和焦点窗口艟件: ( 3 ) 维护窗口的z 序列和各个窗口的剪切矩形链,正确进行窗口重绘,执行 窗口过程。 3 3 面向对象方法与嵌入式g u i 随着嵌入式软件系统的复杂性的不断增长,传统的嵌入式系统的开发方法 已经不能满足需求。近几年来,厦向对象方法无论是在理论上还是实践上都受 到广泛地研究与应用。 3 3 1 面向对象技术简介 面向对象方法( o b j e c t - o r i e n t e dm e t h o d ) 是一种把面向对象的思想应用于软 件开发过程中,指导开发活动的系统方法,简称o o ( o b j e c t - o r i e n t e d ) 方法,是建 立在“对象”概念基础上的方法学【i “。对象是由数据和允许的操作组成的封装 体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。 对象具有属性( p r o p e r t i e s ) ,也可以进行操作,即具有方法( m e t h o d s ) 。对象之 间的通信产生了消息( m e s s a g e ) 。对象发出消息,消息又驱动其他对象进行操 作,而这些操作又使得某些对象的属性发生变化,从而完成某一任务l l ”。面向 对象的程序设计就是以对象、事件、消息驱动等为基本出发点的程序设计思想。 3 3 2 面向对象技术的优点及应用 面向对象技术在嵌入式图形用户界面系统设计中具有如下优点: ( 1 ) 良好的可移植性 面向对象技术的应用可以使嵌入式图形用户界面系统获得良好的可移植 性。系统在底层分别为显示屏、键盎和触摸屏等构造抽象的数据结构,实现与 具体硬件相关的函数代码,对外提供访问和控制这些设备的一致接口。以显示 设备为例,系统维护一个抽象显示设备接构,定义关于屏幕的相关属性,比如 屏幕的高度和宽度,象素的颜色深度等,更重要的是,它定义了各种设备访问 接口,包括初始化和终止、图形上下文管理、画点处理函数、矩形框填充函数、 调色板函数等等。这些访问接口,对于基于f r a m e b u f f e r 设备、基于s v g a l i b 和 1 4 武汉理工大学硕士学位论文 基于x t i b 的显示驱动分别有不同的代码实现,而且在基于f r a m e b u f f e r 设备的显 示驱动中,进一步引入设备驱动集合,分别实现对s 位、1 6 位、2 4 位、3 2 位象 素深度的显示驱动。 如果在某个实际项目中所使用的图形硬件比较特殊,现有的显示驱动均不 支持。这时,我们就可以按照抽象显示设备结构中所定义的接口实现自己的显 示驱动,并指定系统使用这种新的显示驱动即可。这种软件技术实际就是面向 对象多态性的具体体现。 利用底层硬件设备抽象,可以大大提高嵌入式g u i 的可移植性,并且使得 程序的开发和调试变得更加容易。 ( 2 ) 良好的可扩展性 字体和字符集的支持,对任何个g u i 系统将都是不可缺少的。不过,各 种g u l 在实现多字体和多字符集的支持时,采用了不同的策略。比如,对多字 符集的支持,q t e m b e d d e d 采用u n i c o d e 为基础实现,这种方法是目前比较 常用的方法,是一种适合于通用系统的解决方案。然而,这种方法也带来许多 问题,其中最主要及时u n i c o d e 和其它字符集之间的转换码表会大大增加g u i 系统的尺寸。这对某些嵌入式系统来讲是不能接收的。 运用面向对象的策略是在处理字体和字符集的模块中引入一个逻辑字体抽 象接口,用来处理文本( 包括文本输出和文本分析) ,将各种不同的字体( 比如 宋体、黑体和楷体) 和字体格式( 如等宽字体、变宽字体等光栅字体和t m e t y p e 等矢量字体) ,以及各种不同字符集( i s o 8 8 5 9 、g b 2 3 1 2 、b i 9 5 、u n i c o d e 等) 综合起来,从而可以通过统一的接口显示不同字符集的不同字体的文本,并且 还可以分析各种字符集文本的组成,比如字符、单词等。 通过逻辑字体这一结构,实现了文字输出和文本分析两个功能,尤其在处 理多字节字符集,比如g b 2 3 1 2 或者b i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论