首页 MiniGUI技术白皮书2.0-4C

MiniGUI技术白皮书2.0-4C

举报
开通vip

MiniGUI技术白皮书2.0-4C MiniGUI 技 术 白 皮 书 版本 2.0(修订号 4),适用 MiniGUI 版本 2.0.4/1.6.10 版权所有 © 2002~2007,北京飞漫软件技术有限公司 最新改动日期:2007/07/10 声明:飞漫软件赋予所有人复制、发布本文档的权利, 但需保证本声明及文档的完整无误; 除此之外的其它权利均予保留。 MiniGUI 技术白皮书(...

MiniGUI技术白皮书2.0-4C
MiniGUI 技 术 白 皮 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 版本 2.0(修订号 4),适用 MiniGUI 版本 2.0.4/1.6.10 版权所有 © 2002~2007,北京飞漫软件技术有限公司 最新改动日期:2007/07/10 声明:飞漫软件赋予所有人复制、发布本文档的权利, 但需保证本声明及文档的完整无误; 除此之外的其它权利均予保留。 MiniGUI 技术白皮书(V2.0-4) I 目 录 1 MiniGUI 简介 ............................................................................................................ 1 1.1 什么是 MiniGUI ................................................................................................................... 1 1.2 MiniGUI 的起源和发展 ........................................................................................................ 1 1.3 MiniGUI 的应用领域 ............................................................................................................ 2 2 MiniGUI 的优势.......................................................................................................... 4 2.1 MiniGUI 的技术特点 ............................................................................................................ 4 2.2 MiniGUI 的技术优势 ............................................................................................................ 5 3 运行 MiniGUI 的系统需求.......................................................................................... 8 3.1 MiniGUI 所支持的操作系统 ................................................................................................. 8 3.2 MiniGUI 所支持的硬件平台 ................................................................................................. 8 3.3 MiniGUI 对系统资源的占用情况 .......................................................................................... 8 4 MiniGUI 的软件架构.................................................................................................. 9 4.1 基于 MiniGUI 的嵌入式系统结构 ........................................................................................ 9 4.2 MiniGUI 运行模式 ............................................................................................................... 9 4.2.1 MiniGUI-Processes 运行模式.......................................................................................................... 10 4.2.2 各操作系统上可运行的 MiniGUI 运行模式 ...................................................................................... 11 4.3 窗口系统 ............................................................................................................................ 11 4.4 通讯机制 ............................................................................................................................ 12 4.5 字体 ................................................................................................................................... 13 4.6 输入设备的支持 ................................................................................................................. 13 4.7 输入法................................................................................................................................ 13 5 开发环境 .................................................................................................................. 14 6 程序样例和控件 ....................................................................................................... 15 6.1 Hello World 示例程序 ........................................................................................................ 15 6.2 静态框................................................................................................................................ 16 6.3 按钮 ................................................................................................................................... 16 6.4 列表框................................................................................................................................ 16 6.5 编辑框................................................................................................................................ 17 6.6 组合框................................................................................................................................ 17 6.7 菜单按钮 ............................................................................................................................ 18 6.8 进度条................................................................................................................................ 18 6.9 滑块 ................................................................................................................................... 18 6.10 工具栏.............................................................................................................................. 19 6.11 属性表 .............................................................................................................................. 19 6.12 滚动型控件....................................................................................................................... 19 6.13 树型控件 .......................................................................................................................... 20 6.14 列表型控件....................................................................................................................... 20 6.15 月历控件 .......................................................................................................................... 21 6.16 动画控件 .......................................................................................................................... 21 6.17 网格控件 .......................................................................................................................... 22 6.18 图标型控件....................................................................................................................... 22 7 MiniGUI 窗口和控件的显示风格.............................................................................. 24 MiniGUI 技术白皮书(V2.0-4) II 8 国际化 ..................................................................................................................... 26 9 飞漫软件围绕 MiniGUI 的软件产品 ........................................................................ 27 9.1 MiniGUI 增值版 ................................................................................................................. 27 9.2 MiniGUI 组件产品 ............................................................................................................. 27 9.2.1 mGp................................................................................................................................................. 28 9.2.2 mGi.................................................................................................................................................. 28 9.2.3 mG3d............................................................................................................................................... 29 9.3 全功能高端浏览器:mDolphin ........................................................................................... 29 9.4 轻量级嵌入式浏览器:mSpider.......................................................................................... 30 9.5 嵌入式地理信息系统:mEagle........................................................................................... 31 9.6 其他基于 MiniGUI 的应用软件及解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ........................................................................ 32 10 MiniGUI 相关资源 ................................................................................................. 33 10.1 开源版本及开发包 ............................................................................................................ 33 10.2 飞漫软件发布的其他开源软件 .......................................................................................... 33 10.3 MiniGUI 演示程序 ........................................................................................................... 33 11 MiniGUI GPL 版本的授权策略............................................................................... 35 11.1 如果您 100% 遵循 GPL,则无需获得商业授权 ............................................................. 35 11.2 如果您从不复制、修改和发布 MiniGUI,则无需获得商业授权 ........................................ 35 11.3 其他情况均需获得商业授权 .............................................................................................. 35 12 联系我们 ................................................................................................................ 37 MiniGUI 技术白皮书(V2.0-4) 1 1 MiniGUI 简介 1.1 什么是 MiniGUI 由北京飞漫软件技术有限公司开发的 MiniGUI(http://www.minigui.com),是面向实时嵌入式系统 的轻量级图形用户界面支持系统。自 1999 年初遵循 GPL 条款1发布第一个版本以来,MiniGUI 已广 泛应用于手持信息终端、机顶盒、工业控制系统及工业仪表、便携式多媒体播放机、查询终端等产品和 领域。目前,MiniGUI 已成为跨操作系统的图形用户界面支持系统,可在 Linux/uClinux、VxWorks、 eCos、uC/OS-II、pSOS、ThreadX、Nucleus、OSE等操作系统以及 Win32 平台上运行;已验证的 硬件平台包括 Intel x86、ARM(ARM7/ARM9/StrongARM/xScale)、PowerPC、MIPS、M68K (DragonBall/ColdFire)等等。最新的 MiniGUI 2.0 更为基于嵌入式 Linux 的高端嵌入式设备提供了 完整的多进程支持,从而将 MiniGUI 从中端市场带到了高端市场。 我们将 MiniGUI 定义为“针对嵌入式设备的、跨操作系统的图形界面支持系统”,属于一种“嵌 入式图形中间件”软件产品。目前,MiniGUI 已得到了国内最大的民营通信设备制造商、中国最大的 电视机生产商、TD-SCDMA 终端方案供应商和全球最大的处理器生产厂商的认可及使用,而在诸如工 业仪表、医疗仪器、军工等行业,更有众多行业领先厂商选择 MiniGUI 开发他们的嵌入式产品。与此 同时,MiniGUI 也得到了海外嵌入式设备开发商的认可,并远销到韩国、日本、台湾、马来西亚、北 美、欧洲等地区;2005年 8 月,韩国 KSP 公司成为飞漫软件全线产品的第一个海外代理。MiniGUI 业已成为嵌入式图形中间件领域的工业事实 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 。 飞漫软件除了遵循 GPL 条款发布 MiniGUI 的某些版本(MiniGUI V1.3.3 以及 MiniGUI-STR V1.6.2)之外,还为商业用户提供 MiniGUI 增值版产品以及其他关键应用软件产品。本白皮书将详细 介绍 MiniGUI V2.0.4/1.6.10 版本的技术特点以及应用领域。 1.2 MiniGUI 的起源和发展 MiniGUI 的开发起始于 1998 年底,到现在已历经近九年的时间。最初,MiniGUI 仅仅为了能够 在 Linux 上显示中文而开发,但目前,MiniGUI 已发展为一个跨操作系统的嵌入式图形支持系统。从 诞生开始,MiniGUI 就不断得到实际项目和产品的应用,同时新的项目也提出了更多技术需求,于是 MiniGUI 就一步步发展成为跨操作系统的嵌入式图形中间件产品。 1998 年 12 月,飞漫软件创始人魏永明开始开发 MiniGUI 并在一个数控系统中得到应用。2000 年 3 月,联想 HappyLinux 1.0 发行版采用 MiniGUI 开发其安装程序。这时,MiniGUI 已形成了一 个较为完整的嵌入式图形用户界面支持系统。2000 年 4 月到 2002 年 9 月,MiniGUI 作为中国为 数不多的几个自由软件项目之一,继续以自由软件的形式进行开发和维护。 2002 年 9 月,MiniGUI 的主要开发者成立了北京飞漫软件技术有限公司,尝试自由软件的商业 化运作模式,并于 2003 年 5 月发布了 MiniGUI 1.2.6 版本;于 2003 年 9 月发布了 MiniGUI 1.3.0 版本。 2003 年 10 月,MiniGUI 完成了到 uClinux 和 eCos 操作系统的移植。至此,MiniGUI 成为一 1 GPL 是自由软件基金会为自由软件定义的授权条款,详情请见 http://www.gnu.org。 MiniGUI 技术白皮书(V2.0-4) 2 个跨平台的嵌入式图形用户界面支持系统。 2004 年 8 月,中国最大的民营通信设备制造商之一(华为)选择 MiniGUI 作为平台产品,用于 机顶盒、手持终端等产品领域;2005 年 1 月,TD-SCDMA 标准的主要制定者(大唐移动)采用 MiniGUI 作为商用 TD-SCDMA 手机的 MMI 方案2;2005 年 8 月,全球最大的处理器生产厂商之一(Intel) 采用 MiniGUI 开发家庭数字多媒体网关产品。 目前,MiniGUI 已发展到 2.0.4/1.6.10 版本3,支持 Linux/uClinux、VxWorks、eCos、uC/OS-II、 pSOS、ThreadX、Nucleus、OSE 等操作系统,也可以在 Win32 平台上运行。飞漫软件基于自由软 件的商业化模式也获得了初步的成功。 1.3 MiniGUI 的应用领域 从最初的数控系统到目前流行的智能手持终端设备,MiniGUI 已经应用于大量产品。MiniGUI 最 主要的应用领域大致可分为三类: „ 中高端手机、WiFi 手机、PDA 类产品。图 1.1 是采用 eCos 操作系统,基于 MiniGUI 开 发的高端智能手机的应用程序界面。 图 1.1 MiniGUI 典型应用:智能手持设备 „ 数字媒体及机顶盒类产品。图 1.2 是基于 MiniGUI 开发的机顶盒浏览器产品以及由飞漫软件 开发的法律政务查询终端产品。 2 其中也包括飞漫软件的另一个产品 Fhas。 3 MiniGUI 2.0.x 主要用于支持具有多进程特性的操作系统,如 Linux;1.6.x 版本主要用来支持基于线程或者任务的传 MiniGUI 技术白皮书(V2.0-4) 3 图 1.2 MiniGUI 典型应用:数字媒体和机顶盒 „ 工业仪表及控制系统。图 1.3 是基于 Linux 和 MiniGUI 操作系统开发的数控系统、工业仪 表及医疗仪器的界面。 图 1.3 MiniGUI 典型应用:工业仪表及控制系统 统实时嵌入式操作系统。 MiniGUI 技术白皮书(V2.0-4) 4 2 MiniGUI 的优势 2.1 MiniGUI 的技术特点 MiniGUI 为实时嵌入式操作系统提供了非常完善的图形(Graphics)及用户界面(UI,User Interface)支持。MiniGUI 本身的可移植性 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 ,使得不论在哪个硬件平台、哪种操作系统上运行, MiniGUI 均能为上层应用程序提供一致的应用程序编程接口(API)。 首先,MiniGUI 是一个根据嵌入式系统应用特点量身定做的完整的图形支持系统。作为操作系统 和应用程序之间的中间件,MiniGUI 将底层操作系统及硬件平台差别隐藏了起来,并对上层应用程序 提供了一致的功能特性,这些功能特性主要包括: 1) 跨操作系统支持,具体包括普通嵌入式 Linux/uClinux、VxWorks、eCos、uC/OS-II、pSOS、 ThreadX、Nucleus、OSE 等,同时还提供 Win32 平台上的 SDK 开发包,方便嵌入式应用 程序的开发和调试。 2) 多运行模式支持,为了适应不同的操作系统运行环境,MiniGUI 可配置成三种运行模式: MiniGUI-Threads、MiniGUI-Processes4 及 MiniGUI-Standalone。 3) 内建资源支持。我们可以将 MiniGUI 所使用的资源,诸如位图、图标和字体等编译到函数库 中,该特性可提高 MiniGUI 的初始化速度,并且非常适合 eCos/uCOS-II/ThreadX 等无文件 系统支持的实时嵌入式操作系统。 4) 完备的多窗口机制和消息传递机制。 5) 提供常用的控件类,包括静态文本框、按钮、单行和多行编辑框、列表框、组合框、菜单按钮、 进度条、滑块、属性页、工具栏、树型控件、月历控件、旋钮控件、酷工具栏、网格控件、动 画控件等。 6) 对话框和消息框支持。 7) 其它 GUI 元素,包括菜单、加速键、插入符、定时器等。 8) 界面皮肤支持。用户可通过皮肤支持获得华丽的图形界面。 9) 支持低端显示设备(比如单色 LCD)和高端显示设备(8 位色及以上显示设备)。通过 MiniGUI 的图形抽象层及图形引擎技术,还可以支持特殊的显示设备,比如 YUV 显示设备。 10) 提供有增强 GDI 函数,包括光栅操作、复杂区域处理、椭圆、圆弧、多边形以及区域填充等 函数。在提供有兼容于 C99 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 的数学库平台上,还提供有高级二维绘图函数,可设置线宽、 线型以及填充模式等。通过 MiniGUI 的图形抽象层及图形引擎技术,我们也可以让上述高级 GDI 接口在低端显示屏上实现。 11) Windows 的资源文件支持,如位图、图标、光标等。 12) 各种流行图像文件的支持,包括 Windows BMP、GIF、JPEG、PNG等(JPEG 及 PNG的 支持通过 libjpeg 及 libpng 函数库提供)。 13) 多字符集和多字体支持,目前支持 ISO8859-1~ISO8859-15、GB2312、GBK、GB18030、 BIG5、EUC-JP、Shift-JIS、EUC-KR、UNICODE(UTF-8、UTF-16 编码)等字符集,支持 等宽点阵字体、变宽点阵字体、Qt/Embedded 使用的嵌入式字体 QPF、TrueType 以及 Adobe Type1 等矢量字体(TrueType 及 Type1 的支持分别通过 freetype 1.3 及 libt1 函数 库提供)。同时,对于点阵字体 MiniGUI 也可以进行自动放大处理,并可针对电视等特殊显 示设备实现防锯齿功能。 4 该运行模式目前在 MiniGUI V2.0.x 版本中提供,主要针对 Linux 操作系统;在 Linux 操作系统上运行的 MiniGUI V1.6.8 及早期版本,提供一个简化的多进程运行模式,称为“MiniGUI-Lite”。 MiniGUI 技术白皮书(V2.0-4) 5 14) 多种键盘布局的支持。MiniGUI 除支持常见的美式 PC 键盘布局之外,还支持法语、德语等 西欧语种的键盘布局。 15) 输入法支持,用于提供各种可能的输入形式;内建有适合 PC 平台的汉字(GB2312)输入 法支持,包括内码、全拼、智能拼音、五笔及自然码等。 16) 针对嵌入式系统的特殊支持,包括一般性的 I/O 流操作,字节序相关函数等。 17) 副屏支持。当系统中有多个视频设备时,可将一个作为 MiniGUI 的主屏,实现完整的多窗口 系统;而其它设备作为副屏,在其上通过 MiniGUI 的图形接口来实现文字渲染、图形显示等 功能。 其次,在 MiniGUI 近九年的发展过程中,有许多值得一提的技术创新点。正是由于这些技术上的 创新,才使得 MiniGUI 更加适合实时嵌入式系统,而且也使得 MiniGUI 的灵活性非常好,可以应用 在包括手持设备、机顶盒、游戏终端等等在内的各种高端或低端的嵌入式系统当中。这些技术创新包括: 1) 图形和输入抽象层。图形和输入抽象层对顶层 API 基本没有影响,但大大方便了 MiniGUI 自 身以及应用程序的移植、调试等工作。MiniGUI 现在已经被证明能够在基于 i386、ARM(包 括 StrongARM、xScale 等)、MIPS、PowerPC,以及低端的 DragonBall、ColdFire 等 CPU 的嵌入式系统上流畅运行。利用图形和输入抽象层,我们还可以实现基于软件结构的引擎。比 如模拟现实输入的 random 输入引擎,通过它,我们可以完成应用程序的自动测试。再比如, 我们可以通过 Shadow 图形引擎支持 YUV 输出设备、提供对无法直接访问显示帧缓冲区的 图形芯片的支持、提供对低于 8 位色显示屏的支持、实现屏幕旋转功能等等。 2) 多字体和多字符集支持。这部分通过设备上下文(DC)的逻辑字体(LOGFONT)实现,不 管是字体类型还是字符集,都可以非常方便地进行扩充。利用 DrawText 等函数时,可通过 指定字体而获得对各种字符集的支持,比如 GB2312、GBK、BIG5、EUCKR、ShiftJIS、 UNICODE(UTF-8、UTF-16 编码)等等。这样,在单个 MiniGUI 应用程序中,同时显示多 个不同语种的文字非常容易。MiniGUI 的这种字符集支持不同于通过 UNICODE 内码实现的 传统多字符集支持,这种实现占用资源少,更加适合于嵌入式系统。 3) 针对不同操作系统特点的运行模式。和 Linux 这样的类 UNIX 操作系统相比,一般意义上的 传统嵌入式操作系统具有一些特殊性。举例而言,诸如 uClinux、uC/OS-II、eCos、VxWorks 等操作系统,通常运行在没有 MMU(内存管理单元,用于提供虚拟内存支持)的 CPU 上; 这时,往往就没有进程的概念,而只有线程或者任务的概念,这样,GUI 系统的运行环境也 就大相径庭。因此,为了适合不同的操作系统环境,我们可将 MiniGUI 配置成 MiniGUI-Threads、MiniGUI-Processes 及 MiniGUI-Standalone 三种运行模式。 最后,在 MiniGUI 2.0.x 的版本中,我们不仅通过 MiniGUI-Processes 运行模式提供了对 Linux 等操作系统的多进程环境的完整支持,而且在 MiniGUI 2.0.x 中保留了层的概念,这使得在 MiniGUI 下也可以实现类似 X Window 的工作区功能,而所占的系统资源却大大低于 X Window,完全适合应用 在高端嵌入式设备上。 MiniGUI 新版本在图形方面的增强和提高,特别是 2.0.x版本中对多进程的完整支持,将大大扩展 它的应用领域,从而能够对嵌入式操作系统上的多媒体应用、游戏开发等提供更为强大的支持。 2.2 MiniGUI 的技术优势 和其它针对嵌入式产品的图形系统相比,MiniGUI 在对系统的需求上具有如下几大优势: MiniGUI 技术白皮书(V2.0-4) 6 1) 可伸缩性强 MiniGUI 丰富的功能和可配置特性,使得它既可运行于 CPU 主频只有 60MHz 的低端产品中, 亦可运行于高端嵌入式设备中,并使用 MiniGUI 的高级控件风格及皮肤界面等技术,创建华丽的用户 界面。 MiniGUI 的跨操作系统特性,使得 MiniGUI 可运行在最简单的嵌入式操作系统之上,如 uC/OS-II,也可以运行在具有现代操作系统特性的嵌入式操作系统之上,如 Linux,而且 MiniGUI 为 嵌入式 Linux 系统提供了完整的多窗口图形环境。 这些特性,使得 MiniGUI 具有非常强的可伸缩性。可伸缩性是 MiniGUI 从设计之初就考虑且不 断完善而来的。这个特性使得 MiniGUI 可应用于简单的行业终端,也可应用于复杂的消费类电子产品。 2) 轻型、占用资源少 MiniGUI 是一个定位于轻量级的嵌入式图形库,对系统资源的需求完全考虑到了嵌入式设备的硬件 情况,如 MiniGUI 库所占的空间最小可以裁剪到 500K 左右,对目前的嵌入式设备来说,满足这一条 件是绰绰有余的。 此外,测试结果表明,MiniGUI 能够在 CPU 主频为 30 MHz,仅有 4M RAM 的系统上正常运 行(使用 uClinux 操作系统),这是其它针对嵌入式产品的图形系统所无法达到的。 3) 高性能、高可靠性 MiniGUI 良好的体系结构及优化的图形接口,可确保最快的图形绘制速度。在设计之初,我们就 充分考虑到了实时嵌入式系统的特点,针对多窗口环境下的图形绘制开展了大量的研究及开发,优化了 MiniGUI 的图形绘制性能及资源占用。MiniGUI 在大量实际系统中的应用,尤其在工业控制系统的应 用,证明 MiniGUI 具有非常好的性能。 从 1999 年 MiniGUI 的第一个版本发布以来,就有许多产品和项目使用 MiniGUI,MiniGUI 也 不断从这些产品或者项目当中获得发展动力和新的技术需求,逐渐提高了自身的可靠性和健壮性。 有关 MiniGUI 的最新成功案例,您可以访问: http://www.minigui.com/project/cindex.shtml 4) 可配置性 为满足嵌入式系统各种各样的需求,必须要求 GUI 系统是可配置的。和 Linux 内核类似,MiniGUI 也实现了大量的编译配置选项,通过这些选项可指定 MiniGUI 库中包括哪些功能而同时不包括哪些功 能。大体说来,我们可以在如下几个方面对 MiniGUI 进行定制配置: „ 指定 MiniGUI 要运行的操作系统。 „ 指定生成基于线程的 MiniGUI-Threads 运行模式还是基于进程的 MiniGUI-Processes 运行 模式,或者只是最简单的 MiniGUI-Standalone 运行模式。 „ 指定需要支持的 GAL 引擎和 IAL 引擎,以及引擎相关选项。 „ 指定需要支持的字体类型。 „ 指定需要支持的字符集。 „ 指定需要支持的图像文件格式。 MiniGUI 技术白皮书(V2.0-4) 7 „ 指定需要支持的控件类。 „ 指定控件的整体风格,是经典(CLASSIC)风格、平面(FLAT)风格还是时尚(FASHION) 风格。 这些配置选项大大增强了 MiniGUI 的灵活性,对用户来讲,可针对具体的应用需求量体裁衣,开 发最适合产品需求的应用软件。 总之,将现代窗口和图形技术带入到嵌入式设备的 MiniGUI,是一个非常适合于实时嵌入式设备的 高效、可靠、可定制、小巧灵活的图形用户界面支持系统,其主要优点可以总结如下: „ 支持多种嵌入式操作系统,具备优秀的可移植性 „ 可伸缩的系统架构,易于扩展 „ 功能丰富,可灵活剪裁 „ 小体积高性能间的最佳平衡 „ 广泛的应用领域 MiniGUI 技术白皮书(V2.0-4) 8 3 运行 MiniGUI 的系统需求 3.1 MiniGUI 所支持的操作系统 理论上,MiniGUI 可以运行在任意一个支持多任务的嵌入式操作系统上;目前已经过验证的操作 系统包括 Linux/uClinux、VxWorks、eCos、uC/OS-II、pSOS、ThreadX、Nucleus和 OSE。MiniGUI 也可以在 Win32 平台上运行。同时,在不同操作系统上的 MiniGUI,提供完全兼容的 API 接口。 3.2 MiniGUI 所支持的硬件平台 理论上讲,MiniGUI 的运行和具体的硬件平台无关;只要某个硬件平台上运行有 MiniGUI 所支持 的某个操作系统,MiniGUI 就能在这个平台上运行。在业界使用的众多硬件平台中,其中已验证可运 行 MiniGUI 的硬件平台包括 Intel x86、ARM(ARM7/ARM9/StrongARM/xScale/MX1)、PowerPC、 MIPS、M68K(DragonBall/ColdFire)、富士通 FRV 等。 3.3 MiniGUI 对系统资源的占用情况 MiniGUI 本身的占用空间非常小,以嵌入式 Linux 操作系统为例,MiniGUI 的典型存储空间占用 情况如下: „ Linux 内核: 300KB ~ 500KB (由系统需求决定); „ 文件系统:500KB ~ 2MB (由系统需求决定); „ MiniGUI 支持库: 500KB ~ 900KB (由编译选项确定); „ MiniGUI 字体、位图等资源:典型 400KB (由应用程序需求确定,最低可在 200KB 以内); „ 应用程序:100KB ~ 2MB (由具体的应用需求确定)。 总体的系统占有空间应该在 2MB 到 4MB 左右。在某些系统上,尤其是在传统嵌入式操作系统 中,功能完备的 MiniGUI 系统本身所占用的空间可进一步缩小到 1MB 以内。 有关 MiniGUI 2.0.4/1.6.10 版本资源占用情况的具体数据,可参阅《MiniGUI Data Sheet》 V2.0-3。 MiniGUI 技术白皮书(V2.0-4) 9 4 MiniGUI 的软件架构 4.1 基于 MiniGUI 的嵌入式系统结构 为什么 MiniGUI 能够在如此众多的嵌入式操作系统上运行?这是因为 MiniGUI 具有良好的软件 架构,通过抽象层将 MiniGUI 上层和底层操作系统隔离开来。如图 4.1 所示,基于 MiniGUI 的应用 程序一般通过 ANSI C 库、操作系统和驱动程序接口以及 MiniGUI 自身提供的 API 来实现自己的功 能;MiniGUI 中的“可移植层”可将特定操作系统及底层硬件的细节隐藏起来,而上层应用程序则无 需关心底层的硬件平台输出和输入设备。 ix86, ARM, MIPS, PowerPC, M68K… Linux/uClinux, VxWorks, ThreadX, Nucleus, OSE, eCos, uC/OS-II, pSOS Portable Layer Devices MiniGUI MiniGUI Applications ANSI C Library 图 4.1 MiniGUI 和嵌入式操作系统的关系 另外,MiniGUI 特有的运行模式概念,也为跨操作系统的支持提供了便利。 4.2 MiniGUI 运行模式 如前所述,和 Linux 这样的类 UNIX 操作系统相比,一般意义上的传统嵌入式操作系统具有一些 特殊性。举例而言,诸如 uClinux、uC/OS-II、eCos 等操作系统,通常运行在没有 MMU(内存管理 单元,用于提供虚拟内存支持)的 CPU 上;这时,往往就没有进程的概念,而只有线程或者任务的 概念,这样,MiniGUI 的运行环境也就大相径庭。因此,为了适合不同的操作系统环境,我们可将 MiniGUI 配置成三种不同的运行模式: „ MiniGUI-Threads。运行在 MiniGUI-Threads 上的程序可以在不同的线程中建立多个窗口, 但所有的窗口在一个进程或者地址空间中运行。这种运行模式主要用来支持大多数传统意义上 的嵌入式操作系统,比如 VxWorks、ThreadX、Nucleus、OSE、pSOS、uC/OS-II、eCos 等等。当然,在 Linux 和 uClinux 上,MiniGUI 也能以 MiniGUI-Threads 的模式运行。 „ MiniGUI-Processes5。和 MiniGUI-Threads 相反,MiniGUI-Processes 上的每个程序是单独 的进程,每个进程也可以建立多个窗口,并且实现了多进程窗口系统。MiniGUI-Processes 适 5 在 Linux 操作系统上运行的 MiniGUI 1.6.8 及早期版本中,该运行模式称为“MiniGUI-Lite”。MiniGUI-Lite 为多进程 环境的 Linux 操作系统提供了折中解决方案,但没有解决进程间的窗口层叠问题。而 MiniGUI 2.0.x 实现的 MiniGUI-Processes 模式为 Linux 等多进程操作系统提供了完整的图形界面解决方案。 MiniGUI 技术白皮书(V2.0-4) 10 合于具有完整 UNIX 特性的嵌入式操作系统,比如嵌入式 Linux。该运行模式在 MiniGUI V2.0.x 中提供,有关该模式的详细介绍将在下面阐述。 „ MiniGUI-Standalone。这种运行模式下,MiniGUI 可以以独立任务的方式运行,既不需要多线 程也不需要多进程的支持,这种运行模式适合功能单一的应用场合。比如在一些使用 uClinux 的嵌入式产品中,因为各种原因而缺少线程支持,这时,就可以使用 MiniGUI-Standalone 来 开发应用软件。 一般而言,MiniGUI-Standalone 模式的适应面最广,可以支持几乎所有的操作系统 6; MiniGUI-Threads 模式的适用面次之,可运行在支持多任务的实时嵌入式操作系统,或者具备完整 UNIX 特性的普通操作系统;MiniGUI-Processes 模式的适用面较小,它仅适合于具备完整 UNIX 特 性的嵌入式操作系统,比如 Linux。 但不论采用哪种运行模式,MiniGUI 为上层应用软件提供了最大程度上的一致性;只有少数几个 涉及初始化的接口在不同运行模式上有所不同。 4.2.1 MiniGUI-Processes 运行模式 MiniGUI-Processes 运行模式是 MiniGUI V2.0.x 在 MiniGUI-Lite 运行模式基础上为具有多进程 支持的嵌入式操作系统提供的。MiniGUI V1.6.x 及以前版本为具有多进程特性的 Linux 操作系统提供 MiniGUI-Lite 运行模式,使之在高效的客户/服务器架构之上运行多个客户进程,从而充分利用进程地 址空间保护这样的高级特性,有了这样的特性,可大大提高基于 MiniGUI 的嵌入式系统的灵活性、稳 定性以及可扩展性。比如,我们可以在 MiniGUI-Lite 上运行多个 MiniGUI 客户进程,而单个进程的 异常退出,不会影响其他的 MiniGUI 客户进程。而且在这种架构之上,我们可以非常方便地集成第三 方应用程序。其实,这也是许多嵌入式设备开发商采用 Linux 操作系统的重要理由。 但是,MiniGUI-Lite 运行模式虽然提供了多进程支持,但无法同时管理来自不同进程间的窗口, 因此,MiniGUI-Lite 用层的概念将不同的进程之间的窗口区分开来。这种实现方法虽然可适用于大多数 屏幕分辨率较小的嵌入式设备,但仍然给应用程序的开发带来了不便。 MiniGUI V2.0 则彻底解决了上述问题。MiniGUI V2.0 在 MiniGUI-Lite 运行模式基础上,实现了 完整的多进程环境中的窗口系统,来自不同进程的窗口可以在同一桌面上协调
本文档为【MiniGUI技术白皮书2.0-4C】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_096498
暂无简介~
格式:pdf
大小:2MB
软件:PDF阅读器
页数:40
分类:互联网
上传时间:2011-03-17
浏览量:112