《机顶盒设备GUI系统的设计与实现.pdf》由会员分享,可在线阅读,更多相关《机顶盒设备GUI系统的设计与实现.pdf(71页珍藏版)》请在三一文库上搜索。
1、第 I 章 绪论 第1 章 绪论 1 . 1 课题背景及意义 随着近年来多媒体技术、 通讯技术相结合的信息时代的快速发展和互联网的 广泛应用, 我们从P C 时代过渡到了后P C 时代。 后P C时代的主要特征就是用于工 作和生活的小型数字智能嵌入式设备得到广泛的应用。 嵌入式技术全面渗透到日 常生活的每一个角落,同人们的日常生活紧密结合。 特别是计算机、 通信和消费 类电子产品随着信息技术的快速发展进一步走向融合。 3 C 产品的结合与一体化, 已 成为信息技术和信息产业发展的重要趋势。 在人们的家居生活方面,家电类产品开始加速走向数字化、网络化的道路。 信息家电、 网络家电成为家用电器的主
2、流, 网络技术和通信技术在传统家电中的 应用引发了一场革命。 具备信息处理能力、能够完成上网、 家庭办公和网络化娱 乐的功能性家电在人们的生活中得到广泛地认可,同时成为家电巨头和I T 厂商 倾力打造的对象。 信息家电作为一个新兴的消费领域,由于存在着微处理器运算能力要求不 高、 存储介质容量有限、 可移动性、 价格低廉等因素的限制, 不可能大量应用复 杂、价高的P C系统。而嵌入式产品具有操作简单、界面友好、质量可靠、价格 低廉以及操作系统易开发、 可剪裁和应用范围广的特点, 使得信息家电成为嵌入 式软件最具发展空间的领域。 在众多的嵌入式操作系统中, 业内人士普遍认为,L i n u x
3、是最具发展后劲的 嵌入式操作系统。 这是L i n u x 本身独有的特色所决定的, 如开放源码, 性能高效 稳定、多任务、 可定制内核; 对不同C P U 体系结构的支持;完善的网络通讯、图 形、文件管理机制; 支持大量的外围硬件设备;良 好的开发环境,不断发展的开 发工具集等。 对于要求成本低廉, 开发周期短, 性能稳定的嵌入式系统来说这些 特性都是至关重要的, 而L i n u x 恰好具有这些特性, 无疑成为嵌入式系统的主流 操作系统。 众多的国内外厂商积极涉足这一领域, 不仅对现有的L i n u x 系统进行 改造, 使之更符合家电 类嵌入式产品的要求, 同时提供了完善的软硬件的解
4、决方 案和技术支持,以 满足家电 类嵌入式产品快速开发的要求。 在嵌入式开发的关键性技术中,G U I 技术占有重要的地位。回顾计算机的发 北京工业大学工学硕士学位论文 展历史, G U I 的出现是一次革命。它使得计算机成为大多数人所使用工具,而不 仅仅只是研究人员的专利。 用户界面的使用极大地推动了计算机技术的发展, 深 刻地影响着人们的工作和生活。 归咎其原因就是它们建立了 使用者与工具之间自 然的人机交互界面一多媒体界面。 由于开发用户界面的工作量极大, 加上不同用 户对界面的要求也不尽相同, 因此, 用户界面已成为计算机软件研制中最困难的 部分之一。 在计算机分支的嵌入式领域,G U
5、 I 同样起到人与设备之间沟通桥梁的 作用, 由于使用人群更加广泛, 因此对具有亲和力的嵌入式G U I 系统要求的呼声 也越来越高。 在早期, 一些小型嵌入式设备由于硬件条件的限制, 所看到的用户界面都非 常简单,几乎看不到我们习以为常P C机上华丽美观图形用户界面。 但随着嵌入 式 G U I 技术的发展,新近出现的P a l m等手持式电脑或者在 W i n d o w s C E等面向 嵌入式系统的操作系统上, 已经可以看到完整的图形用户界面支持。 近来的市场 需求表明, 更多的嵌入式系统, 如 P D A 、 机顶盒、 D V D / V C D播放机、 W A P手机等 等均要求提
6、供友好的用户图形界面,甚至全功能的 W e b浏览器。而这一切均要 求有一个高性能、高可靠的 G U I系统的支持。这些嵌入式系统一般不希望建立 在庞大累赘的、 非常消耗系统资源的窗口 系统之上, 比 如 W i n d o w s或 X W i n d o w , 而是根据需要采用比较简单的手法实现 G U I 。随着嵌入式设备硬件条件的提高, 估计嵌入式系统对轻量级 G U I 系统的需求会越来越迫切。 在 L i n u x成为嵌入式系统的主流操作系统之后,许多嵌入式设备均采用 L i n u x作为操作系统。虽然用 L i n u x搭建嵌入式系统有很多优势,但 G U I仍然 是一个
7、问题。 关键在于原有的 X W i n d o w太过庞大和臃肿。 利用L i n u x 作为底层 的操作系统, 在上层搭建面向不同需求的专用G U 工 系统成为日益流行的嵌入式系 统图形用户界面的解决方案。 本人有幸参与了同方凌讯公司卫星数字机顶盒项目G U I 系统的开发。 这是一 个嵌入式L i n u x 的项目, 但其上缺少一个小型的、 嵌入式G U I 系统. 为了能过更 好地实现图形用户界面,需要在设备驱动层 ( 图形输出设备、用户输入设备等) 上为上层应用程序的开发提供图形界面开发支持。 开发过程涉及L i n u x 驱动到上 层图形界面的应用, 跨度较大。 考虑到目 前国
8、内外对嵌入式L i n u x 的研究正处于 热潮, 而嵌入式G U 工 技术是嵌入式L i n u x 关键技术之一, 是绝大多数嵌入式设备 第 1 章 绪论 必不可少的。 一个小型、 高效、 G U I 系统, 在国内嵌入式市场上是极具竞争力的。 所以对嵌入式G U I 系统的深入研究分析, 并在此基础上设计并实现一个小型的面 向嵌入式的图形界面G U 工 开发工具集具有很大的实用价值和深刻的现实意义。 1 . 2目前G U I 系统在嵌入式应用中的发展现状 随着嵌入式设备市场的不断扩大, G U I 系统的开发成为嵌入式开发过程中的 必不可少的关键环节。 众多的开发厂商对面向不同嵌入式系
9、统而设计的专用G U I 系统的要求也日 渐紧迫。 采用一种适合的G U I 系统, 往往成为嵌入式产品是否在 市场上获得成功的决定性因素。由于嵌入式设备具有开发周期短的市场行为, 嵌 入式厂商多采用较为现成的G U I 产品, 这无疑产生了一个巨大的G U I 系统软件市 场。近年来,国内和国外软硬件厂商均有大手笔来进入这个日 益膨胀的领域。 国外的L i n u x 嵌入式G U I 系统发展较早, 较为著名的有Q T库开放商面向嵌 入式系统的Q T / E m b e d d e d , 还有开放源码的 项目M i c r o W i n d o w s、 O p e n G U I ,
10、及 G T K + 公司专门面向嵌入式系统开发的G t k F B 。另外 X W i n d o w系统的紧缩型版本 也有较好的应用。 国内嵌入式领域的公司和厂商主要着眼于对国外优秀嵌入式产品的引进和 技术吸收。 如中科红旗与T r o l l t e c h 国际间强强合作, 为嵌入式L i n u x 平台提供 基于Q T / E m b e d d e d 的解决方案等. 其它国内的嵌入式系统的提供商纷纷拿出了采 用国外先进G U I 产品的解决方案。 国内自 有软件领域,最为成功的是M i n i G U I 。它是一套基于L i n u x 实时嵌入 式系统的轻量级图形用户界面支持
11、系统, 可以为应用程序定义一组轻量级的窗口 和图形设备接口。 随着M i n i G U I 的不断完善, 也逐渐得到了用户的认可。 在计算 机数控系统、P o s 机、销售终端以及其它工业领域中得到了广泛的应用。 另外值得一提的是共创软件联盟。 它是一个非营利的组织, 旨 在以开放源代 码为前提,推动国内系统软件的发展. 得到了国家 8 6 3 计划智能计算机主题专 家组的支持, 以嵌入式L i n u x 领域的关键技术为研究课题。 嵌入式G U 工 技术是研 究课题重要组成部分之一。 未来嵌入式系统图形用户界面层( G U I ) 的研究主要将着重于可移植性、标准 性、与具体硬件平台无关
12、性、可剪裁性等方面。主要的研究内容涉及到: 多线程 北京工业大学工学硕士学位论文 多进程的使用、消息驱动、完备触摸屏和显示设备相关的驱动程序、实现与 X - W i n d o w 标准的部分兼容、支持不同语言文字输入输出等。 1 . 3本文主要内容与组织结构 木文的主要内容大体分为四个部分来阐述: 第一部分: 本文的第 1 章。 介绍选题的背景及意义, 描述了目 前G U I 系统在 嵌入式应用中的发展现状。 第二部分: 本文的第2 章。 对本课题外围的基础知识做了一个较为全面的介 绍。 首先对嵌入式系统开发相关内 容作介绍, 分别对嵌入式软件特点、 要求和嵌 入式系统开发过程的特殊性进行简
13、要的描述,随后详细介绍嵌入式 L i n u x下的 G U 工 技术相关的内容。 分别对嵌入式G U I 系统的特点, 基于L i n u x 系统的嵌入式 G U I 模型, L i n u x 嵌入式领域重要的G U I 系统进行分析. 第三部分: 本文的第3 章, 第4 章,第5 章。 本文的主体。 对本课题卫星数 字机顶盒G U I 平台的设计和开发进行全面的描述. 第3 章, 首先从项目的类型, 相关的软件开发工作, 硬件平台,软件平台与 开发环境四个方面,对本次的嵌入式开发总体环境作介绍。然后分析自 行开发 G U I 系统平台的可行性,提出了G U I 系统的实现要求。 第4
14、章, 综合考虑项目的特点和要求, 提出了G U 工 系统的实现方案。 主要内 容涉及到图形引擎的考虑, 通过对硬件紧密相关的图形驱动进行分析, 提出了显 示内存和内存缓冲区的设计; G U 工 系统体系结构的考虑, 对采用怎样的工作模式, 底层实现怎样的机制作出了回答: 窗口体系设计的考虑, 根据特点有选择的建立 G U I 对象; 支持位图操作功能的考虑。根据对上述技术问题的思考, 最后从分层 结构和模块化设计的角度给出了G U I 系统的软件实现方案, 为具体实现提供了 清 晰的思路。 第5 章, 从软件模块的角度对G U I 系统的具体实现进行举例, 分别从核心机 制模块、图形引擎模块、
15、 G U I 对象模块给出了 较为详细的实现说明。 最后根据实 现的机制,给出了G U I 应用的一个编程实例片断. 第四部分:全文总结. 第2 章 L i n u x 嵌入式开发及G U I 系统 第2 章 L i n u x 嵌入式开发及G U I 系统 L i n u x嵌入式系统关键技术包含内核定制技术、硬件平台支持技术、嵌入 式G U I 技术、电源管理技术、操作系统仿真调试技术、应用软件及设备驱动仿 真技术、 通信协议支持/ 扩展技术以 及系统应用软件等。 嵌入式G U I 技术是L i n u x 嵌入式系统关键技术之一。一般来说,嵌入式L i n u x 应用系统主要包括五层2
16、 1 如图2 -1 嵌入式 L i n u x 应用系统层次图所示。 嵌入式 应用程序 嵌 入 式 G U I 系 统 L I N U X 操 作 系 统 设 备 驱 动 程 序 底 层 硬 件 图2 - 1嵌入式L i n u x 应用系统层次图 F i g u r e 2 - 1 E m b e d d e d L i n u x a p p l i c a t i o n s y s t e m l e v e l d i a g r a m 从中我们可以看到其中G U I 系统是上层应用程序的基础, 占有重要的地位。 如果没有一个高性能G U I 的支持,是无法满足应用程序功能的需要。
17、在市场中 良 好的图形用户界面也是嵌入式设备能否被接受的关键。 2 . 1嵌入式系统开发的特点及过程 嵌入式计算机系统同通用型计算机系统相比具有以下特点: ( 1 )嵌天式系统是面向 特定应用的。 ( 2 )嵌入式系统是先进的计算机技术、 半导体技术和电子技术与各个行业 的具体应用相结合的产物。 ( 3 )嵌入式系统的硬件和软件都必须高效率地设计, 量体裁衣、 去除冗余, 力争在同样资源使用上实现更高的性能。 ( 4 )嵌入式系统和具体应用有机地结合在一起, 它的升级换代也是和具体 产品同步进行的。 ( 5 )为了 提高执行速度和系统可靠性, 嵌入式系统中的软件一般都固化在 北京工业大学工学硕
18、士学位论文 存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。 ( 6 )嵌入式系统本身不具备自 举开发能力, 即使设计完成以后用户是不能 对其中的程序功能进行修改的, 必须有一套开发工具和环境才能进行 开发3 1 嵌入式计算机系统具有以 上的 特点, 因 而嵌入式系统开发相对于在W i n d o w s 环境下的开发应用程序有着很多的不同。主要是由不同的硬件平台和操作系统 带来的开发复杂性。这种不同和复杂性表现为: ( 1 )嵌入式应用软件需要交叉开发环境。 交又开发环境是指实现、编译、链接和调试应用程序代码的环境。它与运 行应用程序的环境不同,分散在有通信连接的宿主机与目 标机环境之中
19、。宿主 机是一台通用计算机, 如W i n d o w s 或L i n u x 等通用P C 系统, 通过串口或网络连 接与目 标机通讯。其上的软硬件资源比较丰富,拥有各式各样的开发工具和集 成环境,如W i n d r i v e r的t o r n a d o , W i n d o w s 的v i s u a l c + + 嵌入式t o o l k i t开 发环境, g n u的嵌入式开发工具套件等。目 标机用来区别与嵌入式系统通信的 宿主机,通常是嵌入式应用软件的实际运行环境,也可能是替代实际环境的仿 真系统。特点是体积小、集成度高且软硬件资源配备都恰到好处。在交叉式的 开发中
20、,必须使用交叉软件开发工具,包括交叉编译器、交叉测试器和一些仿 真 软件等。 ( 2 )引 入了新的任务设计方法。 嵌入式应用系统以任务为基本的执行单元。在系统设计阶段,用多个并发 的任务代替通用软件的多个模块,并定义应用软件任务间的接口。 ( 3 )开发完成后可能需要进行移植,必须进行固化和固化测试。 嵌入式应用程序的开发通常都是在P C 和工作站上进行, 但运行的目标环境 却不同。 在不同体系结构P C 或工作站上的应用程序开发基本完成后, 需要向嵌 入式平台 ( 目 标机) 移植软件. 这样在P C 机上编写软件时, 就需要注意软件的 可移植性,选用具有较高移植性的编程语言( 如C 语言
21、) ,尽量少调用操作系统 函数,注意屏蔽不同硬件平台带来的字节顺序、字节对齐等问 题。另外应用软 件在目 标环境下必须存储在非易失性存储器中, 通常要烧写到目 标环境的 R O M 中。在固化的二进制可执行代码中并不包含调试附加程序,因此为了保证固化 第2 章 L i n u x 嵌入式开发及G U I 系统 程序的安全及正确的运行,要进行必要的固化测试. ( 4 )软件质量要求高。 绝大多数嵌入式应用系统要具有实时性能的要求, 另外在稳定性、 可靠性、 抗干扰性方面也非常严格和苛刻。努力提高代码的效率,减小代码的大小,避 免内存泄漏,有选择的使用全局变量, 减少函数调用前参数入栈和函数完成后
22、 参 数出 栈的 花销, 通常是嵌 入式编 码细节 上的 一 些要求 15 。 总的来说, 嵌入式系统开发整个的开发流程分为四个阶段: 需求分析阶段、 设计阶段、生成代码阶段和固化阶段。同通用软件的开发流程基本一致,但每 个阶段都体现嵌入式开发的特点。下面简要介绍每一个阶段的嵌入式开发的需 要考虑的特殊问题。 ( 1 ) 需求分析阶段 在此阶段, 需要注意嵌入式应用软件的特有性能需求。 嵌入式系统往往是 具有专用性的。 不同应用之间对系统的要求可能相差很大。例如对实时性、用 户界面、系统升级等方面的要求往往有差别。这些分析的结果对系统的软硬件 的设计是至关重要的。 ( 2 )设计阶段 嵌入式软
23、件具有通过并发任务运作的特点。 传统的设计方法并不适应这种 并发的设计模式。在嵌入式领域中通常使用任务设计方法。 ( 3 )生成代码阶段 由于代码的开发平台通常是采用普通P C 机, 普遍情况是使用工 n t a l 的x 8 6 系列 C P U ,而目 标环境的处理芯片却是多种多样的,这样就要求开发机上的编 译器能够支持交叉编译。交叉编译完成后,下一步的工作是交叉测试,这也不 同于通用软件的调试方法。此类调试方法有以下特点:调试与被调试程序运行 在不同的机器上,同过某些通讯方式建立联系。通常目 标机上带有调试代理, 或是直接使用仿真器. ( 4 )固化阶段 这个阶段是嵌入式系统开发所特有的
24、。包含固化和固化测试两个步骤。固 化过程,是将软件写入非易失性的存储单元。系统级软件对于存储的布局有严 格的要求。最后还要对固化后软件执行的正确性进行测试。 北京工业大学工学硕士学位论文 2 . 2嵌入式G U I 系统的特点与模型 嵌入式G U I 系统同通用型G U I 系统相比具有以下特点: ( 1 )嵌入式G U I 系统的功能集通常只是通用功能的子集。 ( 2 )嵌入式 G U I 系统必须进行高效率地设计,根据应用量体裁衣、去除冗 余,力争在尽量小的软件尺寸上实现尽可能多的功能。 ( 3 )嵌入式G U I 系统应提供完整,简洁的A P I 支持,便于嵌入式系统开发 人员快速开发。
25、 ( 4 )界面友好、简洁、有很好的交互性是对嵌入式 G U I系统提出的重要要 求。 ( 5 )嵌入式产品的运行环境差异很大,因此良好的嵌入式G U I 系统必须具 有高可靠性,可移植的特点. ( 6 )一般来说嵌入式系统的 C P U资源并不是很丰富,这样嵌入式 G U I 系统 通常要进行严格的代码优化。 嵌入式L i n u x G U I系统的开发要参照现有 P C桌面系统来进行设计.嵌入 式G U I 系统模型跟通用G U I 系统并没有很大的区别, 如绘图函数库、 文字显示、 事件等问题都是G U I 系统所要面临的。但是由于嵌入式系统本身有种种限制, 因此在整体设计上必须谨慎。
26、 典型的图形用户界面系统通常是由三个基本的层次组成,即显示模型、窗 口 模型和用户模型 ; 1 . 如图2 - 2 所示。 乒 目户 翻 邃幻 翻 u口 枉 睡彗v - 蛋 是万t 冲 其 型 J 桑1 乍 系 绍 双 硬门 牛军 阵台 图2 - 2图形用户界面的结构模型 F i g u r e 2 - 2 G r a p h i c a l U s e r I n t e r f a c e s m o d e l 显示模型位于操作系统之上,它决定了图形在屏幕上的基本显示方式。不 同的图形用户界面, 系统采用的显示模型各不相同。 在 U N I X 上运行的图形用户 第2 章 L i n u
27、 x 嵌入式开发及G U I 系统 界面多采用X 窗口 作为显示模型, 而M S w i n d o w s 系统则采用自己 设计的图形设 备接口 ( G D I )作为显示模型。 在显示模型之上是窗口 模型, 窗口 模型确定窗口 如何在屏幕上显示, 如何移动及层次关系等。 它通常包括有编程工具, 及对如何 移动、输出 和读取屏幕显示信息的说明。在窗口 模型之上是用户模型,它包含 有两个部分:构造用户界面的工具和这些工具如何组织以及如何交互。 在L i n u x 下的G U I 体系中不得不提到X 窗口系统。X 窗口系统是U n i x 上标 准的图形界面。 L i n u x 的X F r
28、 e e 8 6 G U I 系统就是兼容X 的系统. 在讨论L i n u x嵌 入式G U I 系统时,我们采用X 系统的分层思想,大致可分为以下几个层次: . G r a p h i c L i b r a r y :图形库实现最基本的图 形操作, 将一幅图像视为由 若 干像素点组成。设计一系列函数描述对像素点的繁琐操作,来实现较为高 级的操作如画点、画线、画矩形等。 .T o o l k i t s : 在G r a p h i c L i b r a r y 的 基 础 上, 将 构 成 视窗 程 序的 抽 象 元 件, 如按键、静态文本等,重新定义成一组更高级的函数,在配合一些较为
29、繁 琐的语法。Q T , G T K + 就是这样的图形界面工具。 . W i n d o w M a n a g e r : 主要是充当窗口 管理员的角色,为不同 视窗的沟通和协 调控制提供服务,如窗口的切换、放大、缩小等等。 .I n t e r n a t i o n a l i z a t i o n : 语言 文 字的 国 际 化 支 持。 . X S e r v e r / X C l i e n t : X S e r v e r 负责显示器的输出、 键盘和鼠 标等输入设 备的输入进行管理。X C l i e n t 是利用X S e r v e r 进行显示输出的应用程序。 X
30、 w i n d o w s 系统涵盖了 一般的 G U I系统所必须具备的功能, 但是并不适用 于嵌入式系统中,因为这个体系相对于精致的嵌入式系统来说太过于庞大,复 杂。L i n u x嵌入式G U I 系统通常会把较为繁琐的机制简化,将层次合并,甚至 全部捆绑在一起,以减小G U I 系统的尺寸。 2 . 3 L i n u x 嵌入式领域重要的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 , M i c r o W i n d o w s , Q p e n G U I , Q T / E
31、 m b e d d e d等, 这些系统凝聚着计算机软件业人才 的智慧结晶,对独立开发专用G U I 系统有很强的借鉴意义。下面的内容着重从 技术角度对些系统进行简单介绍。 北京工业大学工学硕士学位论文 紧缩型的X W i n d o w 系统:X W i n d o w 是L i n u x以 及其他类U n i x 系统的标准 G U 工 。 X W i n d o w 系统采用标准的C l i e n t / S e r v e r 体系结构,具有可扩展性 好、可移植性好的优点。但该系统的庞大、累赘和低效率也是大家所共知 的。为了 获得应用程序的可移植性,许多厂家都试图通过对X W i
32、 n d o w 系统 进行精简紧缩开发,使之能够在嵌入式系统上运行。该系统的源代码尚不 开放,从而很难进行本地化开发。 O p e n G U 工 : 即e n G U 工 在 L i n u x系统上存在己 经很长时间。 支持多 种操作系统 平台, L L 如 M S - D O S , Q N X和 L i n u x等等, 不过目 前只支持 x 8 6硬件平台。 O p e n G U I 分为三层。 最低层是由 汇编编写的快速图形引 擎; 中间 层提供了 图 形绘制 A P I ,包括线条、矩形、圆弧等。第三层用 C + +编写,提供了完整 的G U I 对象集。 Q t / E m
33、 b e d d e d : 移植了 大量的原来基于 Q T 的 X W i n d o w s 程序, 提供了非常 完整的嵌入式 G U I解诀方案。但是该系统不开放源码,需要支付昂贵的授 权费 用。 特点是可移植性较好, 放弃了X S e r v e r及 X L i b r a r y等角色, 将所有的功能全部整合在一起。具有层次简单,效率高,代码尺寸小等优 点。 G t k F B :为嵌入式系统提供了一套基于 G T K + 的 G U I解决方案。与 Q t / E m b e d d e d技术特点相似,G t k F B 跳过 X 层直接使用 F r a m e B u f f
34、 e r ,因此也 具有 Q t / E m b e d d e d的优点。 M i c r o W i n d o w s : M i c r o W i n d o w s 是 一 个开 放 源码的 项目 , 该 项目 的 主 要 特 色 在于提供比 较完善的图形功能,包括一些高级的功能,比如 A l p h a混合, 三维支持, T r u e T y p e字体支持等. 但作为一个窗口 系统, 该项目 提供的窗 口 处理功能还需要进一步完善。设计采用分层的原则,便于用户按自己的 需 要来修改、 删减 和增加。 大 体分为3 层: 最底层是s c r e e n , m o u s e
35、/ t o u c h p a d 和 k e y b o a r d驱动程序,它们直接与显示和输入硬件打交道:中间 层是一 个可移植的图形引擎层, 它使用最底层提供的服务完成对画线、 区域填充、 文本、多边形、裁剪区域、色彩等的支持;最上层是A P I ,提供给图形化应 用程序调用。 M i n i G U I :从整体结构上看,M i n i G U I是分层设计的,如图2 - 3 所示。在最 第2 章 L i n u x 嵌入式开发及G U I 系统 底层是图形引擎和输入引擎和P t h r e a d 线程库( 用于提供内 核级线程支持的 C函数库) 。在上层采用面向对象的技术提供的图
36、形抽象层和输入抽象层 ( G r a p h i c s a n d I n p u t A b s t r a c t L a y e r , G A L和 I A L ) ,它定义了一组不 依赖于任何特殊硬件的抽象接口,所有顶层的图形操作和输入处理都建立 在抽象接口之上。中间层是 M i n i G U 工的核心层, 其中包括窗口系统必不可 少的各个模块;最顶层是 A P T ,即编程接口。作为一种窗口系统,它的基 本组件是窗口。窗口可以划分为四种类型:主窗口、对话框、控件和子窗 口。 在窗口的实现中M i n i G U I 采用了大量的面向对象元素。另外在字符集 和字体支持上也采用了面
37、向对象技术。M i n i G U I本身是一个多线程或多进 程窗口 系统,它有两个不同的版本。它的许多模块都以单独的线程或进程 的形式运行, 进程之间、 线程之间采用客户/ 服务器机制来实现的交互操作 2 5 1 。 设计模型如图2 - 3 0 A P T M i n i G U I 核心 图形抽象层输入抽象层P t h r e a d 线程 库图形引擎输入引擎 图 2 - 3 M i n i G U I 设计模型 F i g u r e 2 - 3 M i n i G U I d e s i g n m o d e l 以上 G U I软件产品结构较为系统化,具有完整的图形界面接口 A P
38、 I 。上层 的应用程序开发较为简易,为嵌入式设备的开发提供了很好的软件平台。但是 也有它们的不足,例如它们为了 尽量满足不同嵌入式设备的要求,一般多采用 了较为复杂的抽象层设计,来屏蔽底层系统的差异。这不可避免地增大G U I 系 统的尺寸,在某些对存储资源要求非常严格的嵌入式设备是不适用的。另外软 件产品的使用费用,也是嵌入式设备开发厂商所要考虑的。并且在现阶段对某 些功能的支持并不十分理想。由 于这样的原因一些厂商也常常根据开发设备需 要, 采用自己开发的简易G U I 系统, 或者直接将G U T 的功能嵌入到应用程序中。 第3 章 数字机顶盒开发 第3 章 数字机顶盒开发 本项目 开
39、发的嵌入式设备是一款家用型数字卫星机顶盒。 数字电 视机顶盒可 分为数字卫 星机顶盒 ( D V B - S ) 、地面数字电视机顶盒 ( D V B - T ) 和有线电 视数字 机顶盒 ( D V B - C ) 三种。数字卫星机顶盒目 前应用较为广泛。 数字卫星机顶盒又 称为综合业务接收机, 用来接收数字卫星广播节目。 该类机顶盒在几年前就己商 业化, 有专业型和家用型的区分。 现在所看的许多卫视节目都是有线电视台通过 专业综合业务接收机从卫星接收下来, 再通过有线电缆送入用户家中的。 家用型 在我国并不普及, 但在国外用于收看卫星直播节目的家用型卫星电视机顶盒还是 具有较好的市场。本产
40、品也主要是针对国际市场。 3 . 1 数字卫星机顶盒功能 数字卫星机顶盒的主要功能是接收数字电视广播, 就是将接收下来的M P E G - 2 视频和音频解调、 解码后在数字电视上回放, 同时也可支持数据广播、 图文电 视 等应用。 但由 于它的传输平台是卫星信道, 支持像w e b 等交互式应用还比 较困难. 目 前,数字卫星机顶盒基本采用D V B - S 标准,国内 外都有商用产品. 除主要功能外,此款的卫星数字机顶盒还提供的一些辅助功能: . 电子节目 指南 ( E P G ) 。电子节目 指南( E P G ) 给用户提供一个容易使用、界面 友好、可以快速访问想看节目的一种方式, 用
41、户还可以通过该功能收看一个 或多个频道,甚至所有频道上近期将播放的节目。同时, E P G可提供分类功 能,帮助用户浏览和选择各种类型的节目。 . 卫星定位数据升级。 使用S A T C O D X 协议从专用网 站上下载最新卫星定位数据。 . 有条件接收功能。功能全面的数字机顶盒应具有解扰和解密功能. . 娱乐功能。随机带有娱乐性小游戏。 3 . 2数字卫星机顶盒软件开发的相关工作 本项目 的开发有良 好的软硬件技术的支持, 将在随后的章节中提到。 开发的 相关工作大致分为以下几个部分: . 嵌入式L i n u x 操作系统平台及设备驱动的搭建。 北京工业大学工学硕士学位论文 调试工具的固
42、件等. 本项目 采用嵌入式L i n u x 开发环境, 包括开发主机服务器、 支持g d b 的调试 工具、目 标板、网络和各个开发成员主机组成。如图3 - 2 所示。 项目 管理采用G U N 的A u t o c o n f 和A u t o m a k e , m a k e 工具。 L i n u x 系统下提供了一种很方便的创建无盘工作站的方式, 这种无盘工作站 可以从一台远程服务器启动。 无盘工作站启动的时候, 通过连接设备获得L i n u x 内核、 文件系统。 我们的开发中采用了 上述原理。 可以方便的在目 标板上测试操 作系统和应用程序,而不需对F l a s h 进行反
43、复地烧写。 具体目 标板启动和应用程序开发过程: 在服务器上编译好嵌入式系统所使用的内核, 确保内核支持n f s 。 配置主机端 N F S服务, 设置嵌入式系统所使用的根文件的路径。系统配置 t f t p服务, 并将内 核放入服务目 录, 后启动t f t p 服务。 目 标板配置B I O S , 启动F l a s h 的b o o t l o a d e r o C P U 提供的代码无法完成大系 统映像的下载工作,只能使用b o o t l o a d e r 的功能,并且有很大的灵活度,如: 指定内核和文件系统映像的下载位置等。 B o o t l o a d e r 的主要任
44、务:初始化处理 器中的一些寄存器。初始化必要的硬件。如:内存、中断控制器、串口或以太网 设备 ( 用于下载嵌入式系统映像文件) 。 向开发主机t f t p 服务器请求,从开发主机下载L i n u x 的映像. 目 标板L i n u x 内 核启动,o f s 方式通过网 络安装根文件系统。操作系统启动 后直接通过内核中n f s 相关代码对处于网 络上的n f s 文件系统进行安装。 网络文 件系统n f s 采用访问任何本地文件一样的方法来访问远程主机上的文件。 并且这 种文件访问对客户来说是完全透明的。 通过t e l n e t 方式登陆开发服务器, 在已 经挂接到目 标板的n f
45、 s 文件系统中 进行开发或编译程序.或者在本机开发,通过f t p 服务下载到n f s 文件系统中。 运 行 程 序 和 调 试 程 序 需 要 登 陆 到 目 标 主 机 。 调 试 时 桑 用G N U 的 远 程 调 试 工 具g d b . 3 . 4数字机顶盒 G U ! 系统的开发方式 在嵌入式G U I 系统的开发中, 较为专业的不外乎两种, 其一是精简既有的系 统。在开发角度来看,精简既有的系统是最快速的方式,缺点是效能不好控制、 第3 章 数字机顶盒开发 体积只能缩小到一定的程度。 其二是重新打造一套。 对于非通用、 硬件差异很大 的嵌入式设备,条件允许当然是重新打造一套
46、为最好, 优点如系统掌握程度高、 效能及软件体积都能调整到最佳, 缺点在于成本较高, 要考虑所需的开发时间和 人力成本。 上述看来二者都有优点和不足。 具体选择那一种开发方式, 归结到最后都是 由市场中嵌入式设备的成本所决定的。 硬件成本: 在嵌入式市场中, 从产品的竞 争力来讲,机顶盒这类系统的主要考虑点是在于硬件的成本。其中价值较高的 F l a s h R O M 芯片的费 用占 有很大的比重。 减小软件的 尺寸, 无疑会降 低硬件的成 本而提高产品的竞争力。 这样就提出一个要求, 对于G U I 系统要尽量少占 用存储 体, 代码尽量精简实用。既有系统精简后, 仍会有一些冗余, 并且某
47、些系统并不 是很成熟, 某些功能有时仍然要手工增添。 软件成本: 从时间和人力的成本来看, 嵌入式设备的开发中最繁琐、 最耗时的工作在于设备驱动程序的开发。 如果系统 和部件提供商提供有完整的驱动支持, 那么开发一套全新的G U I 系统的软件成本 会有很大程度上的降低。 考虑本次开发的项目 是一款卫星数字机顶盒, 对硬件成本要求严格, 同时其 图形用户界面不是很复杂,G U I 系统所要提供的功能也较单一,并且在开发中, 从系统层和设备层都有良 好的软硬件技术支持。设备层有完备的设备驱动支持, 自 行开发的G U I 系统可以方便的建立在驱动层之上, 从而避开了繁琐的驱动程序 开发, 大大的
48、减少了软件开发的费用. 考虑到上述的限制和本项目的一些开发优 势, 我们最终采用独立开发自己 专用的G U I 系统的方式, 实践证明是一个效率与 成本兼顾的选择。 3 . 5数字机顶盒G U I 系统的实现要求 总的说来数字机顶盒G U I 系统对软件本身主要有下面几个基本要求: . 系统精简, 功能能够满足卫星数字机顶盒人机交互界面的要求, 不必大而全。 . 系统可靠性要好。 . 软件结构清晰。 具体涉及到功能性来讲,卫星数字机顶盒的用户功能基本和模拟电视类似, 包括自 动搜索、 频道手工设置、 切换频道等, 此外提供E P G 浏览( 包括频道名称、 北京工业大学工学硕士学位论文 频道简
49、介、节目 预告等内容) 、主题节目 搜索等。 其中最为主要的部分是E P G 浏览又名电子节目 指南, 是运行在机顶盒上的一 种应用程序, 通过电视屏幕向用户提供由文字、 图形和图像组成的人机交互界面, 负责电视节目 和各种增值业务的导航。 E P G 相当于个人计算机中的资源管理器和 浏览器,是用户与机顶盒交互的主要途径。另外提供一些娱乐游戏功能。 通过对机顶盒的人机交互界面的了解, 确定本项目中G U I 系统开发库中实现 如下一些功能,可分为三个类:图形输出、设备输入、窗口对象。 . 图形输出类包含: 今 基本图形操作。如点 令 位图操作。输出图标 令 设备输入类包含: 个 获取红外遥控输入。 个 获取面板键盘输入。 个 定时器输入。 . 窗口 对象主要包含: 令 控件。 线,矩形框,填充矩形的操作。 文字显示等。 命 对话框。 令 弹出式菜单。 数字电视机顶盒的图形用户界面层次结构可以概括为:图形用户界面的 最顶层是弹出式菜单, 下层可以是子菜单或者是对话框。 对话框位于最底层。 并且规定弹出式菜单的最大嵌套深度为3 。如图3 - 3 所示。 图3 - 3 图 形用户界面层次结构图 F i g u r e 3 - 3 G r a p h i c a l U s e r I n t e r f a c e l e v e l d i a g r a m 第
链接地址:https://www.31doc.com/p-3715448.html