嵌入式系统设计 教学课件 ppt 作者 李秀娟 第9章2003

上传人:E**** 文档编号:89494583 上传时间:2019-05-25 格式:PPT 页数:34 大小:854.50KB
返回 下载 相关 举报
嵌入式系统设计 教学课件 ppt 作者 李秀娟 第9章2003_第1页
第1页 / 共34页
嵌入式系统设计 教学课件 ppt 作者 李秀娟 第9章2003_第2页
第2页 / 共34页
嵌入式系统设计 教学课件 ppt 作者 李秀娟 第9章2003_第3页
第3页 / 共34页
嵌入式系统设计 教学课件 ppt 作者 李秀娟 第9章2003_第4页
第4页 / 共34页
嵌入式系统设计 教学课件 ppt 作者 李秀娟 第9章2003_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《嵌入式系统设计 教学课件 ppt 作者 李秀娟 第9章2003》由会员分享,可在线阅读,更多相关《嵌入式系统设计 教学课件 ppt 作者 李秀娟 第9章2003(34页珍藏版)》请在金锄头文库上搜索。

1、1,第9章 嵌入式图形用户界面编程,人机交互界面风格成就作品美誉 。,2,本章内容,9.1 嵌入式系统GUI简介,1,9.2 基于Qt的嵌入式GUI应用开发,2,3,简介,本章主要介绍嵌入式Linux图形用户界面GUI。为了使读者对嵌入式Linux系统下的图形用户界面有比较全面的认识,首先介绍几款常见的图形用户界面系统(GUI),接下来详细介绍其中常用的GUI软件Qt/Embedded,最后结合“Qt/Embedded编程实例”综合实训环节详细讲解Qt/Embedded的开发流程、如何建立开发环境以及QT的编译与移植过程等细节。,4,9.1 嵌入式系统GUI简介,GUI是Graphical U

2、ser Interface的简称,即图形用户界面,又称图形用户接口,是指采用图形方式显示的嵌入式设备与其用户之间的对话操作接口界面。 图形用户界面是嵌入式系统的重要组成部分。与早期计算机使用的枯燥的命令行界面相比,图形用户界面极大地方便了非专业用户的使用,使得用户从繁琐的命令中解脱出来,不再需要死记硬背大量的操作命令,而可以利用菜单、对话框、窗口、按钮等组件通过友好、直观、图形化、易于操作的图形用户界面对计算机进行方便、快捷的操作与交流。,5,GUI系统应稳定可靠,响应速度快。嵌入式系统对GUI的稳定性和可靠性有严格的要求,若GUI导致系统崩溃将导致比PC机宕机更为严重的后果,因此嵌入式系统的

3、GUI需要具有更高的稳定性和可靠性。此外,嵌入式系统对实时性往往有较高的要求,嵌入式GUI必须具备较快的响应速度。 目前几种成熟的基于Linux系统的嵌入式GUI主要包括MiniGUI、MicroWindows、OpenGUI和Qt/Embedded等。,5,9.1.1 MiniGUI,MiniGUI是一款为基于Linux的实时嵌入式系统提供一个高级窗口系统和轻量级图形用户界面支持系统。MiniGUI是我国自主开发的著名的自由软件项目(遵循GPL条款)之一,1998年底由清华大学魏永明主持和开发并成功应用在一个数控机床系统中,现由北京飞漫软件技术有限公司维护及开展后续开发。 MiniGUI为嵌

4、入式实时操作系统提供了完善的图形和图形用户界面的支持,运行高效可靠,是一款非常适合于工业控制实时系统以及嵌入式系统的可定制的、小巧的轻量级图形用户界面支持系统。,6,MiniGUI的主要特色有: 遵循GPL(GNU General Public License)条款的纯自由软件。 提供了完备的多窗口机制和消息传递机制。 体积小,占用空间少。支持Windows的资源文件,如位图、光标、图标、定时器等。 支持Windows的资源文件,如位图、光标、图标、定时器等。 可配置。可根据项目的具体需求进行定制配置与编译。 高稳定性和高性能。,7,可移植性好。 支持多种常见的图像文件格式,如BMP、GIF、

5、JPEG、PNG等。 支持多字符集和多字体。 完整的多窗口系统。 完备的图形功能。 完备的图形用户界面构件(Widget)集。,8,MiniGUI为嵌入式 Linux系统的多进程运行环境提供了完整的图形窗口系统支持。 为了适应不同的操作系统环境,可以将MiniGUI配置成MiniGUI-Processes(Lite)、MiniGUI-Threads和MiniGUI-Standalone三种不同的运行模式。,9,MiniGUI手机特效示例,10,9.1.2 Microwindows/Nano-X,Microwindows是一个著名的开放源码的嵌入式GUI软件,采用 MPL(Mozilla Pub

6、lic License)条款发布,目的是把现代图形视窗环境引入到运行Linux的小型设备和平台上。 作为PC机上的X Window系统的替代品,Microwindows提供了与X Window相似的功能,但可以使用更少的RAM和文件存储空间(约为100KB600KB)。Microwindows的核心基于显示设备接口,基本上是用C语言实现的,只有部分关键代码使用了汇编语言以提高整体速度,因此Microwindows的可移植性很好。,11,Microwindows采用了基于客户机/服务器(Client/Server)的分层设计方法,可以分为三层。 在最底层是面向图形输出和屏幕、触摸屏、鼠标以及键盘

7、的驱动程序,它们提供了对实际硬件物理设备的访问能力;在中间层提供底层硬件的抽象接口,实现了一个可移植的图形引擎,支持对线的绘制、区域的填充、多边形、剪切以及颜色模型等;在最上层提供了两种流行的图形编程应用程序接口API 。,12,9.1.3 OpenGUI,OpenGUI主要是为x86硬件平台开发的,最初的名字叫FastGL。FastGL是一个跨平台的32位的图形库与图形用户界面,它主要用来在开发图形应用程序及游戏等。OpenGUI基于用汇编语言实现的x86图形内核,提供了一个快速的面向高层的C/C+图形接口。OpenGUI能够在32位计算机的多种操作系统下运行,支持如Linux、DPMI客户

8、端、MS-DOS和QNX等多种操作系统软件平台。,13,OpenGUI的整体结构可分为三层:最低层是由汇编语言编写的快速图形引擎;中间层提供图形绘制API,包括线条、圆弧、矩形等,并且兼容Borland的BGI API;第三层用C+语言编写,提供了完整的GUI对象库。 OpenGUI为软件开发人员提供了简单的2D绘图原语、消息驱动窗口API,支持BMP图像文件格式。,14,9.1.4 Qt/Embedded,Qt/Embedded简称QTE,是一个自包含GUI和基于Linux嵌入式平台的图形用户界面开发工具。 Qt/Embedded最早由挪威TrollTech公司开发,是QT专门面向嵌入式系统

9、平台的版本,有关Qt 的详细介绍请参考本章9.2小节。Qt/Embedded主要面向高端手持设备和移动设备等,其丰富的API接口和基于组件的编程模型使得嵌入式Linux下的GUI应用程序开发非常便捷,导致Qt/Embedded已经成为嵌入式系统领域的主要GUI。,15,Qt/Embedded是一个专门为嵌入式系统提供图形用户界面的工具包,为用户提供了与桌面型QT相似的应用程序接口,不同的是Qt/Embedded已经取代了X Server及X Library,采用Framebuffer帧缓冲作为底层图形接口并直接将所有功能都整合在一起。同时,Qt/Embedded将外部输入设备抽象为keyboa

10、rd和mouse输入事件,其应用程序可以直接写内核缓冲帧,避开了开发者使用繁琐的Server/Lib系统。Qt/Embedded内存消耗比较少,提供了丰富的窗口部件而且支持窗口部件的定制。,16,9.1.5 几种常见嵌入式GUI的对比,如果以ARM硬件平台进行嵌入式高端设备的开发时,笔者认为不应再考虑OpenGUI和Microwindows。这两种传统的GUI系统由于项目规模较小,系统功能相对薄弱,缺乏等三方开发软件的支持,在高端手持或移动终端设备中应用较少。OpenGUI主要是为x86硬件平台开发的,很难移植到ARM架构上。Microwindows最大的特点在于能提供和X Window在某种

11、程度上的兼容性,但效率、稳定性以及运行速度等方面表现较差。对于另外两种GUI系统,MiniGUI定制能力强,速度快,性能较好;,17,Qt/Embedded运行速度相对较慢,但对应用软件的开发支持好,功能丰富、强大。与其他几种GUI不同的是,Qt/Embedded的底层图形引擎采用FrameBuffer,这就注定了它是针对高端嵌入式图形领域应用而设计的。如果项目开发的目标是PDA、SmartPhone、车载导航系统之类的高端嵌入式设备,硬件内存(32MB以上)和CPU速度都比较充足,可以选择Qt/Embedded。如果内存和CPU运行速度均较低,则选择开销较小的MiniGUI较为合适。,18,

12、9.2 基于Qt的嵌入式GUI应用开发,Qt最初由挪威TrollTech奇趣科技公司于1995年底推出,是该公司的一个标志性产品。2008年初,TrollTech公司被Nokia收购并更名为Qt Software,Qt已经归入Nokia旗下。 Qt是一个支持多种操作系统平台的C+应用程序和图形用户界面(GUI)开发框架,用于高性能的跨平台软件的开发。它包括扩展的C+跨平台类库、集成开发工具和跨平台IDE。除了跨平台类库外,Qt还提供了许多可以用来直接快速编写应用程序的工具。,19,9.2.1 Qt概述,Qt最初主要是为软件开发人员提供一个跨平台的、统一的图形用户编程接口,发展到现在Qt也提供了

13、网络和数据库操作方面的编程接口。QT的开发架构如图9.8所示,QT以开发工具包的形式提供给开发人员,具体包括图形设计器、字体国际化工具、用来为不同平台和编译器制作Makefile的工具qmake和Qt的C+类库等。Qt的C+类库类似于Windows平台上的MFC,不同的是Qt的类库封装了适应不同操作系统的文件处理、网络等细节,支持跨平台运行。,20,Qt提供了丰富的窗口部件集,具有面向对象、易于扩展、真正的组件编程等优点,其主要特色包括: (1)优良的跨平台特性,可移植性强 (2)Qt使用标准的面向对象机制,支持使用C+进行开发 (3)便利性 (4)构件支持 (5)支持跨平台的2D和3D图形渲

14、染,支持OpenGL、SQL和XML,21,(6)国际化:Qt为本地化应用提供了完善的支持,同时用户界面文本也可以基于消息翻译表被翻译成其他各种语言。 (7)友好的联机帮助和大量的技术开发文档:Qt提供了大量的联机参考文档,如Networking、XML和database等,初学者可以很方便地按照文档的介绍,一步一步地学习如何进行Qt编程。 (8)Qt的商业版本Qt企业版和Qt专业版可供用户作商业软件的开发。,22,9.2.2 Qt的信号与槽机制,信号(signal)与插槽(slot)机制是Qt的核心机制,使用信号与槽进行对象之间的无缝通信是Qt最主要的特性之一,也是Qt与其他工具包的主要区别

15、。信号与槽是一种高级接口,是Qt自行定义的一种独立于标准C/C+语言的通信机制,也比其他GUI开发库的机制更为简单灵活。,23,Qt的信号与槽机制是一种强有力的处理对象间通信的方式,可以完全取代传统的回调和消息映射机制。在信号与槽机制中,当一个用户特定事件发生时,该对象中的一个或几个特定信号就被发射;而槽就是一个返回值类型为void的函数,如果存在一个或几个槽与该信号相连接,信号被发射后,与其相关联的槽(函数)就会被立刻执行,就像一个正常的函数调用一样。信号与槽可以使用任意数量和任意类型的参数,信号与槽连接之后,槽会在正确的时间使用该信号的参数而被调用。信号与槽机制完全独立于GUI的任何事件循

16、环,且只有当所有的槽返回以后发射函数才能返回。,24,9.2.3 Qt图形设计器(Qt Designer),Qt的GUI应用程序编程可以直接采用手工编写源代码的方式,也可以基于Qt Designer进行程序设计。直接使用代码来编写GUI大型程序无疑是非常痛苦的,好在Qt提供了一个可视化的GUI图形界面开发工具Qt图形设计器(Qt Designer)来加速开发工作。,25,Qt设计器的功能十分强大,界面类似于Windows下的Visual Studio的编程,并且它还支持信号和槽机制,以使部件间能够进行有效的通信。Qt Designer可以用来开发一个应用程序全部或者部分的界面组件,而且还提供了大量可供编程使用的部件资源。开发人员既可以创建对话框式的程序,也可以创建带有菜单、工具栏等部件的主窗口式程序。,26,Qt设计器利用向导方式,使得菜单、工具栏以及数据库程序的创建变得快且方便。下面介绍一下Qt Designer的开发环境以及使用Qt Designer开发程序的过程。在Unix或者Linux操作系统下,通过点击Qt 设计器的图标,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号