2024年6月10日发(作者:)
第五章 嵌入式系统图形开发
第五章 嵌入式系统图形开发
5.1 常用的几种嵌入式GUI图形开发软件
5.1.1 Microwindows
Microwindows Open Source Project这个图形开发软件主要针对体积比较小的
系统,而且在Linux操作系统的环境下可以使用交叉编译工具编写出简单的
Microwindows程序;Microwindows能够对所有的裸显示设备直接进行操作,也就
是说即便没有任何操作系统或其他图形系统的支持,Microwindows的程序仍然可
以正常的运行
[12]
。所以Microwindows编译出来的程序占用系统的空间很小,这就
方便用户对它进行移植。虽然有上述这些优点,Microwindows的免费版本非常难
以找到,尤其是在国内还没有对Microwindows提供全面技术支持的专业公司,这
就使得Microwindows的发展十分缓慢。
5.1.2 TinyX
Tiny X Server是由Keith Pachard发展起来的,该图形开发软件的作者是
XFree86 Project这个项目的核心成员之一。之后Keith Packard就以XFree86为基础
将比较庞大的X Server的精简到了几百KB,于是就形成了Tiny X Server。针对Tiny
X Server运行在纯XWindow System的架构下的最大的优点就是具有很好的弹性
开发机制,并能大大提高开发速度;因为Tiny X Server与桌面的传统X Server架
构相同,因此其移植性要比很多以Qt、FLTK 、GTK+等为基础开发的软件更加
的方便和容易
[13]
。虽然Tiny X Server非常方便移植,但是它的体积还是比较大并
且由于它是针对桌面环境开发的,所以在使用时对于桌面环境中的每个复杂功能
都要进行“校准和调校”,而往往就是这个时候是最花费时间的,并且有时候还
要进行重新改写,这无疑更加浪费时间。
5.1.3 OpenGUI
OpenGUI最初的名字叫FastGL,很长时间一来就一直存在于Linux操作系统
上。最开始它仅仅支持256色的线性显存模式,由于不断地发展目前也可以支持
其他很多显示模式;尽管对于硬件的支持却不是十分强大,目前为止仅仅能支持
49
天津工业大学硕士学位论文
X86硬件平台,但是OpenGUI现在支持MS-DOS、Linux和QNX等多种操作系统
平台。OpenGUI的结构主要分为三层:最低层是快速图形引擎,该层主要是通过
汇编语言的代码实现的;中间层提供了兼容于Borland的BGI API的图形绘制API,
包括圆弧、线条、角度、矩形等基本图形;第三层提供了完整的GUI对象集,主
要是通过C++实现的。OpenGUI比较适合于X86平台下的实时系统,主要采用
LGPL条款发布,但是其可移植性稍差
[14]
。
5.1.4 MiniGUI
MiniGUI主要是由魏永明先生主持,许多众多自由软件开发志愿者开发的自
由软件项目,并且它是面向嵌入式系统或者实时系统的图形用户界面支持系统,
主要运行于Linux操作系统的环境下。MiniGUI可以分为GAL层和IAL层,其中前
者由于是基于线程结构的,这也就影响了整个系统的可靠性,如果某个进程中某
个线程的因为非法反问而造成了意外错误可能导致整个进程收到很大的影响,因
此仅仅适合于功能要求单一的场合
[15]
。
5.1.5 Qt/Embedded
Haavard Nord 和Eirik Chambe-Eng于1991年开始开发了“Qt”,1994年3
月4日创立公司,最早名为Quasar Technologies,然后更名为Troll Tech,然后再
改为Trolltech,中文名称是“奇趣科技”;但是该公司在2008年6月17日被NOKIA
公司收购,以增强该公司在跨平台软件研发方面的实力,更名Qt Software。
Qt是一个多平台的C++图形用户界面应用程序框架,它是基于面向对象的思
想进行相应开发的,支持真正意义上的组件编程,可以为不同用户提供华丽的用
户界面
[16]
。所以,从本质上来说Qt是一个跨平台的C++应用程序开发框架,有时
又被称为C++部件工具箱。Qt被用在KDE桌面环境、Opera、Google Earth、Skype、
Adobe Photoshop Album和VirtualBox的开发中,是诺基亚(Nokia)的Qt
Development Frameworks 部门的产品。使用 Qt只需一次性开发应用程序和用户
界面,无须再次重新编写源代码,便可跨不同桌面和嵌入式操作系统部署这些应
用程序。
综上所述,本文使用的嵌入式图形开发工具为Qt/Embedded,下文将详细介
绍Qt/Embedded的安装、使用和在ARM上的移植。
50


发布评论