ARM汇编语言程序设计基础第13章图形用户接口.ppt
《ARM汇编语言程序设计基础第13章图形用户接口.ppt》由会员分享,可在线阅读,更多相关《ARM汇编语言程序设计基础第13章图形用户接口.ppt(45页珍藏版)》请在三一办公上搜索。
1、第13章 图形用户接口(GUI),定义,图形用户接口(Graphics User Interface,GUI),又叫桌面系统、窗口管理系统、图形操作环境、图形用户界面等,是操作系统和用户的人机接口。GUI极大地方便了非专业用户的使用,人们不再需要死记硬背大量的命令,而可以通过窗口、菜单方便地进行操作。,13.1图形用户接口的层次结构,图形基础设施,图形基础设施是一种底层的图形驱动引擎,一般是由操作系统提供。它是用作其他更高一层图形或者图形应用程序的基本函数库/依赖库,在其之上可以针对某些特定应用需求做进一步的封装。譬如,在对于只需要单任务的低端应用,可以以API函数的形式,封装成静态或者动态的
2、高级图形函数库。而在更多的场合,用户是需要类似Windows的桌面系统,这样就要构建多任务GUI窗口管理系统。在Linux环境下,常见的图形基础设施有SVGALib(VGA)、X Window(Xlib)、LibGGI和FrameBuffer等。,高级图形函数库,高级图形函数库提供的图形界面编程接口主要分为两大类,一类只提供基本的画点绘线、文本区域处理等,如SDL(standard drawing library);另一类就是以窗口部件(widget,亦称为控件、部件等)形式,采用面向对象方式进行可视化的编程,可用于嵌入式GUI系统(需要诸如pThread等消息处理函数库的支持)和可以运行在G
3、UI系统上的应用程序的开发,诸如GTK,QT和PEG等。,13.1.3 GUI窗口管理系统,GUI窗口管理系统是一个非常复杂的系统,很多时候甚至就类似于一个操作系统,它是嵌入式系统设计中迄今为止没有很好解决的难点之一。目前,在桌面GUI系统领域主要有X-Windows、KDE、GNOME等,在嵌入式系统领域,主要有MiniGUI、Nano-X(Microwindows)、OpenGUI和Qpe(Qt Palmtop Environment)等。,13.2 桌面Linux系统中GUI,KDE(Kool Desktop Environment)与GNOME(GNU Network Object E
4、nvironment)是目前桌面Linux/UNIX系统中最常用的桌面GUI窗口系统。MiniGUI、Qt/E和Nano-X则是嵌入式系统中广泛应用的嵌入式GUI系统。,13.2.1 KDE,KDE是1996年德国Matthias Ettrich发起了符合GPL规范的开源项目,与之前各种基于X Window的图形用户环境不同的是,KDE并非针对系统管理员等高级用户,而是锁定为普通的终端用户,即希望KDE能够包含用户日常应用所需要的所有应用程序组件,例如Web浏览器、电子邮件客户端、办公套件、图形图像处理软件等。,13.2.2 GNOME,GNOME是1997年墨西哥年仅26岁的程序员Migue
5、l De Icaza发起的开源项目,目前诸如RedHat/Fedora、SuseLinux发行版都默认使用它。它功能上的特性和KDE类似,并且相对要轻便些,13.3 嵌入式Linux系统GUI,在现代的嵌入式人机系统中,人是用户和主动的参与者,能与机器对话,要求机器对人的各种动作做出响应。因此,图形用户界面已经成为嵌入式应用系统研制中的重点之一。典型的嵌入式GUI 系统有紧缩的 X Window 系统、MiniGUI、Nano-X(MicroWindows)、Tiny X(紧缩版的X-Windows)、OpenGUI、QT/Embedded 等.,13.3.1 MiniGUI,MiniGUI是
6、1998年底推出的一款面向嵌入式系统或者实时系统的GUI系统,是国内最早出现的、在国际上有一定知名度的几个自由软件项目之一,最先是由原清华大学教师魏永明先生主持开发,现由北京飞漫软件技术有限公司进行商业化维护和运作。自1999 年初以遵循 GPL 协议发布第一个版本以来,MiniGUI 已广泛应用于手持信息终端、机顶盒、工业控制系统及工业仪表、便携式多媒体播放机、查询终端等产品和领域。,13.3.2 Qtopia,Qtopia是嵌入式GUI窗口系统,也叫做嵌入式Linux的桌面系统,是Trolltech 面向嵌入式设备的Qt掌上机环境(Qt Palmtop Environment,Qpe)。它
7、建立在Qt/Embedded(即Qt/E)之上,基于Qt/E开发出来的程序就可以放到这个桌面上,为开发提供了一个类似于Windows这样易于使用的界面。Qtopia分为开源的PDA版本Qtopia和收费的手机版Qtopia,前者提供PDA的桌面系统基本源代码,后者还包括手机模块代码等。,13.3.3 Nano-X,Nano-X的前身就是Century Software 推出的开源项目Microwindows。它主要采用C语言进行开发,采用C/S体系结构,提供了相对完善的图形功能,并且具有分层设计。最底层是屏幕和输入设备驱动程序(关于键盘或鼠标)来与实际硬件交互。在中间层,可移植的图形引擎提供对
8、线的绘制、区域的填充、多边形、裁剪以及颜色模型的支持。,13.4 MiniGUI的开发初步,MiniGUI具有良好的软件架构,通过抽象层将MiniGUI 上层和底层操作系统隔离开来。如图所示,基于MiniGUI 的应用程序一般通过ANSI C 库、操作系统和驱动程序接口以及MiniGUI 自身提供的API 来实现自己的功能;MiniGUI 中的“可移植层”可将特定操作系统及底层硬件的细节隐藏起来,而上层应用程序则无需关心底层的硬件平台输出和输入设备。,13.4 MiniGUI的开发初步,13.4.1 MiniGUI 的开发环境,MiniGUI 的开发可以在Linux 或Windows操作系统下
9、进行。由于MiniGUI 完全用C 来编写,具有非常好的移植性,也使得MiniGUI 应用程序的交叉编译工作十分方便。一般而言,为嵌入式设备编写的应用程序可以在任何安装在针对该设备的交叉编译工具链的平台上进行编译,比如在桌面Linux 环境下安装针对ARM CPU平台交叉编译器(arm-linux-gcc等),然后再对应用程序进行交叉编译。,这里给出windows下面编译minigui的步骤(wvfb):首先要从网上下载MinGui For Win32 开发包的源代码。;解压后,把dll文件夹下的minigui.lib pthreadVC1.lib拷贝到helloworld文件夹下(以便程序能
10、够在当前目录下找到DLL文件),然后进入helloworld文件夹找到helloworld.dsw,用vc+打开;,然后在工程菜单内设置选择C/C分类中选择预处理在包含路径中填入./include,./include/minigui,./include/pthread-win32 在LINKE目录下选择general,然后把LIB里的库文件加在对象/库模块的后面,也就是那两个minigui.lib pthreadVC1.lib,最后在分类中选择INPUT把库文件地址连接进去也就是./LIB,打开wvfb文件夹下的wvfb.exe,然后在vc+中执行helloworld.这里要注意的是,Mini
11、GUI for Win32是预编译的函数库,因此,其中的功能特性是固定的,包括编译时选项和运行时选项。,13.4.2 MiniGUI的移植,1.PC 机上配置,编译,安装,运行MiniGUI(1)在redhat9.0 上配置FrameBuffer要激活VESA Frame Buffer 驱动程序,需要修改/boot/grub/menu.lst 文件,并在kernel打头的一行添加vga=0 x0317.其中8,FrameBuffer)就是设置了VESA FrameBuffer 的引导选项。,(2)在PC上编译并安装MiniGUI开发包第一步,在PC 上编译并安装libminigui第二步,在P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 汇编语言 程序设计 基础 13 图形 用户 接口
链接地址:https://www.31ppt.com/p-6501700.html