|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在嵌入式系统领域,有不少GUI系统,如QNX Photon MicroGUI等,可是具体到嵌入式Linux领域又有哪些可供选择的GUI系统呢?
7 b8 q7 d/ l: o( E" I' b3 j4 x6 z8 [& P4 P- `, v$ W4 Y
) P8 i. ^8 L' x; P# ~* @
% O" d x# Q1 m9 Y0 Z
在 嵌入式环境底下,GUI系统的整体构架跟PC Desktop相去不远,例如绘图函数库、字型、事件处理等也都是嵌入式GUI系统所要面临的。但是嵌入式系统本身由于体积小、资源少的特点,所以在整体 设计上必须较为严谨,必须考虑的条件更多,有时很像又回到了Dos下编制程序的年代,对于软件所占的存储量有时可以说是锱铢必较。
' ?% G0 w5 @+ l! m g( y# k! p
* P" d# w" k% `Unix 环境下的图形视窗标准为X Window System(以下简称X标准),Linux是类Unix系统,所以顶层运行的GUI系统是兼容X标准的XFree86系统。X标准大致可以划分X Server、Graphic Library(底层绘图函数库)、Toolkits、Window Manager、Internationalization(I18N)等几大部分(详细内容见链接)。) L6 h: I9 c7 \
- I8 X( f9 ?2 {( [. g9 N
笔 者认为,虽然X架构不错,但却不怎么适用于嵌入式环境,因为实际工作起来实在太过于庞大,因此许多嵌入式Linux GUI系统会把上述几点合并,甚至全部绑到一起,当然这样同时也会失去很多弹性与扩展功能,但为了适应于嵌入式系统,这也是一个解决问题的方法。本文下面 就介绍一下现存的主流嵌入式Linux下GUI解决方案。3 a7 G# J3 V/ y7 d# P! z, J. t
9 c; i6 @8 c1 {% r) W9 ^主流解决方案介绍
) h' D' Q" V8 V- V* I8 H" e+ Q, }% K1 f1 \1 Y
Qt/Embedded$ m V1 f4 A* {3 x- x
( Z& R+ {) O( h: s- T, R5 }Qt 是Trolltech这家商业公司所开发的一个跨平台FrameWork环境,在X环境下可以看作是一套功能完整的用户界面工具包,它采用类似C++的语 法,并且具备物件导向功能。跨平台的特性可以让使用Qt编写的软件,在Microsoft Windows 95/98/2000、 Microsoft Windows NT、MacOS X、Linux、Solaris、HP-UX、Tru64 (Digital UNIX)、Irix、FreeBSD、BSD/OS、SCO、AIX等许多平台上执行。虽然是商业公司的产品,但是Qt走的却是开源路线,并遵循同样的 游戏规则,提供免费下载,全部都是开放源代码,非商业用途亦采用GPL的版权宣告,著名的Open Source “KDE” 项目便是采用Qt所开发的。& |6 N& |' k$ l, G: x
* r0 T0 w! O: \/ NTrolltech也针对嵌入式环境推出了“Qt/Embedded”产品。与桌面版本不同,Qt/Embedded已经直接取代掉X Server及X Library等角色,所有的功能全部整合在一起。
$ i l0 E9 N. x! v! _4 z& _ U" i/ L9 e Y3 \( ?+ ^6 F, l
Qt/Embedded 同样具有跨平台的特点,省掉了不少移植软件的功夫,这样的概念和Java十分接近。同时它还采用模块化设计,其最大的好处是有弹性, Qt/Embedded号称最小可以缩到800Kb左右,最多可以长到3Mb(for Intel x86),这样的弹性也让Qt/Embedded更适合在嵌入式环境下生存。
7 w, O% z: H; N- q" |$ g" b
( r% I2 w/ d* ?3 p$ f: h; N另 外,Trolltech公司还推出了针对PDA软件的整体解决方案QPE(Qt Plamtop Environment)。它从底层的GUI系统、Window Manger、Soft Keyboard到上层的PIM、浏览器、多媒体等,全部都考虑进去了。其主界面如图1所示 ,内部包括地址簿、计算器、世界时间、时间设置、记事本、终端、文件浏览器、帮助、媒体播放器、图像浏览器、文本编辑器等。
7 L& z- H6 W) T O' E8 W4 D6 f4 g6 |( _8 }9 X; ?, m! |$ _, s
相对其他GUI来说, Qt/Embedded 应该说是肥美型的产品,功能丰富,但能消化它的东西只能是高端产品,32MB内存是运行它的最小要求。因此,如果开发的产品不是高端的信息终端类产品,不应优先考虑 Qt/Embedded。5 U F% u1 k" `# s
! ^2 ^3 a6 [6 g; E s1 Y
GtkFB( i4 u( G8 _' @4 R
6 W9 g9 z) i& S. U7 k: L自 从Qt推出了嵌入式版本之后,虽然GTK+并非商业公司所发展,但也加紧脚步推出了GtkFB方案,其宗旨就是要为嵌入式系统推出一套基于GTK+的 GUI解决方案。与Qt/Embedded类似,GtkFB也跳过X层直接与FrameBuffer沟通,因此也具有Qt/Embedded的几项优点, 不过由于不是商业软件,在发展的速度上较为缓慢。
0 Z b5 _2 p+ J! C$ l v0 P+ e% m$ i5 f$ d
Microwindows
. H" U# X& G g9 E+ N+ L+ P ]. c; S" e# w9 o0 o
Microwindows Open Source Project成立的宗旨在于针对体积小的装置,建立一套先进的视窗环境,在Linux桌面上通过交叉编译可以很容易地制作出micro-windows 的程序。MicroWindows能够在没有任何操作系统或其他图形系统的支持下运行,它能对裸显示设备进行直接操作。这样,MicroWindows就 显得十分小巧,便于移植到各种硬件和软件系统上。6 d7 i0 D- T, W" ^1 ]! _
" v2 h; l: c/ U4 r6 z: ^
然而MicroWindows 的免费版本进展一直很慢,几乎处于停顿状态,而且至今为止,国内没有任何一家专业对 MicroWindows 提供全面技术支持、服务和担保的公司。
0 U) R5 K5 ~/ u6 k
7 _$ B" a; R- {7 s! M4 M* p- i+ |& Y$ W0 j4 `. u/ l
9 i2 {1 Y6 y: b9 [' z4 Y. F1 @
6 Z. t! S2 P5 U( y: \7 } @2 S8 W$ h! ]4 y: u/ F9 y
|
|