主页 PC知识 网管技术 黑客帝国 安全技术 开放系统 程序设计 搜索 技术论坛

 

相关联接
 
RHU本级分类

技术开发
桌面应用
嵌入技术
问答(FAQ)
基础知识
企业应用&技巧

 
RHU阅读排行
·μClinux嵌入系统外部硬件设备快速调试
·利用RTLinux开发嵌入式应用程序
·CPU与DSP结合为单一核心还有多远?
·浅谈嵌入式LINUX操作系统的概念和特点
·论嵌入式系统的技术发展与机遇
·基于Intel IXP网络处理器开发平台简介
·嵌入式操作系统的调试
·一个典型的嵌入式系统设计和实现
·珍贵资料:uClinux系统分析详解
·嵌入式Linux开发资源大全

 
 
RHU最新文章
·嵌入式Linux也SOHO SIPS技术应用简介
·物理隔离 关注Linux如何贯通安全通道
·你还在用MRTG吗?使用cacti监测系统性能
·一种改进嵌入Linux实时性的新型方案
·学习嵌入式Linux的笔记和体会
·基于嵌入式Linux的智能手机系统设计
·嵌入式操作系统UC/OS和uClinux比较分析
·Qt/Embedded在嵌入式Linux系统中的应用
·嵌入式实时程序设计中C/C++代码的优化
·主流嵌入式Linux动态扩展技术比较分析

 
 
RHU相关搜索









 
 
RHU广而告之

 
 
>您的位置:首页 -> Linux/Unix-> 嵌入技术
MiniGUI:跨平台的嵌入式图形支持系统

作者:RHU-TAC编辑员 来自:RHU网络采集 时间:2005-5-9 双击滚屏 收藏本页 字体:


点击 查看RHU2004全年文章


为目标嵌入式产品选择适合的嵌入式图形支持系统成为与选择嵌入式操作系统一样颇具挑战性。MiniGUI是一个高效、可靠、可定制、小巧灵活的图形用户界面支持系统,并具有跨硬件平台、跨操作系统的可移植性,非常适合于实时嵌入式产品开发。本文详细阐述了MiniGUI的特点、运行模式和应用。

随着高端消费类电子产品(PDA、手机等)的广泛应用,原先仅在军工、工业控制等领域中使用的实时嵌入式操作系统,受到越来越多的关注。因为嵌入式产品本身是一种高度定制化的软硬件集成产品,单个操作系统无法满足各类嵌入式产品的多样化需求,因此,业界有许多各具特色的实时嵌入式操作系统产品可供选择。

在嵌入式产品开发中,除操作系统之外,开发人员关注最多的另外一个系统软件组件就是图形支持系统。只要是面向人机交互的嵌入式产品,就涉及到文字或者图形的输出问题。

不过,在嵌入式系统上的GUI应用开发,不像PC平台上的应用开发那么容易和方便。一是因为设备的可用资源有限(CPU运算能力、静态和动态存储空间等),二是因为操作系统提供的底层机制有限。这样,为具有不同硬件配置的嵌入式产品以及各类实时嵌入式操作系统提供功能完备、且又适合嵌入式产品特点的GUI支持系统,存在着诸多技术挑战。

嵌入式操作系统的选择

“内核接口+ANSI C库”的模式,是大多数嵌入式操作系统开发采用的编程模式。但是,这种模式还存在一些问题。如果我们要使用ANIS C库中的标准I/O接口,则需要操作系统提供文件系统及字符输出的支持;如果我们要使用ANSI C库中的内存管理函数(malloc/free函数族),就需要提供针对具体硬件的堆管理方案及实现代码。因此,RTOS通常都设计为模块化的软件系统,需要什么样的功能,可向RTOS产品厂商购买对应的模块来实现。


图 1 RTOS 的一般软件结构
实际上,不同RTOS之间的区别,除了在任务管理上的核心区别之外,其他的主要区别就在外围模块上。图1给出了RTOS的一般软件结构。

RTOS可划分为如下几个种类:
1.传统实时嵌入式操作系统。主要包括:VxWorks、pSOS、Nucleus、WinCE等。VxWorks和pSOS的用户主要集中在军工、工业控制及电信领域,Nucleus和WinCE在消费类产品中应用较为广泛。
2.开放源码的嵌入式操作系统。典型代表有Linux/uClinux、eCos。因为传统实时嵌入式操作系统价格比较昂贵,所以许多用户开始使用免授权费的Linux/uClinux等操作系统开发自己的嵌入式产品。Linux操作系统从本质上属于通用操作系统,缺少强实时支持,因此嵌入式Linux在某些不需要强实时性的嵌入式产品中得到了较多应用,典型的产品有智能手机(这类产品中的实时性主要通过专用硬件芯片保证)、查询终端等。uClinux是Linux的一个变种,主要运行在没有内存管理单元(MMU)的CPU架构上。因为没有内存管理单元,uClinux无法实现现代操作系统能够提供的进程地址空间保护等高级特性,但它最大程度地保留了Linux的系统调用功能,而且资源消耗低,因此在一些中低端的32位嵌入式产品中得到了应用。eCos也是一种开源、免授权费的RTOS产品。和Linux/uClinux相比,它更类似传统的实时嵌入式操作系统,而且提供了丰富的外围模块,如文件系统、TCP/IP接口模块、POSIX兼容接口模块等。根据笔者的实际应用经验,eCos操作系统在一定程度上可以用来替代传统实时嵌入式操作系统。
3.新型实时嵌入式操作系统。主要包括uC/OS-II、ThreadX等操作系统,它们的出现,填补了RTOS操作系统市场的中低端市场,给广大嵌入式产品开发者提供了性价比较高的选择。
4.本地实时嵌入式操作系统。近几年,中国也有厂商开始提供自主研发的实时嵌入式操作系统,典型的有Hopen和Delta操作系统。这些产品已经在消费类电子产品和军工领域中得到了一些应用。通过上面的介绍可以看到,嵌入式操作系统市场中存在各种产品可供选择。嵌入式产品的种类丰富,需求多样,不太可能出现类似PC那样由一个操作系统独霸天下的状况。

嵌入式产品开发中常用的图形解决方案

在嵌入式产品的开发过程中,软件开发人员通常采取如下几种方法来解决产品的图形需求:
1.针对特定图形输出设备的接口,自行开发图形相关的功能函数。利用这种手段编写的程序,无法将显示逻辑和数据处理逻辑划分开来,从而导致程序结构不好,不便于调试,并导致大量的代码重复。这种方案的缺点很明显,即可移植性差,维护成本高。
2.购买针对特定嵌入式操作系统的图形中间件软件包。一些嵌入式操作系统厂商,也为自己的操作系统专门开发了对应的GUI中间件产品。如uC/OS-II上的uC/GUI、Nucleus上的GRAFIX包、VxWorks上的WindML包等等。这种方案为嵌入式产品开发提供了直接可用的方案,并且能够和原有操作系统良好配合;但缺点是这类软件包的功能通常比较简单,且价格高昂。另外,基于这些软件包开发的 GUI 应用软件不具备跨操作系统的可移植性。
3.采用开放源码的嵌入式GUI支持系统。随着嵌入式Linux操作系统的应用,开源社区也在不断为嵌入式系统提供不同的开放源码嵌入式图形解决方案,如MicroWindows、OpenGUI,以及新近出现的picoGUI等。这些开放源码的嵌入式GUI软件提供免授权费的解决方案。然而,由于缺少商业公司的支持,这些软件一般存在较多的软件缺陷,加上缺乏有担保的技术支持,因此,存在着很大的开发风险。


图 2 MiniGUI 和嵌入式操作系统的关系


4.使用由独立软件开发商提供的嵌入式GUI产品。这类产品有北京飞漫软件技术有限公司开发的MiniGUI、挪威TrollTech公司的Qt/Embedded等。这两种产品都是开源(遵循GNU的GPL条款发布)的嵌入式GUI软件产品,但均采用双授权模式,即针对商业使用收取软件许可费用。MiniGUI属于中低端产品,具有跨操作系统特性,以及适合嵌入式产品的小巧、高效的特点。Qt/Embedded属于高端产品,只支持嵌入式Linux操作系统,需要16MB以上的静态存储空间及64MB以上的动态存储空间。

MiniGUI的特点及应用

MiniGUI作为中国为数不多的几个自由软件项目之一,是面向实时嵌入式系统的轻量级图形用户界面支持系统,1999年初遵循GPL条款发布第一个版本,目前已发展到1.6.1版本。

MiniGUI为实时嵌入式操作系统提供了非常完善的图形及图形用户界面支持。MiniGUI本身的可移植性设计,使得不论在哪个硬件平台、哪种操作系统上运行,MiniGUI均能为上层应用程序提供一致的应用程序编程接口(API)。

作为操作系统和应用程序之间的中间件,MiniGUI将底层操作系统及硬件平台差别隐藏了起来,并对上层应用程序提供了一致的功能特性,这些功能特性包括:
1.完备的多窗口机制和消息传递机制。
2.常用的控件类,包括静态文本框、按钮、单行和多行编辑框、列表框、组合框、进度条、属性页、工具栏、拖动条、树型控件、月历控件等。
3.对话框和消息框支持以及其它GUI元素,包括菜单、加速键、插入符、定时器等。
4.界面皮肤支持。用户可通过皮肤支持获得外观非常华丽的图形界面。
5.通过两种不同的内部软件结构支持低端显示设备(如单色 LCD)和高端显示设备(如彩色显示器),前者小巧灵活,而后者在前者的基础上提供了更加强大的图形功能。
6.Windows的资源文件支持,如位图、图标、光标等。
7.各种流行图像文件的支持,包括JPEG、GIF、PNG、TGA、BMP等等。
8.多字符集和多字体支持,目前支持ISO8859-1~ISO8859-15、GB2312、GBK、GB18030、BIG5、EUC-JP、Shift-JIS、EUC-KR、UNICODE等字符集,支持等宽点阵字体、变宽点阵字体、Qt/Embedded 使用的嵌入式字QPF、TrueType以及Adobe Type1等矢量字体。
9.多种键盘布局的支持。MiniGUI除支持常见的美式PC键盘布局之外,还支持法语、德语等语种的键盘布局。
10.简体中文(GB2312)输入法支持,包括内码、全拼、智能拼音等。用户还可以从飞漫软件获得五笔、自然码等输入法支持。
11.针对嵌入式系统的特殊支持,包括一般性的I/O流操作,字节序相关函数等。

[本文共有 2 页,当前是第 1 页] <<上一页 下一页>>

OVER

[1] [2] 页 RedHyphone.Union 投稿邮箱
[特别声明]:
本站文章大多搜索转载自网络中,如果侵犯了您的权利,请告之我们。本站将立即删除。
本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
查看评论】【向上滚屏】【关闭窗口】【 打印
-相关文章
  • 认知盲区 解惑双网卡双线路DNS解析
  • FlashFXP 简体中文版 3.7.5 Build 1303 Beta[烈火]
  • 确认:番茄花园作者洪磊被检察院批准逮捕
  • 1983年的今天 DNS诞生
  • Windows 2003 IIS 6.0搭建asp+.net+php+jsp+mysql+mssql
  • -文章评论 (关闭)
    ·还没有相关的评论!

    网上大名:
    红旋风网络技术联盟 RHUTech.Union
     
    Copyright © 2000-2007 RedHyphone.Union All Rights Reserved. 红旋风联盟版权所有.皖ICP备05011033号
    中国红旋风网络技术联盟 | www.RedHyphone.net
    Mailto:Redhyphone@gamil.com