admin 管理员组

文章数量: 1184232


2024年3月20日发(作者:sql统计语句怎么写)

嵌入式GUI方案比较

一.嵌入式GUI 概况

随着嵌入式系统的广泛应用,PDA、机顶盒、DVD/VCD播放机及WAP手机已

经迅速普及。图形用户界面(GUI)的广泛流行,是当今计算机技术的重大成就

之一。嵌入式GUI为嵌入式系统提供了一种应用于特殊场合的人机交互接口。

它极大地方便了非专业用户的使用,因此实时嵌入式系统对GUI的需求越来越

明显,而这一切均要求有一个高性能、高可靠的GUI 的支持。

综上所述,GUI 在嵌入式系统或者实时系统中的地位将越来越重要,这些系统

对 GUI 的基本要求包括:

1.轻型、占用资源少。

2.高性能。

3.高可靠性。

4.可配置。

二.目前,主流的嵌入式Linux系统的GUI解决方案有:

1. MicroWindows

MicroWindows是一个著名的开放源码的嵌入式GUI软件。MicroWindows

提供了现代图形窗口系统的一些特性。MicroWindows API接口支持类Win32

API,接口试图和Win32完全兼容。它还实现了一些Win32用户模块功能。

MicroWindows采用分层设计方法,以便不同的层面能够在需要的时候改写,基

本上用 C 语言实现。MicroWindows能够在没有任何操作系统或其他图形系统

的支持下运行,它能对裸显示设备进行直接操作。这样,MicroWindows就显得

十分小巧,便于移植到各种硬件和软件系统上。MicroWindows已经支持 Intel 16

位和32位CPU、MIPS R4000 以及 ARM 芯片;但作为一个窗口系统,该项目

提供的窗口处理功能还需要进一步完善,比如控件或构件的实现还很不完备,键

盘和鼠标等的驱动还很不完善。其图形引擎也存在许多问题,可以归纳如下:

(1)

无任何硬件加速能力。

(2)

图形引擎中存在许多低效算法,如在圆弧图函数的逐点判断剪切的问题。

值得一提的是,该项目的许多控件是从 MiniGUI 中移植过去的,扫雷游戏

也是从 MiniGUI 中移植过去的。由于该项目缺乏一个强有力的核心代码维护人

员,2003年Microwindows推出版本0.90后,该项目的发展开始陷于停滞状态。

2.OpenGUI

OpenGUI在Linux系统上存在已经很长时间了。这个库是用C++编写的,

只提供C++接口。OpenGUI基于一个用汇编实现的x86图形内核,提供了一个

高层的C/C++图形/窗口接口。OpenGUI提供了二维绘图原语、消息驱动的API

及BMP文件格式支持。OpenGUI功能强大,使用方便。OpenGUI 支持鼠标和

键盘的事件,在Linux上基于Frame buffer或者SVGALib实现绘图。由于其基

于汇编实现的内核并利用MMX指令进行了优化,OpenGUI运行速度非常快。

正由于其内核用汇编实现,可移植性受到了影响。通常在驱动程序一级,性能和

可移植性是矛盾的,必须找到一个折衷。OpenGUI采用LGPL条款发布。OpenGUI

比较适合于基于x86平台的实时系统,跨平台的可移植性较差,目前发展较慢。

3.Qt/ Embedded

QT/Embedded 是著名的 QT 库开放商正在进行的面向嵌入式系统的 QT

版本。这个版本的主要特点是可移植性较好,许多基于 QT 的 X Window 程序

可以非常方便地移植到嵌入式版本。但是该系统不是开放源码的,如果你要使用

这个库,可能需要支付昂贵的授权费用。目前,已经有了 QT/Embedded 的演示

版,预计明年初将出现 QT/Embedded 的正式发行版。Q T 库是一个跨平台的C +

+类库,可以用于多种U n i x、L i n u x、Wi n 3 2等操作系统。Q T 并不是遵从G

P L或L G P L协议的软件包,获取Q T 库的许可证很不方便。

Qt/Embedded延续了Qt在X上的强大功能,在底层摒弃了X lib,仅采用

framebuffer作为底层图形接口。同时,将外部输入设备抽象为keyboard和mouse

输入事件,底层接口支持键盘、GPM鼠标、触摸屏以及用户自定义的设备等。

Qt/Embedded类库完全采用C++封装。丰富的控件资源和较好的可移植性是

Qt/Embedded最为优秀的一方面。它的类库接口完全兼容于同版本的Qt-X11,使

用X下的开发工具可以直接开发基于Qt/Embedded的应用程序GUI界面。


本文标签: 系统 实现 接口 图形 需要