《面向实时嵌入式系统的图形用户界面支持系统》

上传人:tang****xu1 文档编号:167089316 上传时间:2021-02-11 格式:DOCX 页数:12 大小:17.68KB
返回 下载 相关 举报
《面向实时嵌入式系统的图形用户界面支持系统》_第1页
第1页 / 共12页
《面向实时嵌入式系统的图形用户界面支持系统》_第2页
第2页 / 共12页
《面向实时嵌入式系统的图形用户界面支持系统》_第3页
第3页 / 共12页
《面向实时嵌入式系统的图形用户界面支持系统》_第4页
第4页 / 共12页
《面向实时嵌入式系统的图形用户界面支持系统》_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《《面向实时嵌入式系统的图形用户界面支持系统》》由会员分享,可在线阅读,更多相关《《面向实时嵌入式系统的图形用户界面支持系统》(12页珍藏版)》请在金锄头文库上搜索。

1、面向实时嵌入式系统的图形用户界面支持系统来源:开关柜无线测温 http:/本文介绍面向实时嵌入式系统的图形用户界面一一 MiniGUI ,其 产生、发展及优势,并与其他面向嵌入式系统的 GUI进行了比 较,然后结合实例介绍了 MiniGUI的一些重要功能和特色, 最 后,本文介绍了正在进行的 MiniGUI的开发情况。嵌入式Linux 系统的GUI发展概况1.1 GUI在嵌入式或实时系统中的地位 在常见的PDA等小型手持式设备上,由于硬件条件等的限制, 我们看到的用户界面都非常简单,几乎看不到我们在PC机看到的华丽美观的 GUI支持。但最近出现的 Palm等手持式电脑 或者在 Windows

2、CE等面向嵌入式系统的操作系统上,我们已 经看到了完整的图形用户界面支持。随着手持式设备的硬件条 件的提高,我们估计嵌入式系统对轻虽级GUI的需求会越来越迫切。近来的市场需求显示,越来越多的嵌入式系统,包括PDA、机顶盒、DVD/VC D播放机、WAP手机等等系统均要求提供全功能 的 Web浏览器。这包括 HTML 4.0的支持、java script 的支 持,甚至包括Java虚拟机的支持。而这一切均要求有一个高 性能、高可靠的 GUI的支持。另外一个迫切需要轻虽级 GUI的系统是工业实时控制系统。这些系统一般建立在标准 PC平台上,硬件条件相对嵌入式系统 要好,但对实时性的要求非常高,并且

3、比起嵌入式系统来说, 对GUI的要求也更高。这些系统一般不希望建立在庞大累赘的、非常消耗系统资源的操作系统和GUI之上,比如Windows或X Window。目前许多这类系统都建立在DOS等系统上,并且采用比较简单的手法实现 GUI。但是,在出现Linux系统之 后,尤其在RT-Linux 系统出现之后,许多工业控制系统开始 采用RT-Linux作为操作系统,但 GUI仍然是一个问题。关键 是X Window太过庞大和臃肿。这样,这些系统对轻型GUI的需求更加突出。但是,我们必须清楚的是,嵌入式系统往往是一种定制设备, 它们对GUI的需求也各不相同。 举个简单的例子,有的系统只 要求一些图形功

4、能,而有些系统要求完备的GUI支持。因此,GUI也必须是可定制的。综上所述,GUI在嵌入式系统或者实时系统中的地位将越来越 重要,这些系统对 GUI的基本要求包括:1. 轻型、占用资源少。2. 高性能。3. 高可靠性。4. 可配置。1.2目前实时嵌入式系统 GUI的实现方法尽管实时嵌入式系统对 GUI的需求越来越明显,但目前GUI的 实现方法各有不同:1. 某些大型厂商有能力自己开发满足自身需要的GUI系统。2. 某些厂商没有将 GUI作为一个软件层从应用程序中剥离, GUI的支持逻辑由应用程序自己负责。3. 采用某些比较成熟的 GUI系统,比如MiniGUI或者其他GUI 系统。在上述手段中

5、,第2种方法是一种临时解决方案。利用这种手段编写的程序,无法将显示逻辑和数据处理逻辑划分开来,从 而导致程序结构不好,不便于调试,并导致大虽的代码重复。我们认为GUI是一种类似于操作系统的基础软件,这种软件系统应该遵循一定的标准,并且应该是开放源码的自由软件,从 而可以让开放商集中精力开发自己的应用程序。目前看来,在Linux之上进行(实时)嵌入式系统开发的厂商,一般选择如 下几种GUI系统:紧缩的 X Window 系统、MiniGUI、 MicroWindows、OpenGUl QT/Embedded等,下面首先对这些系 统进行简单介绍,并对它们的优缺点进行比较。1.2.1 紧缩的X Wi

6、ndow系统众所周知,X Window是Linux 以及其他类UNIX系统的标准GUI。X Window系统采用标准的客户/服务器体系结构,具有可 扩展性好、可移植性好等优点。但该系统的庞大、累赘和低效 率也是大家所共知的。为了获得应用程序的可移植性,许多厂 家都试图通过对 X Window系统的紧缩开发,使之能够在嵌入 式系统上运行。国外已经开发出了大小约为800K的X服务器。这对西方国家来说基本能够满足嵌入式系统的需求了。但该系 统的源代码尚不开放,从而很难进行本地化开发。1.2.2 MicroWindowsMicroWindows是一个开放源码的项目,目前由美国一家公司在 主持开发。该项

7、目的开发非常活跃,国内也有人参与了其中的 开发,并编写了 GB2312等字符集的支持。该项目的主要特色 在于提供了比较完善的图形功能,包括一些高级的功能,比如 Alpha混合,三维支持,TrueType字体支持等。但作为一个窗 口系统,该项目提供的窗口处理功能还需要进一步完善,比如 控件或构件的实现还很不完备,键盘和鼠标等的驱动还很不完 善。值得一提的是,该项目的许多控件是从 MiniGUI中移植过 去的,扫雷游戏也是从 MiniGUI中移植过去的。该项目已经启动了一个开放源码的浏览器项目,该浏览器在 KDE kfm提供的HTML解释器的基础上开发,目前能够解释一 些简单的HTML页面。1.2

8、.3 OpenGUIOpenGUI Linux系统上存在已经很长时间了。最初的名字叫 FastGL,只支持256的线性显存模式。 但目前也支持其他显示 模式。这个库是用 C+编写的,只提供 C+接口。1.2.4 Qt/ EmbeddedQT/Embedded是著名的QT库开放商正在进行的面向嵌入式系 统的QT版本。这个版本的主要特点是可移植性较好,许多基 于QT的X Window程序可以非常方便地移植到嵌入式版本。 但是该系统不是开放源码的,如果你要使用这个库,可能需要 支付昂贵的授权费用。目前,已经有了 QT/Embedded的演示版, 预计明年初将出现 QT/Embedded的正式发行版。

9、1.3 MiniGUI 简介MiniGUI是一种面向嵌入式系统或者实时系统的图形用户界面 支持系统。它主要运行于Linux控制台,实际可以运行在任何 一种具有POSIX线程支持的POSIX兼容系统上。MiniGUI同 时也是国内最早出现的几个自由软件项目之一。MiniGUI的主要特色有:遵循LGPL条款的纯自由软件。提供了完备的多窗口机制。这包括:多个单独线程中运行的多窗口。单个线程中主窗口的附属。对话框和预定义的控件类(按钮、单行和多行编辑框、 列表框、进度条、工具栏等)。消息传递机制。多字符集和多字体支持, 目前支持ISO8859-1、GB2312 Big5等 字符集,并且支持各种光栅字体

10、和 TrueType、Type 1等矢虽 字体。全拼、五笔等汉字输入法支持。BMP GIF、JPEG PCX TGA等常见图像文件的支持。Windows的资源文件支持,如位图、图标、光标等。 插入符、定时器、加速键等。其他(Beep、ETC/INI文件操作等)。小巧。包含全部功能的库文件大小为300 K左右。可配置。可根据项目需求进行定制配置和编译。高稳定性和高性能。MiniGUI已经在Linux发行版安装程序、CNC系统、蓝点嵌入式系统等关键应用程序中得到了实际的应可移植性好。目前, MiniGUI可以在X Window和Linux 控制 台上运行。中科院 EEOS开发组已经成功地将 Min

11、iGUI移植到 了他们的POSIX兼容系统上。蓝点软件(北京)研发中心也已 经成功地将 MiniGUI移植到了两款基于 StrongARM的嵌入式 系统上。1.4各种面向实时嵌入式系统的GUI之比较比较上述几个面向嵌入式系统的 GUI,我们认为目前比较成熟, 同时得到最多开发人员认可的有紧缩的X Window系统、MiniGUI、MicroWindows等系统。尽管紧缩的 X Window 系统 其X服务器可以降低到 800K的大小,但因为 X Window系统 的运行还需要其他程序和库的支持,包括X窗口管理器、XLib、建立在XLib 之上的GTK和QT等函数库,因此,紧缩的 X Windo

12、w系统在运行期间所占用的系统资源很多,加上中文显示和中文输入等本地化代码之后,系统的整体尺寸和运行时的资 源消耗将进一步变大。因此,嵌入式系统的开发商往往将紧缩 的X Window系统定位在机顶盒等对资源要求并不苛刻的嵌入 式系统上。MiniGUI和MicroWindows均为自由软件,只是前者遵循LGPL条款,后者遵循MPL条款。这两个系统的技术路线也有所不同。 MiniGUI的策略是首先建立在比较成熟的图形引擎之上,比如 SVGALib和LibGGI ,开发的重点在于窗口系统、图形接口之上;MicroWindows目前的开发重点则在底层的图形引擎之上,窗口系统和图形接口方面的功能还比较欠缺

13、。举个例子来说, MiniGUI有一套用来支持多字符集和多编码的函数接口,可以 支持各种常见的字符集,包括GB、BIG5、UNICODE等,而MicroWindows在多字符集的支持上尚没有统一接口。MiniGUI的重要特色2.1设计目标:小巧和可配置MiniGUI最初是为了满足一个工业控制系统(计算机数控系统)的需求而设计和开发的。这个工业控制系统是清华大学为一台 数控机床设计的计算机数控系统 (CN。在比较DOS Windows 98、Windows NT、Linux 等系统之后,该项目组决定选择 RT-Linux作为实时操作系统,以便满足2ms甚至更高的实时性。但是图形用户界面是一个问题

14、,因为 X Window不适合于 实时控制系统,并且当时 X Window系统的本地化也不尽人意。 因此,决定自己开发一套图形用户界面支持系统。这就是MiniGUI产生的背景。显然,MiniGUI 一开始就针对实时系统 而设计,因此,在设计之初就考虑到了小巧、 高性能和高效率。 目前,这个数控系统的开发已近尾声, MiniGUI在其中担当了 三E常重要的角色。在考虑到其他不同于数控系统的嵌入式系统时,为了满足千变 万化的需求,必须要求 GUI系统是可配置的。在 CNC系统中 得到成功应用之后,我们立即着手于MiniGUI可配置的设计。我们通过Linux 下的automake和autoconf

15、接口,实现了大 虽的编译配置选项,通过这些选项可指定 MiniGUI库中包括哪 些功能而同时不包括哪些功能。因此,MiniGUI是一个非常适合于工业控制实时系统以及嵌入 式系统的可定制的、小巧的图形用户界面支持系统。2.2重要特色2.2.1 多线程和多窗口MiniGUI中的窗口基本分四类,分别为主窗口、对话框、控件 和主窗口中的子窗口。MiniGUI中的主窗口和 Windows应用程序的主窗口概念类似, 但有一些重要的不同,MiniGUI中的每个主窗口及其附属主窗口对应于一个单独的线程,通过函数调用可建立主窗口以及对 应的线程。每个线程有一个消息队列,属于同一线程的所有主 窗口从这一消息队列中获取消息并由窗口过程(回调函数)进 行处理。VCOnGUJ 即 Virtual Console On MiniGUI ,是 MiniGUI 上的 虚拟控制台,即运行在 MiniGUI上的Linux 控制台仿真器, 见图1。从图1可以看到,MiniGUI应用程序能够同时创建多个 窗口,并且运行在不同的线程。图1 VConGUI- MiniGUI 上的Linux 控制台仿真器2.2.2 对话框和标准控件MiniGUI中的对话框是一种特殊的窗口,对话框一般和控件一 起使用,这两个概念和 Windows或X Window中的相关概念是 类似

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

当前位置:首页 > 办公文档 > 其它办公文档

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