没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|其它|编辑:郝浩|2004-07-13 17:48:00.000|阅读 1290 次
概述:
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
由北京飞漫软件技术有限公司开发的MiniGUI,是国内为数不多的几大国际知名自由软件之一。MiniGUI 是面向实时嵌入式系统的轻量级图形用户界面支持系统,1999 年初遵循 GPL 条款发布第一个版本以来,已广泛应用于手持信息终端、机顶盒、工业控制系统及工业仪表、彩票机、金融终端等产品和领域。目前,MiniGUI 已成为跨操作系统的图形用户界面支持系统,可在Linux/uClinux、eCos、uC/OS-II、VxWorks、等操作系统上运行;已验证的硬件平台包括Intel x86、ARM(ARM7/AMR9 /StrongARM/xScale)、PowerPC、MIPS、M68K(DragonBall/ColdFire)等等。本文将介绍 MiniGUI 以及 MiniGUI 和它支持的各种嵌入式操作系统的关系。
MiniGUI 为实时嵌入式操作系统提供了非常完善的图形及图形用户界面支持。MiniGUI 本身的可移植性设计,使得不论在哪个硬件平台、哪种操作系统上运行,MiniGUI 均能为上层应用程序提供一致的应用程序编程接口(API)。
作为操作系统和应用程序之间的中间件,MiniGUI 将底层操作系统及硬件平台差别隐藏了起来,并对上层应用程序提供了一致的功能特性,这些功能特性包括:
和其它针对嵌入式产品的图形系统相比,MiniGUI 具有如下几大技术优势:
MiniGUI 本身的占用空间非常小。以嵌入式 Linux 操作系统为例,MiniGUI 的典型存储空间占用情况如下:
总体的系统占有空间应该在 2MB 到 4MB 左右。在某些系统上,功能完备的 MiniGUI 系统本身所占用的空间可进一步缩小到 1MB 以内。
最新的研发成果表明,MiniGUI 能够在 CPU 主频为 30 MHz,仅有 4M RAM 的系统上正常运行(使用 uClinux 操作系统),这是其它针对嵌入式产品的图形系统,比如 MicroWindows 或者 Qt/Embedded 所无法达到的。
MiniGUI 良好的体系结构及优化的图形接口,可确保最快的图形绘制速度。在设计之初,我们就充分考虑到了实时嵌入式系统的特点,针对多窗口环境下的图形绘制开展了大量的研究及开发,优化了 MiniGUI 的图形绘制性能及资源占有。MiniGUI 在大量实际系统中的应用,尤其在工业控制系统的应用,证明 MiniGUI 具有非常好的性能。
从 1999 年 MiniGUI 的第一个版本发布以来,就有许多产品和项目使用 MiniGUI,MiniGUI 本身也不断从这些产品或者项目当中获得发展动力和新的技术需求,不断提高了自身的可靠性和健壮性。
有关 MiniGUI 的最新成功案例,您可以点击此处。
为满足嵌入式系统千变万化的需求,必须要求 GUI 系统是可配置的。和 Linux 内核类似,MiniGUI 也实现了大量的编译配置选项,通过这些选项可指定 MiniGUI 库中包括哪些功能而同时不包括哪些功能。大体说来,我可以在如下几个方面对 MiniGUI 进行定制配置:
这些配置选项大大增强了 MiniGUI 的灵活性,对用户来讲,可针对具体应用需求量体裁衣,生成最适合产品需求系统及软件。
MiniGUI 丰富的功能和可配置特性,使得它既可运行于基于龙珠的低端产品中,亦可运行于基于 ARM9 的高端产品中,并使用 MiniGUI 的高级控件风格及皮肤界面等技术,创建华丽的用户界面。
理论上,MiniGUI 可支持任意一个多任务嵌入式操作系统;实际已支持 Linux/uClinux、eCos、uC/OS-II、VxWorks 等嵌入式操作系统。同时,在不同操作系统上的 MiniGUI,提供完全兼容的 API 接口。
总之,MiniGUI 是一个非常适合于实时嵌入式产品的高效、可靠、可定制、小巧灵活的图形用户界面支持系统。
从最初的数控系统到目前流行的智能手持终端设备,MiniGUI 已经在大量产品中得到了应用。MiniGUI 最主要的应用领域大致可分为三类:
为什么 MiniGUI 能够在如此众多的嵌入式操作系统上运行?这是因为 MiniGUI 具有良好的软件架构,通过抽象层将 MiniGUI 上层和底层操作系统隔离开来。如图 4 所示,基于 MiniGUI 的应用程序一般通过 ANSI C 库以及 MiniGUI 自身提供的 API 来实现自己的功能;MiniGUI 中的“可移植层”可将特定操作系统及底层硬件的细节隐藏起来,而上层应用程序则无需关系底层的硬件平台输出和输入设备。
另外,MiniGUI 特有的运行模式概念,也为跨操作系统的支持提供了便利。
和 Linux 这样的类 UNIX 操作系统相比,一般意义上的传统嵌入式操作系统具有一些特殊性。举例而言,诸如 uClinux、uC/OS-II、eCos、VxWorks 等操作系统,通常运行在没有 MMU(内存管理单元,用于提供虚拟内存支持)的 CPU 上;这时,往往就没有进程的概念,而只有线程或者任务的概念,这样,GUI 系统的运行环境也就大相径庭。因此,为了适合不同的操作系统环境,我们可将 MiniGUI 配置成三种运行模式:
MiniGUI-Threads。运行在 MiniGUI-Threads 上的程序可以在不同的线程中建立多个窗口,但所有的窗口在一个进程或者地址空间中运行。这种运行模式非常适合于大多数传统意义上的嵌入式操作系统,比如 uC/OS-II、eCos、VxWorks、pSOS 等等。当然,在 Linux 和 uClinux 上,MiniGUI 也能以 MiniGUI-Threads 的模式运行。 MiniGUI-Lite。和 MiniGUI-Threads相反,MiniGUI-Lite 上的每个程序是单独的进程,每个进程也可以建立多个窗口。MiniGUI-Lite 适合于具有完整 UNIX 特性的嵌入式操作系统,比如嵌入式 Linux。 MiniGUI-Standalone。这种运行模式下,MiniGUI 可以以独立进程的方式运行,既不需要多线程也不需要多进程的支持,这种运行模式适合功能单一的应用场合。比如在一些使用 uClinux 的嵌入式产品中,因为各种原因而缺少线程支持,这时,就可以使用 MiniGUI-Standalone 来开发应用软件。一般而言,MiniGUI-Standalone 模式的适应面最广,可以支持几乎所有的操作系统,甚至包括类似 DOS 这样的操作系统;MiniGUI-Threads 模式的适用面次之,可运行在支持多任务的实时嵌入式操作系统,或者具备完整 UNIX 特性的普通操作系统;MiniGUI-Lite 模式的适用面较小,它仅适合于具备完整 UNIX 特性的普通操作系统。
但不论采用哪种运行模式,MiniGUI 为上层应用软件提供了最大程度上的一致性;只有少数几个涉及初始化的接口在不同运行模式上有所不同。
下面我们以 uC/OS-II 操作系统为例,简单介绍 MiniGUI 到该操作系统上的移植。
uC/OS-II(http://www.micrium.com)是一个应用于实时嵌入式应用的开源、实时操作系统内核。因为 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 移植到正式的硬件产品中。
我们在 S3C2410 开发板上用 ADS 的 armcc 编译并测试了 MiniGUI 的 uC/OS-II 版本。这次,我们针对这个开发板编写了正式的图形和输入引擎。MiniGUI 的所有示例程序都可以在这块开发板上正常运行。
MiniGUI for uC/OS-II 版本为 uC/OS-II 用户提供了另外一个很好的 GUI 解决方案。相对 Micrium.com 提供的 uC/GUI 而言,MiniGUI for uC/OS-II 版本能够提供更好的功能和特性。
通过近两年的自由软件商业化运作,飞漫软件已将 MiniGUI 打造成了一款优秀的跨平台嵌入式中间件软件产品。MiniGUI 的跨操作系统支持、可伸缩性及性能等方面的优势,鲜有同类产品可以媲美。飞漫软件将积蓄力量,为打造嵌入式系统软件领域的国产品牌而努力。近期,我们将在如下方面开展围绕 MiniGUI 的研发工作:
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号