Upload
archie
View
275
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
MiniGUI 培训讲义北京飞漫软件技术有限公司
内容提要 (1)– MiniGUI 简介
• 飞漫软件核心技术 -MiniGUI
• MiniGUI 和嵌入式操作系统的关系• MiniGUI 功能特色• MiniGUI 和其它嵌入式 GUI 系统的对比• MiniGUI 成功案例及典型应用• 飞漫软件的 MiniGUI 授权策略
– MiniGUI 体系架构– MiniGUI 应用编程的基本概念– MiniGUI 到 uC/OS-II 操作系统上的移植– MiniGUI 相关产品
飞漫软件核心技术 -MiniGUI• 面向实时嵌入式系统的轻量级图形用户界面支持系统• 1999 年初以 GPL 条款发布了第一个版本,国际知名的自由软件项目
• 已广泛应用于手持信息终端产品、机顶盒、工业控制系统及工业仪表、彩票机、金融终端等等
• 已成为跨操作系统的图形用户界面支持系统:可在 Linux/uClinux 、 eCOS 、 uC/OS-II 、 VxWorks 、 pSOS 等操作系统上运行
• 已验证硬件平台: Intel x86, ARM (ARM7 /AMR9 /StrongARM/xScale), PowerPC, MIPS, M68K, ColdFire
MiniGUI 和嵌入式操作系统的关系
ix86, ARM, MIPS, PowerPC, M68K…
Linux/uClinux, eCos, uC/OS-II, VxWorks, ...
Portable Layer
Devices
MiniGUI
FrameWork, MMI, Key Apps
ANSI C
Libary
MiniGUI 的功能特色 (1)• 完备的多窗口机制和消息传递机制 • 提供对话框、消息框和常用的控件类 • 菜单、滚动条、加速键、插入符、定时器等 GU
I 元素• 完善的 GDI 图形接口支持• 位图、光标和图标等 Windows 资源文件支持各种流行的图像文件的支持,包括 JPEG 、 GIF 、 PNG 、 BMP 等
MiniGUI 的功能特色 (2)• 支持 ISO8859-1 ~ ISO8859-15 、 GB2312 、 GB
K 、 GB18030 、 BIG5 、 EUCKR 、 EUCJP 、 Shift-JIS 、 UNICODE 等字符集– 非 UNICODE 内码实现,更加适合嵌入式系统
• 支持点阵字体(包括 QPF ), TrueType 以及 Adobe Type1 等矢量字体
• 汉字输入法支持,包括内码、全拼、智能拼音、五笔、自然码、手写输入法等
• 支持高级多媒体界面设计的“皮肤”技术
MiniGUI vs. Qt/Embedded• 典型系统配置:
– 10 MIPS 以上– 8MB FLASH
– 16MB RAM
• 产品范围:– 高、中、低端
• 许可费:– 8RMB~20RMB/ 副本
• 本地技术支持及服务• 跨操作系统支持
• 典型系统配置:– 200MIPS 以上– 16MB FLASH
– 32MB RAM
• 产品范围:– 多用于高端产品中
• 许可费:– 30RMB/ 副本
• 非本地技术支持• 仅支持嵌入式 Linux
MiniGUI vs. MicroWindows• 典型系统配置:
– 10 MIPS 以上– 8MB FLASH
– 16MB RAM
• 产品范围:– 高、中、低端
• 许可费:– 8RMB/ 副本
• 本地技术支持及服务• 跨操作系统支持
• 典型系统配置:– 30MIPS 以上– 16MB FLASH– 16MB RAM
• 产品范围:– 中、低端
• 许可费:– 免费
• 无技术支持,无担保• 仅支持 Linux/uClinux
MiniGUI 典型应用 - 信息终端• 采用 MiniGUI 的信息终端类产品有:
– 多媒体信息查询终端– 各种高、中、低档手持信息终端– 销售点终端( POS )– 彩票销售系统– ……
MiniGUI 典型应用 - 数控系统• 使用 Linux 和 MiniGUI 开发的数控系统产品已超过五套,总出货量约 1000 台
• 系统稳定、速度快• 实时性好
MiniGUI 典型应用 - 称重仪表• 全球第二大称重仪表生产商采用 MiniGUI 开发了两款中高档称重仪表– 第一款产品销量已达一千台– 第二款产品将在西欧上市销售
MiniGUI 典型应用 -医疗仪器• 医疗仪器采用 MiniGUI 作为图形用户界面支持系统– 激光医疗设备– 激光美容设备– CT 设备等
基于 MiniGUI 的手持终端产品• 长城:行业用 PDA 产品 (2000)
• 深圳元征:汽车检测用 PDA 产品 (2002)
• 东莞方正:单兵作战手持系统 (2002)
• 中原电子:军用 PDA 产品 (2003)
• 南京东集:夺标 88 PDA 产品 (2004)
• 多款 WiFi 手机( 2004 ~ 2005 )
基于 MiniGUI 应用程序 -FHAS
基于 MiniGUI 应用程序 -浏览器
基于 MiniGUI 应用程序 - 法规查询
基于 MiniGUI 应用程序 - 多媒体类
飞漫软件的 MiniGUI 授权策略• 双授权机制
– GPL 及商业授权共存– 为无法遵循 GPL 的商业用户提供商业授权
内容提要 (2)– MiniGUI 简介– MiniGUI 体系架构
• MiniGUI 的技术优势• 三种运行模式• MiniGUI-Threads 特点及应用模型• MiniGUI-Lite 特点及应用模型• MiniGUI-Standalone 特点及应用模型
– MiniGUI 应用编程的基本概念– MiniGUI 到 uC/OS-II 操作系统上的移植– MiniGUI 相关产品
MiniGUI 的技术优势 (1)• 轻型、占用资源少
– 可在 CPU 运算能力为 10 MIPS ,仅有 4MB RAM 的系统上正常运行
– 整个系统的占用空间最少为 500KB
• 高性能、高可靠性– MiniGUI 体系结构及优化的图形接口,可确保最快的图形绘制速度
– 已在许多实际产品,尤其是工控系统中得到应用,总装机量达 5 万台以上
MiniGUI 的技术优势 (2)• 可配置
– 可根据需求进行配置,获得满足应用需求的最小系统
• 可伸缩性强– 可用于基于 DragonBall 的低端产品中– 亦可用于基于 StrongARM 或 xScale 的高端产品中
MiniGUI 的技术优势 (3)• 跨操作系统支持
– 理论上可支持任意多任务的嵌入式操作系统– 实际已支持 Linux/uClinux, eCos, uC/OS-II, Vx
Works 等嵌入式操作系统– 在不同操作系统上的 MiniGUI ,提供完全兼容的 API 接口
• 三种运行模式,使 MiniGUI 更易于满足操作系统和应用程序需求
MiniGUI -Threads 的主要特点• 符合 POSIX 标准的多线程编程模型• 所有程序运行在同一个地址空间• 完全的多窗口支持,每个线程都可以建立自己的窗口,窗口之间可以层叠
• 不同的线程间可以通过 MiniGUI 提供的消息传递机制进行事件传送和同步
• 该模式使得 MiniGUI 可支持任意多任务嵌入式操作系统
• 适合工业实时控制系统、智能信息终端等产品
MiniGUI-Threads 的软件架构
MiniGUI API
MiniGUI 应用程序
POSIX threads library
OS
基于 MiniGUI-Threads 的程序结构
GUI 主线程
GUI 线程 非 GUI 线程
消息
MiniGUI-Lite 的主要特点• Unix进程编程模型,程序作为独立的进程运行在不同的地址空间
• 可以进行前后台进程的切换• 简化的客户 / 服务器体系结构,系统的进程间的数据传输很少,资源消耗少
• 客户程序和服务器可以通过 Unix进程间通讯方式进行数据传输,通过信号量进行同步
• 使用具备完整 UNIX 特征的操作系统,如 Linux/uClinux
MiniGUI -Lite 的窗口绘制机制• 根据嵌入式系统的特点而优化• 客户进程独占屏幕区域进行绘制,同一进程的主窗口可以互相剪切
• 服务器程序可创建全局性的窗口对象
MiniGUI-Lite 的程序结构程序(进程) 1 程序(进程) 2 程序(进程) 3
服务器程序
UNIX 套接字
鼠标 键盘
MiniGUI-Standalone 的主要特点• 独立进程结构,适合非多任务操作系统• 实质是独立运行的 MiniGUI-Lite 服务器程序
内容提要 (3)– MiniGUI 简介– MiniGUI 体系架构– MiniGUI 应用编程的基本概念
• MiniGUI 的配置• MiniGUI 的交叉编译• 窗口及控件• 消息及窗口回调函数• 图形接口• 示例程序
– MiniGUI 到 uC/OS-II 操作系统上的移植– MiniGUI 相关产品
MiniGUI 的配置• 可配置模块
• 指定要运行的操作系统• 指定运行模式• 指定图形及输入引擎• 指定要支持的字体类型及字符集类型• 指定要支持的图像文件格式• 指定要包含的控件类• 指定控件的整体风格
• 配置示例
MiniGUI 的交叉编译• Linux/uClinux/eCos
– autoconf/automake
• uC/OS-II– 在 Linux 下使用 autoconf/automake 工具– 使用集成开发环境– 使用手工 Makefile 文件及 cygwin 环境
• VxWorks– 使用手工 Makefile 文件及 cygwin 环境
窗口和控件• 窗口的概念• 控件类• 主窗口和控件• MiniGUI 内建窗口类
消息及窗口回调函数• 消息及消息循环• 窗口回调函数• 常见消息及处理
– 主窗口和控件的创建– 用户交互– 和控件的交互
图形接口• 图形设备上下文
– DC 的概念、获取及释放– 什么时候绘图?– DC 属性
• 基本绘图函数• 高级绘图函数
– 需要完整数学库的支持– 提供对高级二维绘图对象的支持,如画笔、画刷等
示例程序
内容提要 (4)– MiniGUI 简介– MiniGUI 体系架构– MiniGUI 应用编程的基本概念– MiniGUI 到 uC/OS-II 操作系统上的移植
• uC/OS-II 操作系统的特点• 移植到 uC/OS-II 上的主要技术障碍• 移植技术路线及过程
– MiniGUI 相关产品
uC/OS-II 操作系统的特点• 极度精简的实时多任务操作系统• 只提供了基本的多任务管理及同步机制
移植到 uC/OS-II 上的主要技术障碍• 缺少标准 I/O 函数( printf 等)• 缺少内存管理函数( malloc/free 等)• 缺少 POSIX 标准兼容的线程接口
移植技术路线及过程• 实现了 ANSI C 的标准 I/O 函数• 实现了 ANSI C 的标准内存管理函数• 实现了 POSIX 标准兼容的线程接口• 利用 SkyEye 模拟器调试上述实现
– 采用 Dummy 图形引擎及 Auto 输入引擎• 针对具体硬件开发板编写对应的图形及输入引擎
内容提要 (5)– MiniGUI 简介– MiniGUI 体系架构– MiniGUI 应用编程的基本概念– MiniGUI 到 uC/OS-II 操作系统上的移植– MiniGUI 相关产品
• 飞漫软件围绕 MiniGUI 的产品• 更多飞漫产品…• MiniGUI 的未来
飞漫软件围绕 MiniGUI 的产品 (1)• MiniGUI 增值版
– 最新的 MiniGUI 源代码– 技术支持服务及免费升级
• 飞漫手持信息终端应用套件( FHAS )– 丰富的产品内容
– PIM 程序、媒体程序、游戏程序、系统设置及工具 – 采用共享源码的授权方式– 提供专业培训,帮助掌握 FHAS 源代码
飞漫软件围绕 MiniGUI 的产品 (2)• FMedia :飞漫个人多媒体娱乐平台
– 在 PC 平台上完成几乎所有的多媒体娱乐功能:
• 听音乐、放电影、看照片、上网冲浪…• MGIS :飞漫地理信息系统软件
– 国内第一个基于 Linux 的嵌入式地理信息系统软件
– 适合高端智能手持终端、汽车电子、军用作战系统等
更多飞漫产品 ...• MiniGUI 应用程序设计器
– 所见即所得的界面设计器– 代码自动生成及项目维护– 字体编辑工具、内嵌位图生成工具等
• 智能手持终端开发工具套件,适合– 智能手机( 2.5G, 3G SmartPhone )– 无线局域网手机( WiFi Phone )– 便携式多媒体播放器( Pocket Media Player )
MiniGUI 的未来• 跨平台支持
• MiniGUI 已可在 Linux/uClinux 、 eCos 、 uC/OS-II 、 VxWorks 等嵌入式操作系统中运行
• 还将支持更多的嵌入式操作系统• 所见即所得开发工具
• 飞漫软件将为 MiniGUI 用户提供界面设计工具• 还将提供嵌入式产品的纯软件模拟平台和集成开发环境
• 成为嵌入式系统的开放性 GUI 标准平台
飞漫软件能为您做什么?• 提供性能出众的嵌入式中间件产品• 提供 MiniGUI 商业授权与专业服务• 为您量身定做嵌入式系统• 受您委托开发嵌入式应用软件• 嵌入式操作系统和 MiniGUI 开发培训及合作
• 帮您顺利完成嵌入式产品的研发
飞漫是您值得信赖的伙伴
谢谢大家!