新闻中心

EEPW首页 > 设计应用 > 一种可移植的嵌入式图形支持系统:MiniGUI

一种可移植的嵌入式图形支持系统:MiniGUI

作者: 时间:2009-11-29 来源:网络 收藏

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


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



评论


相关推荐

技术专区

关闭