47
MiniGUI 培培培培 培培培培培培培培培培培培

MiniGUI 培训讲义

  • Upload
    archie

  • View
    246

  • Download
    0

Embed Size (px)

DESCRIPTION

MiniGUI 培训讲义. 北京飞漫软件技术有限公司. 内容提要 (1). MiniGUI 简介 飞漫软件核心技术 -MiniGUI MiniGUI 和嵌入式操作系统的关系 MiniGUI 功能特色 MiniGUI 和其它嵌入式 GUI 系统的对比 MiniGUI 成功案例及典型应用 飞漫软件的 MiniGUI 授权策略 MiniGUI 体系架构 MiniGUI 应用编程的基本概念 MiniGUI 到 uC/OS-II 操作系统上的移植 MiniGUI 相关产品. 飞漫软件核心技术 - MiniGUI. - PowerPoint PPT Presentation

Citation preview

Page 1: MiniGUI 培训讲义

MiniGUI 培训讲义北京飞漫软件技术有限公司

Page 2: MiniGUI 培训讲义

内容提要 (1)– MiniGUI 简介

• 飞漫软件核心技术 -MiniGUI

• MiniGUI 和嵌入式操作系统的关系• MiniGUI 功能特色• MiniGUI 和其它嵌入式 GUI 系统的对比• MiniGUI 成功案例及典型应用• 飞漫软件的 MiniGUI 授权策略

– MiniGUI 体系架构– MiniGUI 应用编程的基本概念– MiniGUI 到 uC/OS-II 操作系统上的移植– MiniGUI 相关产品

Page 3: MiniGUI 培训讲义

飞漫软件核心技术 -MiniGUI• 面向实时嵌入式系统的轻量级图形用户界面支持系统• 1999 年初以 GPL 条款发布了第一个版本,国际知名的自由软件项目

• 已广泛应用于手持信息终端产品、机顶盒、工业控制系统及工业仪表、彩票机、金融终端等等

• 已成为跨操作系统的图形用户界面支持系统:可在 Linux/uClinux 、 eCOS 、 uC/OS-II 、 VxWorks 、 pSOS 等操作系统上运行

• 已验证硬件平台: Intel x86, ARM (ARM7 /AMR9 /StrongARM/xScale), PowerPC, MIPS, M68K, ColdFire

Page 4: MiniGUI 培训讲义

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

ix86, ARM, MIPS, PowerPC, M68K…

Linux/uClinux, eCos, uC/OS-II, VxWorks, ...

Portable Layer

Devices

MiniGUI

FrameWork, MMI, Key Apps

ANSI C

Libary

Page 5: MiniGUI 培训讲义

MiniGUI 的功能特色 (1)• 完备的多窗口机制和消息传递机制 • 提供对话框、消息框和常用的控件类 • 菜单、滚动条、加速键、插入符、定时器等 GU

I 元素• 完善的 GDI 图形接口支持• 位图、光标和图标等 Windows 资源文件支持各种流行的图像文件的支持,包括 JPEG 、 GIF 、 PNG 、 BMP 等

Page 6: MiniGUI 培训讲义

MiniGUI 的功能特色 (2)• 支持 ISO8859-1 ~ ISO8859-15 、 GB2312 、 GB

K 、 GB18030 、 BIG5 、 EUCKR 、 EUCJP 、 Shift-JIS 、 UNICODE 等字符集– 非 UNICODE 内码实现,更加适合嵌入式系统

• 支持点阵字体(包括 QPF ), TrueType 以及 Adobe Type1 等矢量字体

• 汉字输入法支持,包括内码、全拼、智能拼音、五笔、自然码、手写输入法等

• 支持高级多媒体界面设计的“皮肤”技术

Page 7: MiniGUI 培训讲义

MiniGUI vs. Qt/Embedded• 典型系统配置:

– 10 MIPS 以上– 8MB FLASH

– 16MB RAM

• 产品范围:– 高、中、低端

• 许可费:– 8RMB~20RMB/ 副本

• 本地技术支持及服务• 跨操作系统支持

• 典型系统配置:– 200MIPS 以上– 16MB FLASH

– 32MB RAM

• 产品范围:– 多用于高端产品中

• 许可费:– 30RMB/ 副本

• 非本地技术支持• 仅支持嵌入式 Linux

Page 8: MiniGUI 培训讲义

MiniGUI vs. MicroWindows• 典型系统配置:

– 10 MIPS 以上– 8MB FLASH

– 16MB RAM

• 产品范围:– 高、中、低端

• 许可费:– 8RMB/ 副本

• 本地技术支持及服务• 跨操作系统支持

• 典型系统配置:– 30MIPS 以上– 16MB FLASH– 16MB RAM

• 产品范围:– 中、低端

• 许可费:– 免费

• 无技术支持,无担保• 仅支持 Linux/uClinux

Page 9: MiniGUI 培训讲义

MiniGUI 典型应用 - 信息终端• 采用 MiniGUI 的信息终端类产品有:

– 多媒体信息查询终端– 各种高、中、低档手持信息终端– 销售点终端( POS )– 彩票销售系统– ……

Page 10: MiniGUI 培训讲义

MiniGUI 典型应用 - 数控系统• 使用 Linux 和 MiniGUI 开发的数控系统产品已超过五套,总出货量约 1000 台

• 系统稳定、速度快• 实时性好

Page 11: MiniGUI 培训讲义

MiniGUI 典型应用 - 称重仪表• 全球第二大称重仪表生产商采用 MiniGUI 开发了两款中高档称重仪表– 第一款产品销量已达一千台– 第二款产品将在西欧上市销售

Page 12: MiniGUI 培训讲义

MiniGUI 典型应用 -医疗仪器• 医疗仪器采用 MiniGUI 作为图形用户界面支持系统– 激光医疗设备– 激光美容设备– CT 设备等

Page 13: MiniGUI 培训讲义

基于 MiniGUI 的手持终端产品• 长城:行业用 PDA 产品 (2000)

• 深圳元征:汽车检测用 PDA 产品 (2002)

• 东莞方正:单兵作战手持系统 (2002)

• 中原电子:军用 PDA 产品 (2003)

• 南京东集:夺标 88 PDA 产品 (2004)

• 多款 WiFi 手机( 2004 ~ 2005 )

Page 14: MiniGUI 培训讲义

基于 MiniGUI 应用程序 -FHAS

Page 15: MiniGUI 培训讲义

基于 MiniGUI 应用程序 -浏览器

Page 16: MiniGUI 培训讲义

基于 MiniGUI 应用程序 - 法规查询

Page 17: MiniGUI 培训讲义

基于 MiniGUI 应用程序 - 多媒体类

Page 18: MiniGUI 培训讲义

飞漫软件的 MiniGUI 授权策略• 双授权机制

– GPL 及商业授权共存– 为无法遵循 GPL 的商业用户提供商业授权

Page 19: MiniGUI 培训讲义

内容提要 (2)– MiniGUI 简介– MiniGUI 体系架构

• MiniGUI 的技术优势• 三种运行模式• MiniGUI-Threads 特点及应用模型• MiniGUI-Lite 特点及应用模型• MiniGUI-Standalone 特点及应用模型

– MiniGUI 应用编程的基本概念– MiniGUI 到 uC/OS-II 操作系统上的移植– MiniGUI 相关产品

Page 20: MiniGUI 培训讲义

MiniGUI 的技术优势 (1)• 轻型、占用资源少

– 可在 CPU 运算能力为 10 MIPS ,仅有 4MB RAM 的系统上正常运行

– 整个系统的占用空间最少为 500KB

• 高性能、高可靠性– MiniGUI 体系结构及优化的图形接口,可确保最快的图形绘制速度

– 已在许多实际产品,尤其是工控系统中得到应用,总装机量达 5 万台以上

Page 21: MiniGUI 培训讲义

MiniGUI 的技术优势 (2)• 可配置

– 可根据需求进行配置,获得满足应用需求的最小系统

• 可伸缩性强– 可用于基于 DragonBall 的低端产品中– 亦可用于基于 StrongARM 或 xScale 的高端产品中

Page 22: MiniGUI 培训讲义

MiniGUI 的技术优势 (3)• 跨操作系统支持

– 理论上可支持任意多任务的嵌入式操作系统– 实际已支持 Linux/uClinux, eCos, uC/OS-II, Vx

Works 等嵌入式操作系统– 在不同操作系统上的 MiniGUI ,提供完全兼容的 API 接口

• 三种运行模式,使 MiniGUI 更易于满足操作系统和应用程序需求

Page 23: MiniGUI 培训讲义

MiniGUI -Threads 的主要特点• 符合 POSIX 标准的多线程编程模型• 所有程序运行在同一个地址空间• 完全的多窗口支持,每个线程都可以建立自己的窗口,窗口之间可以层叠

• 不同的线程间可以通过 MiniGUI 提供的消息传递机制进行事件传送和同步

• 该模式使得 MiniGUI 可支持任意多任务嵌入式操作系统

• 适合工业实时控制系统、智能信息终端等产品

Page 24: MiniGUI 培训讲义

MiniGUI-Threads 的软件架构

MiniGUI API

MiniGUI 应用程序

POSIX threads library

OS

Page 25: MiniGUI 培训讲义

基于 MiniGUI-Threads 的程序结构

GUI 主线程

GUI 线程 非 GUI 线程

消息

Page 26: MiniGUI 培训讲义

MiniGUI-Lite 的主要特点• Unix进程编程模型,程序作为独立的进程运行在不同的地址空间

• 可以进行前后台进程的切换• 简化的客户 / 服务器体系结构,系统的进程间的数据传输很少,资源消耗少

• 客户程序和服务器可以通过 Unix进程间通讯方式进行数据传输,通过信号量进行同步

• 使用具备完整 UNIX 特征的操作系统,如 Linux/uClinux

Page 27: MiniGUI 培训讲义

MiniGUI -Lite 的窗口绘制机制• 根据嵌入式系统的特点而优化• 客户进程独占屏幕区域进行绘制,同一进程的主窗口可以互相剪切

• 服务器程序可创建全局性的窗口对象

Page 28: MiniGUI 培训讲义

MiniGUI-Lite 的程序结构程序(进程) 1 程序(进程) 2 程序(进程) 3

服务器程序

UNIX 套接字

鼠标 键盘

Page 29: MiniGUI 培训讲义

MiniGUI-Standalone 的主要特点• 独立进程结构,适合非多任务操作系统• 实质是独立运行的 MiniGUI-Lite 服务器程序

Page 30: MiniGUI 培训讲义

内容提要 (3)– MiniGUI 简介– MiniGUI 体系架构– MiniGUI 应用编程的基本概念

• MiniGUI 的配置• MiniGUI 的交叉编译• 窗口及控件• 消息及窗口回调函数• 图形接口• 示例程序

– MiniGUI 到 uC/OS-II 操作系统上的移植– MiniGUI 相关产品

Page 31: MiniGUI 培训讲义

MiniGUI 的配置• 可配置模块

• 指定要运行的操作系统• 指定运行模式• 指定图形及输入引擎• 指定要支持的字体类型及字符集类型• 指定要支持的图像文件格式• 指定要包含的控件类• 指定控件的整体风格

• 配置示例

Page 32: MiniGUI 培训讲义

MiniGUI 的交叉编译• Linux/uClinux/eCos

– autoconf/automake

• uC/OS-II– 在 Linux 下使用 autoconf/automake 工具– 使用集成开发环境– 使用手工 Makefile 文件及 cygwin 环境

• VxWorks– 使用手工 Makefile 文件及 cygwin 环境

Page 33: MiniGUI 培训讲义

窗口和控件• 窗口的概念• 控件类• 主窗口和控件• MiniGUI 内建窗口类

Page 34: MiniGUI 培训讲义

消息及窗口回调函数• 消息及消息循环• 窗口回调函数• 常见消息及处理

– 主窗口和控件的创建– 用户交互– 和控件的交互

Page 35: MiniGUI 培训讲义

图形接口• 图形设备上下文

– DC 的概念、获取及释放– 什么时候绘图?– DC 属性

• 基本绘图函数• 高级绘图函数

– 需要完整数学库的支持– 提供对高级二维绘图对象的支持,如画笔、画刷等

Page 36: MiniGUI 培训讲义

示例程序

Page 37: MiniGUI 培训讲义

内容提要 (4)– MiniGUI 简介– MiniGUI 体系架构– MiniGUI 应用编程的基本概念– MiniGUI 到 uC/OS-II 操作系统上的移植

• uC/OS-II 操作系统的特点• 移植到 uC/OS-II 上的主要技术障碍• 移植技术路线及过程

– MiniGUI 相关产品

Page 38: MiniGUI 培训讲义

uC/OS-II 操作系统的特点• 极度精简的实时多任务操作系统• 只提供了基本的多任务管理及同步机制

Page 39: MiniGUI 培训讲义

移植到 uC/OS-II 上的主要技术障碍• 缺少标准 I/O 函数( printf 等)• 缺少内存管理函数( malloc/free 等)• 缺少 POSIX 标准兼容的线程接口

Page 40: MiniGUI 培训讲义

移植技术路线及过程• 实现了 ANSI C 的标准 I/O 函数• 实现了 ANSI C 的标准内存管理函数• 实现了 POSIX 标准兼容的线程接口• 利用 SkyEye 模拟器调试上述实现

– 采用 Dummy 图形引擎及 Auto 输入引擎• 针对具体硬件开发板编写对应的图形及输入引擎

Page 41: MiniGUI 培训讲义

内容提要 (5)– MiniGUI 简介– MiniGUI 体系架构– MiniGUI 应用编程的基本概念– MiniGUI 到 uC/OS-II 操作系统上的移植– MiniGUI 相关产品

• 飞漫软件围绕 MiniGUI 的产品• 更多飞漫产品…• MiniGUI 的未来

Page 42: MiniGUI 培训讲义

飞漫软件围绕 MiniGUI 的产品 (1)• MiniGUI 增值版

– 最新的 MiniGUI 源代码– 技术支持服务及免费升级

• 飞漫手持信息终端应用套件( FHAS )– 丰富的产品内容

– PIM 程序、媒体程序、游戏程序、系统设置及工具 – 采用共享源码的授权方式– 提供专业培训,帮助掌握 FHAS 源代码

Page 43: MiniGUI 培训讲义

飞漫软件围绕 MiniGUI 的产品 (2)• FMedia :飞漫个人多媒体娱乐平台

– 在 PC 平台上完成几乎所有的多媒体娱乐功能:

• 听音乐、放电影、看照片、上网冲浪…• MGIS :飞漫地理信息系统软件

– 国内第一个基于 Linux 的嵌入式地理信息系统软件

– 适合高端智能手持终端、汽车电子、军用作战系统等

Page 44: MiniGUI 培训讲义

更多飞漫产品 ...• MiniGUI 应用程序设计器

– 所见即所得的界面设计器– 代码自动生成及项目维护– 字体编辑工具、内嵌位图生成工具等

• 智能手持终端开发工具套件,适合– 智能手机( 2.5G, 3G SmartPhone )– 无线局域网手机( WiFi Phone )– 便携式多媒体播放器( Pocket Media Player )

Page 45: MiniGUI 培训讲义

MiniGUI 的未来• 跨平台支持

• MiniGUI 已可在 Linux/uClinux 、 eCos 、 uC/OS-II 、 VxWorks 等嵌入式操作系统中运行

• 还将支持更多的嵌入式操作系统• 所见即所得开发工具

• 飞漫软件将为 MiniGUI 用户提供界面设计工具• 还将提供嵌入式产品的纯软件模拟平台和集成开发环境

• 成为嵌入式系统的开放性 GUI 标准平台

Page 46: MiniGUI 培训讲义

飞漫软件能为您做什么?• 提供性能出众的嵌入式中间件产品• 提供 MiniGUI 商业授权与专业服务• 为您量身定做嵌入式系统• 受您委托开发嵌入式应用软件• 嵌入式操作系统和 MiniGUI 开发培训及合作

• 帮您顺利完成嵌入式产品的研发

Page 47: MiniGUI 培训讲义

飞漫是您值得信赖的伙伴

谢谢大家!