DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1548|回复: 1
打印 上一主题 下一主题

[待整理] 三种主流嵌入式图形用户界面的移植及性能比较

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-5 11:43:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
三种主流嵌入式图形用户界面的移植及性能比较

摘   要:       本文在ARM920T嵌入式开发板上对MiniGUI、MicroWindows和Qt/Embedded三种GUI进行了移植,并在此基础上对这三种目前主流的嵌入式GUI进行了性能上的比较。

关键词:       GUI;嵌入式图形用户界面;交叉编译;移植

引言
与通用的GUI系统相比,嵌入式系统下对GUI基本要求包括:轻型、占用资源少、高性能、高可靠性和可配置。目前,面向嵌入式Linux系统的有代表性的GUI系统有北京飞漫软件公司的MiniGUI、美国Century软件公司的MicroWindows、挪威Troltech公司的Qt/Embedded。本文对这三种主流的GUI系统进行了移植,并对它们的性能进行了比较。

三种嵌入式GUI的移植
我们采用的项目平台是华恒科技公司提供的用于高端手持设备、微型智能控制设备的HHARM2410-FEC-R1开发套件,采用203MHz 的ARM920T 内核的处理器S3C2410。
HHARM2410-FEC-R1 套件由核心板和底板(外设板或称基本板)组成,核心板上集成Samsung 公司S3C2410 处理器,64MB SDRAM以及16MB 的FLASH(闪存),为我们进行嵌入式GUI研发提供了足够的空间。底板上则提供以下外设接口:一个四线RS-232 串口(COM1),一个10M/100M自适应以太网接口,一个TFT LCD接口, 一个触摸屏接口。核心板和底板配合即构成一个最小的完整应用系统。
移植过程中我们采取了宿主机和目标板的开发模式。宿主机是一台运行Linux 的PC 机服务器,目标板即开发板。先在宿主机上调试通过后,再移植到目标板上。
移植工作主要集中在两个方面:

在华恒开发板附带的软件包中,已经包括有了交叉编译所需要的二进制工具Binutils、标准C函数库libc以及生成ARM平台代码的x86交叉编译器gcc、g++等工具软件包。将这些工具软件安装到宿主机上,将该安装路径添加至PATH环境变量中去,以便shell能够找得到,这样就完成了交叉编译环境的设置。
接下来就可以将GUI运行所需要的资源文件和可执行文件都采取交叉的方式进行编译,然后将编译生成的文件添加到原来的文件系统中去,就可以将其下载到目标板上进行调试了。
下面着重对Mini GUI系统的移植进行介绍。

MiniGUI图形系统由函数库、资源、演示程序三部分组成,相应地在对MiniGUI进行移植时也要对这三部分分别进行移植。
MiniGUI使用了自由软件常用的“automake”和“autoconf”接口,因此其配置和编译非常容易。进入MiniGUI源代码树,运行autogen.sh脚本文件,该文件可以简单地重新生成所有与配置相关的文件,然后为当前的构建环境配置软件。配置MiniGUI,加上启动交叉编译的选项,关键有如下几个选项:
CC=armv4l-unknown-linux-gcc
-host=arm-linux
-build=i686-pc-linux-gnu
-prefix=/opt/host/armv4l/armv4l-unknown-linux
-enable-lite
armv4l-unknown-linux-gcc是ARM的交叉编译器,它被安装在/opt/host/armv4l/armv4l-unknown-linux目录下。Host指定了目标机类型,build指定了交叉编译的系统环境,Prefix指定了MiniGUI安装的函数库、头文件和手册页等资源的安装路径,enable-lite指定将MiniGUI配置为Lite版本。关于其他的配置选项可以根据应用的特殊要求来打开或者关闭,例如disable-jpgsupport去掉对jpeg库的支持。关于这些配置选项的详细说明可以使用help打印清单或者参考《MiniGUI用户手册》。
configure结果生成了一个标准的Makefile文件。接下来只要进行简单的编译、安装就可以了。
安装MiniGUI资源文件minigui-res比较简单,只要修改目录树下的config.linux文件,将prefix选项改为和刚才的安装路径一致就可以了。然后直接执行make install。
参照以上步骤对MiniGUI的演示程序MDE进行交叉编译,过程类似,不再赘述。
最后将安装目录下的库文件、运行时自动查找的配置文件及编译后生成的可执行文件加入到Linux文件系统中去,重新制作ramdisk文件系统映像,再将新的文件系统下载到板子上,重新烧写FLASH就可以进行调试了。运行时需要先执行一个Mginit服务器进程,它将启动一个虚拟控制台窗口,然后在这个窗口中运行应用程序,如运行bomb后可以在LCD上看到和Windows中类似的扫雷界面。

Mcrowindows的资源包可以从http://microwindows.org下载,介绍从略。

Qt/Embedded的资源可以从http://www.trolltech.com下载,介绍从略。

三种主流嵌入式GUI的比较
由于嵌入式GUI系统的开发人员对实时嵌入式系统在理解上的不同,使得这些GUI系统在接口定义、体系结构、功能特性等方面存在着很大的差别,还有就是它们所采用的技术路线也有所不同。
MiniGUI的策略是首先建立在比较成熟的图形引擎之上,比如 SVGALib和LibGGI,开发的重点在于窗口系统如图形接口。在MiniGUI的开发中,引入了图形抽象层和输入抽象层(GAL和IAL)的概念。利用GAL和IAL,MiniGUI才可以在多种图形引擎上运行,并且便于移植。它尽量保持与Win32的兼容,这样在WinCE应用的任何场合,也可以使用MiniGUI。
MicroWindows目前的开发重点则在底层的图形引擎,窗口系统和图形接口方面的功能还比较欠缺。但是它能够在没有任何操作系统或其他图形系统的支持下运行,它能够对裸显示设备进行直接操作,因而显得十分小巧,便于移植到各种硬件和软件系统上。最上层的API支持Win32和Nano X接口,这样就与Win32和X Window窗口系统保持了兼容,在这些系统间移植应用软件就很容易了。
Qt/Embedded是一个多平台的C++图形用户界面应用程序框架,它注重于能给用户提供精美的图形用户界面所需要的所有元素。而且它是基于一种面向对象的思想,所以用户对其对象的扩展是相当容易的,并且它还支持真正的组件编程。
另外,这些GUI系统所使用的授权条款也各有不同。MiniGUI、MicroWindows和Qt/Embedded均为自由软件,只是所遵循的条款不同。
上述GUI的详细性能比较如表1所示。

结语
MiniGUI最初是为了满足一个工业控制系统(计算机数控系统)的需求而设计和开发的,它在设计之初就考虑到了小巧、高性能和高效率,因此比较适合于工控领域的简单应用;而MicroWindows和Qt/Embedded则偏重于便携式和手持PC/Device的需求。MiniGUI是由我国开发的,中文的支持文档比较多,大都可以从飞漫公司的网站(http://www.minigui.com)上免费获得;而MicroWindows和Qt/Embedded均是外国项目,相对来说发展得较成熟,文档大多是英文的,在Qt的中文站点([img]http://www.qiliang.net]http://www.qiliang.net)上也有部分翻译文档。

参考文献:
1.  北京飞漫软件技术有限公司,MiniGUI技术白皮书,版本1.2FM
2.  吴升艳、胡冰、岳春,‘Micro Windows体系结构及应用程序接口’,单片机与嵌入式系统应用,2003,5
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-28 23:06 , 耗时 0.087581 秒, 17 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表