几种嵌入式GUI介绍
MicroWindows
Century软件公司维护的,较早出现的开放源代码的嵌入式嵌入式 GUI
特点:
1主要特色:提供较为完善的图形功能,支持多种外部设备输入,包括LCD、鼠标和键盘等。
2核心是基于显示设备接口的,绝大部分使用 C语言开发的,移植性很强。
3主要在 linux、wince等操作系统上运行。
MiniGUI
我国为数不多的在国际比较知名的*软件之一,早期有魏永明先生和许多志愿者开发,现在有北京飞漫公司(www.minigui.com)进行维护和商业运作。
特点:
1主要特色:轻量级的图形界面, MiniGUI代码都采用c 语言开发,提供完备的多窗口机制和消息传递机制。
2完善的多字符集支持,提供中韩日等多输入字体。
3提供MiniGUI--Threads、MiniGUI –Lite、I MiniGUI-- standone三种不同架构版本以满足不同的嵌入OS。
4提供丰富的应用软件
Qt/Embedded(简称QtE)
QtE是一个专门为嵌入式系统设计图形用户界面的工具包,挪威 Trolltech公司产品。 1995年正式发行第一个版本 Qt0.9。 Linux桌面系统的KDE就是基于Qt库开发的,Qt与linux操作系统的兼容性最好。
特点:
1主要特色:支持多种平台,移植时只需重新编译代码而不需要对代码进行修改。
2模块化,可剪裁,极其适合嵌入式系统的“小而快”的要求。
3用C++编写,为开发者提供清晰的框架。
4 For free 版本代码完全开放。www.trolltech.com
uc/GUI
uC/GUI是一个通用的嵌入式应用的图形模块,它是美国Micrium公司开发的一种高效的、与处理器和LCD控制器独立的通用GUI,可以适用各种CPU和LCD,uC/GUI完全以ANSI-C编写,因此它与处理器无关,在单任务和多任务操作系统都可以很好的应用、可以很方便地移植到不同的操作系统和嵌入式微处理器上,并可支持不同尺寸的图形液晶显示器。它采用层次化的设计,功能强大,移植方便,被广泛地应用于嵌入式领域,如PDA、机顶盒以及DVD NCD播放机等
(1)支持任何8位、16位和32位的CPU,只要求CPU具有相应的ANSI-C编译器即可;
(2)所有硬件接口定义都使用可配置的宏;
(3)字符、位图可显示与LCD的任意点,并不限制与字节长度的整数倍数地址;
(4)所有程序在长度和速度方面都进行了优化,结构清晰;
(5)对于慢速的LCD控制器,可以使用缓冲存储器减少访问时间,提高显示速度。
UC/GUI特征
UC/GUI给任何带图形LCD操作的应用程序提供了一种有效,与处理器和LCD控制器独立的图形用户界面。它与单任务或多任务环境兼容,不管是专用操作系统(proprietary operating system)还是其他任何的商业实时操作系统(RTOS)。UC/GUI以C源代码的形式移植。它可以适用于任何大小的物理和虚拟显示,支持任何的LCD控制器和CPU。它的特征包括:
一般特点:
。任何8/16/32位的CPU;只需要一个ANSI 的C编译器
。带控制器支持(如果有合适的驱动程序)的任何(单色,灰度级或者彩色)LCD
。在小屏幕显示时可以不带LCD控制器
。通过配置宏支持任何接口
。显示大小可配置
。字符和位图可以写到LCD的任何点上,而不必是偶数的字节地址
。程序在大小和速度两方面得到优化
。允许编译时跳转(Compile time switches)以获得不同的优化
。对于较慢的LCD控制器,,LCD能够缓存到内存中,最小化访问次数,获得非常高的速度
。清晰的结构
。支持虚拟显示;虚拟显示可以比实际显示更大
图形库
。支持不同颜色深度的位图
。位图转换器
。完全无浮点(floating-point)使用
。线/点快速绘制(不使用浮点运算)
。圆/多边形的快速绘制
。不同的绘图模式
字体
。移植有基本软件使用的各种不同字体:4*6, 6*8, 6*9,8*8, 8*9, 8*16, 8*17, 8*18, 24*32,还有8,10,13,16等几种不同像素高度的均衡字体(proportional fonts)。更多的信息,请参考第25章"标准字体"
。能够定义新字体并且简单链接
。只有用于应用程序的字体才实际上链接到执行结果,使得ROM的最少化使用
。字体能在x和y方向充分地缩放
。字体转化器;你主机系统(比如微软的Windows)上的任何可用字体都可以转化
字符串/数值输出程序
。程序能够以任何字体显示十进制,二进制和十六进制的数值
。程序能够以任何字体编辑十进制,二进制和十六进制的数值
窗口管理器(WM)
。包括剪切在内的完全窗口管理。窗口外的客户区域无法重写覆盖
。窗口可以移动和改变大小
。支持回调函数(Callback routines)(可选用法)
。WM最少地使用RAM(大约每个窗口20字节)
用于PC外观的可选widgets
。可用Widgets(窗口对象,或称为控件)。它们一般自动运行,并且使用简单
触摸屏和鼠标支持
。窗口对象,比如按钮widget,UC/GUI提供触摸屏和鼠标支持
PC工具
。模拟器和观察器
。位图转化器
。字体转化器
其中,我使用过uC/GUI在基于ucos系统的ARM的移植开发
目前基于QTE进行开发,以后遇到其他的GUI继续补充。