主页 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具有以下一些技术优势: 1).轻型、占用资源少 MiniGUI本身的占用空间非常小,以嵌入式Linux操作系统为例,MiniGUI的典型存储空间占用情况如下:
1.Linux内核: 300K~500K(由系统需求决定);
2.文件系统:500K~2MB(由系统需求决定);
3.MiniGUI支持库:500K~700K(由编译选项确定);
4.MiniGUI字体、位图等资源:400K(由应用程序确定,可缩小到200K以内);
5.GB2312输入法码表:200K(不是必需的,由应用程序确定);
6.应用程序:1M~2M(由系统决定)。
总体的系统占有空间应该在 2MB到4MB左右。在某些系统上,功能完备的MiniGUI系统本身所占用的空间可进一步缩小到1MB以内。最新的研发成果表明,MiniGUI能够在CPU主频为30MHz,仅有4M RAM的系统上正常运行(使用uClinux 操作系统),这是其它图形系统,如MicroWindows或者Qt/Embedded所无法达到的。
2)高性能、高可靠性
MiniGUI良好的体系结构及优化的图形接口,可确保最快的图形绘制速度。在设计之初就充分考虑到了实时嵌入式系统的特点,针对多窗口环境下的图形绘制开展了大量的研究及开发,优化了MiniGUI的图形绘制性能及资源占有。MiniGUI在大量实际系统中的应用,尤其在工业控制系统的应用,证明 MiniGUI具有非常好的性能。
3) 可配置性
为满足嵌入式系统千变万化的需求,必须要求GUI系统是可配置的。和Linux内核类似,MiniGUI也实现了大量的编译配置选项,通过这些选项可指定MiniGUI库中包括哪些功能而同时不包括哪些功能。大体说来,可以在如下几个方面对MiniGUI进行定制配置:
1.指定MiniGUI要运行的操作系统;
2.指定生成基于线程的MiniGUI-Threads运行模式还是基于进程的MiniGUI-Lite运行模式,或者只是最简单的MiniGUI-Standalone运行模式;
3.指定要采用老的GAL/GDI接口(低端显示设备)还是新的GAL/GDI接口(高端显示设备);
4.指定需要支持的GAL引擎和IAL引擎,以及引擎相关选项;
5.指定需要支持的字体类型;
6.指定需要支持的字符集;
7.指定需要支持的图像文件格式;
8.指定需要支持的控件类;
9.指定控件的整体风格,是三维风格、平面风格还是手持终端风格。
4) 可伸缩性强
MiniGUI丰富的功能和可配置特性,使得它既可运行于基于龙珠的低端产品中,亦可运行于基于ARM9的高端产品中,并使用MiniGUI的高级控件风格及皮肤界面等技术,创建华丽的用户界面。
5) 跨操作系统支持
理论上,MiniGUI可支持任意一个多任务嵌入式操作系统;实际已支持Linux/uClinux、eCos、uC/OS-II、VxWorks、pSOS、ThreadX等嵌入式操作系统,也可以在Win32平台上运行。同时,在不同操作系统上的MiniGUI,提供完全兼容的API接口。从最初的数控系统到目前流行的智能手持终端设备,MiniGUI已经在大量产品中得到了应用。MiniGUI最主要的应用领域大致可分为三类:高端手机、PDA类产品;数字媒体及机顶盒类产品;工业仪表及控制系统。

基于MiniGUI的嵌入式系统软件结构

为什么MiniGUI能够在如此众多的嵌入式操作系统上运行?这是因为MiniGUI具有良好的软件架构,通过抽象层将MiniGUI上层和底层操作系统隔离开来。如图2所示,基于MiniGUI的应用程序一般通过 ANSI C库以及MiniGUI自身提供的API来实现自己的功能;MiniGUI中的“可移植层”可将特定操作系统及底层硬件的细节隐藏起来,而上层应用程序则无需关心底层的硬件平台输出和输入设备。

另外,MiniGUI特有的运行模式概念,也为跨操作系统的支持提供了便利。

与Linux这样的类UNIX操作系统相比,一般意义上的传统嵌入式操作系统具有一些特殊性。举例而言,诸如uClinux、uC/OS-II、eCos、VxWorks等操作系统,通常运行在没有内存管理单元的CPU上;这时,往往就没有进程的概念,而只有线程或者任务的概念,这样,GUI系统的运行环境也就大相径庭。因此,为了适合不同的操作系统环境,我们可将MiniGUI配置成三种运行模式:
1.MiniGUI-Threads。运行在MiniGUI-Threads上的程序可以在不同的线程中建立多个窗口,但所有的窗口在一个进程或者地址空间中运行。这种运行模式非常适合于大多数传统意义上的嵌入式操作系统,如uC/OS-II、eCos、VxWorks、pSOS等等。当然,在Linux和uClinux上,MiniGUI也能以MiniGUI-Threads的模式运行。
2. MiniGUI-Lite。与MiniGUI-Threads相反,MiniGUI-Lite上的每个程序是单独的进程,每个进程也可以建立多个窗口。MiniGUI-Lite适合于具有完整UNIX特性的嵌入式操作系统,比如嵌入式Linux。
3. MiniGUI-Standalone。这种运行模式下,MiniGUI能以独立进程的方式运行,既不需要多线程也不需要多进程的支持,这种运行模式适合功能单一的应用场合。例如在一些使用uClinux的嵌入式产品中,因为各种原因而缺少线程支持,这时,就可以使用MiniGUI-Standalone来开发应用软件。

一般而言,MiniGUI-Standalone模式的适应面最广,可以支持几乎所有的操作系统,甚至包括类似DOS这样的操作系统;MiniGUI-Threads模式的适用面次之,可运行在支持多任务的实时嵌入式操作系统,或者具备完整UNIX特性的普通操作系统;MiniGUI-Lite模式的适用面较小,它仅适合于具备完整UNIX特性的普通操作系统。

不论采用哪种运行模式,MiniGUI为上层应用软件提供了最大程度上的一致性;只有少数几个涉及初始化的接口在不同运行模式上有所不同。

MiniGUI在uC/OS-II操作系统上的移植

下面以uC/OS-II操作系统为例,简单介绍MiniGUI到该操作系统上的移植。
uC/OS-II非常简单,只要有一个普通的C编译器,就能完成编译并运行该操作系统,因此,uC/OS-II首先在教学中得到了广泛应用。因为其简单及实时性好的特点,现在也有一些用户开始使用uC/OS-II操作系统开发正式的嵌入式产品。

将MiniGUI移植到uC/OS-II是相对复杂的一项工作。因为uC/OS-II中缺乏象malloc/free甚至是printf/fprintf/sprintf这样的接口,不过,最重要的还是缺乏与POSIX-Threads兼容的接口。为此,我们编写了POSIX-Threads的绕转接口,这些绕转接口兼容于POSIX-Threads。同时,我们还实现了 malloc/free,以及printf/sprintf/fprintf等接口。

因涉及到如此多底层特性的增强和修改,整个系统的调试将是非常困难的。为解决调试问题,我们首先在SkyEye(清华大学陈渝主持的自由软件项目,http://www.skyeye.org)模拟器上运行uC/OS-II操作系统及MiniGUI for uC/OS-II。我们首先使用了MiniGUI内部的Dummy GAL引擎和Dummy/Auto IAL 引擎(这两个引擎分别通过软件方法来模拟实际的输出和输入设备,如LCD显示屏及键盘)来运行MiniGUI的应用程序。尽管我们看不到真实的屏幕输出,但从应用程序在运行过程中打印的输出信息,我们可以看到MiniGUI for uC/OS-II已经正常工作了。接下来的工作就是将MiniGUI for uC/OS-II移植到正式的硬件产品中。

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



OVER

[1] [2] 页 RedHyphone.Union 投稿邮箱
[特别声明]:
本站文章大多搜索转载自网络中,如果侵犯了您的权利,请告之我们。本站将立即删除。
本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
查看评论】【向上滚屏】【关闭窗口】【 打印
-相关文章
  • openSUSE 11.1 Final - 正式发布
  • [视频]Opera Mini 4.2 正式版发布
  • dll注入系统进程(开源代码)
  • 认知盲区 解惑双网卡双线路DNS解析
  • FlashFXP 简体中文版 3.7.5 Build 1303 Beta[烈火]
  • -文章评论 (关闭)
    ·还没有相关的评论!

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