第
28
卷第
10
期 计算机应用与软件
Vol. 28 No. 10
2011
年
10
月
Computer Applications and Software Oct. 2011
Qt / E
的嵌入式
Linux GUI
研究与实现
汤 伟 李 强
(
杭州电子科技大学计算机学院 浙江 杭州
310018)
收稿日期
: 2010 - 08 - 10 。
汤伟
,
硕士生
,
主研领域
:
嵌入式
Linux。
摘 要 嵌入式
GUI( Graphical User Interface)
为嵌入式系统提供了一种应用于特殊场合的人机交互接口
( Man-Machine Inter-
face) 。
由于嵌入式系统本身的硬件资源有限
,
要求嵌入式
GUI
具有高度可移植性和可裁剪性
,
以适应不同的硬件条件和使用需求
。
首先介绍嵌入式
Linux GUI
目前的发展状况及各自的特点
,
然后针对目前主流的嵌入式
GUI
系统
———Qt /Embedded,
阐述其图形引
擎的实现
。
最后
,
结合三星公司
S3C2410
的开发板
,
实现了一种嵌入式
GUI
系统在具体平台上的应用
。
关键词
ARM9 Linux
交叉编译 嵌入式
GUI Qt Qt /Embedded Qtopia FrameBuffer Signals /Slots
中图分类号
TP316
文献标识码
A
RESEARCH AND REALIZATION OF Qt / E EMBEDDED LINUX GUI
Tang Wei Li Qiang
( School of Computer Science and Technology,Hangzhou Dianzi University,Hangzhou 310018,Zhejiang,China)
Abstract Embedded GUI provides a man-machine interface for embedded systems that are applied to special occasions. The limitation of
hardware resources of the embedded system demands its GUI to be highly portable and tailorable so as to adapt to various hardware platforms
and practicalities. The article starts off by introducing the present development of embedded Linux GUIs and their respective characteristics.
Next aiming at Qt /Embedded,a mainframe embedded GUI system,the article expounds how to realise its graphic engine. What’s more,by
integrating Samsung S3C2410 development board
,the authors have achieved the application on a specific platform for an embedded
GUI system.
Keywords ARM9 Linux cross-compiling Embedded GUI Qt Qt / Embedded Qtopia FrameBuffer Signal /Slots
0
引 言
由于嵌入式系统的特殊性
,
它一般不会建立在庞大的操作
系统以及
GUI
之上
,
如
Windows
或
X Windows,
它对实时性的要
求非常高
,
对
GUI
的要求更高
。
1
嵌入式
Linux GUI
概述
目前
,
以
Linux
为操作系统的嵌入式系统中
,
常用的
GUI
有
Qt / Embedded、MicroWindows、MiniGUI
及
OpenGUI
等
。
1. 1 Qt / Embedded
Qt / Embedded
是挪威的奇趣科技
( TrollTech)
公司
(
注
:
该
公司已于
2008
年
2
月被诺基亚公司以
1. 53
亿美元收购
)
推出
的一个跨平台的
C + +
图形用户开发界面库
。
它的主要特点是
界面美观
、
色彩配比好
,
使用与
Qt / Windows
和
Qt / X11
完全一样
的
API
接口
,
许多基于
Qt
的程序可以非常方便地移植到嵌入式
系统中
;
同时
,
它具有丰富的模块
,
用户可以根据需要选择它的
特性集合
。
1. 2 MicroWindows
MicroWindows
是由美国
CenturySoftware
公司开发的开放源码
的嵌入式
GUI
项目
。
它不需要其他图形系统的支持
,
可以充分利
用
Linux
提供的
FrameBuffer
机制来进行图形显示
。
同时在底层提
供了对多种芯片的支持
,
基本上用
C
语言实现
,
因此移植性较好
。
1. 3 MiniGUI
当然
,
我们国家的
MiniGUI
也是一个比较成熟的图形用户界面
系统
,
面向基于
Linux
的实时嵌入式系统
,
使用现有成熟的图形引
擎
( SV2GALib/ LibGGI) ,
采用类似
Win32
的线程机制
,
集成了多字
体和多字符集
,
支持硬件加速能力
,
充分利用显示内存
。
1. 4 OpenGUI
OpenGUI
在
Linux
上存在很长时间了
。
这个库是用
C + +
编写
,
提供
C + +
接口
。OpenGUI
支持鼠标和键盘事件
,
在
Linux
上与
Qt / Embedded
一样
,
都是基于
FrameBuffer
实现绘图
。
但
OpenGUI
基于汇编实现内核并利用
MMX
指令进行了优化
,
因
此运行速度快
,
从而影响了它的可移植性
。
2
嵌入式
Linux GUI
软硬件环境
2. 1
硬件环境
本文的嵌入式系统是针对三星公司的
S3C2410,
它集成