GUI的种类及uCGUI的架构
(说明:本博文转载自他人笔下,希望可以帮助同僚更深刻的认识GUI)
GUI的种类及uC/GUI的架构
一. GUI概述
GUI(Graphic User Interface)是图形化的用户界面,它能提供友好的人机交互接口。
它有以下特性:体积小,运行时耗用系统资源少,层次化的结构,易移植,可靠性高
嵌入式GUI种类
嵌入式GUI种类有很多,下面列举几种:
1. WINCE的GWES(图形、窗口、事件子系统),由应用程序接口(API)、用户接口(UI)和图形设备接口(GDI)组成,包含了消息机制
2. Trolltech公司的产品:QT、QTE、QTOPIA,它们跨平台、功能强大,但资源消耗多
3.MINIGUI是魏永明创建的嵌入式GUI中间件,可以以多线程、多进程、以及单任务运行,是比较成熟的商用系统
4.ucGUI能支持多种环境的GUI,可以以多任务形式运行或者以前后台模式运行。商用化,但功能相对简单
GUI的两种模式:
1. Windows模式,采用类似windows的API和相应的消息机制,如ucGUI、MicroWindows、miniGUI
2.C/S模式,采用一个XServer,所有的显示都以客户端的形式请求服务,如Nano-X
GUI 在嵌入式系统或实时系统中的地位
越来越多的市场需求数据显示,包括 PDA、娱乐消费电子、机顶盒、DVD等影音设备、WAP 手机等高端电子产品得到广泛应用,原先仅在军工、工业控制等领域中使用的GUI图形系统,受到越来越多的关注。
对于轻量级 GUI 的系统而言,对 GUI 的要求相对较低,如传统51类型单片机这类系统一般不希望建立在庞大累赘的、非常消耗系统资源的操作系统和 GUI 之上,如 Windows 或 X Window。目前此类系统都直接使用原有编程手段,采用比较简单的手法实现 GUI。对于太过庞大和臃肿的GUI系统而言,μc/GUI这类可运用于此类资源较紧张的轻型 GUI 的需求更加突出
uc/GUI简介
μc/GUI是美国Micrium公司出品的一款针对嵌入式系统的优秀图形软件。它是为任何使用LCD图形显示的应用提供高效的独立于处理器及LCD控制器而设计的图形用户接口,它适用单任务或是多任务系统环境。并适用于任意LCD控制器和 CPU下任何尺寸的真实显示或虚拟显示.架构基于模块化设计,由不同的模块中的不同层组成。由一个LCD驱动层来包含所有对LCD的具体图形操作, UCGUI可以在任何的CPU上运行, 因为它是100%的标准C代码编写的. 模块包括液晶驱动模块,内存设备模块,窗口系统模块,窗口控件模块,反锯齿模块和触摸屏及外围模块。其主要特性包括丰富图形库,多窗口、多任务机制,窗口管理及丰富窗口控件类(按钮、检验框、单/多行编辑框、列表框、进度条、菜单等),多字符集
和多字体支持,多种常见图像文件支持,鼠标、触摸屏支持,灵活自由配制等特性,ucGUI能够适应大多数的使用黑白或彩LCD的应用, 它提供非常好的允许处理灰度的颜管理.还提供一个可扩展的2D图形库及占用极少RAM的窗口管理体系. 在μc/GUI的最初典型配制可包括是否需要操作系统支持,是否需要内存设备支持,是否需要窗口支持,是否需要抗锯齿支持等众多选项,这对于GUI的定制和GUI的体积是非常重要的。小型系统需求RAM100bytes,堆栈500bytes,ROM10kbytes,完全满足资源非常紧张的系统之中.
μc/GUI和其他图形系统的比较
(1) μc/GUI优势在于其体积小,配制性强,运用领域非常之广泛。相对于众多嵌入式图形系统,如MicroWindows/NanoX, OpenGUI, Qt/Embedded, MiniGUI等,只要满足RAM100bytes,堆栈500bytes,ROM10kbytes的小型系统中都可以运行μc/GUI,而这个需求是其他图形系统所不及的,可以广泛运用到国内已经运用非常成熟的单片机系统内,增强系统性能。在资源丰富的大型系统中,也只需要RAM2-6Kb,堆栈 1200bytes,ROM30-60Kb就可以满足mc/GUI的各种功能。对比于其他图形系统最少几百K,动辄上M的系统而言是非常有优势的。其众多的配制,满足不同需求用户需要,方便灵活小巧,实用性大大增强。
(2) 平台的广泛性,移植方便。由于μc/GUI是100%C编写,适应绝大多数软硬平台,其适应性非常强,相对于众多具有软硬件针对性的图形系统而言,结构划分和模块划分非常清晰,分设专门的LCD驱动模块,移植简单方便。代码量相对较小,易操作可扩展性强,方便用户定制和自主更新完善满足个性需求。
S5U1C330G1S简介
S5U1C330G1S是为S1C33系列提供的图形处理中间件,可以基于S1C33芯片完成二维图形和GUI处理。所有这些功能以库函数形式提供,可以连接到目标程序中;而且上层提供的功能都有C编程接口,极大地方便了程序员。此外,还提供图形ROM数据创建工具——一套PC软件工具。
该中间件特别适合于开发蜂窝电话、PDA、电子文具和玩具等。它具有以下特点:
l 支持带内置LCD控制器的S1C33系列MCU
l 提供基本的画图功能,包括点、直线、圆、椭圆、矩形、弧以及填充等;
l 显示和保存图象
l 正文显示
l 在GUI接口功能时,必须使用S5U1C330G1S库
l 图形ROM数据生成工具
1.硬件资源
要使用S5U1C330G1S,需要一些基本的硬件支持。一般来讲,至少要有S1C33芯片、外部存储器和LCD等。另外,在S5U1C330G1S中,还要使用S1C33芯片上的一个16位可编程定时器信道。
GUI系统还应该包括以下硬件资源:
(1)K50~K54端口以及所有相关的寄存器
(2)16位可编程定时器(定时器3)以及相关寄存器
(3)操作时钟:对高速(OSC3)时钟频率,输入20MHz;使用PPL时,则加倍成40MHz;总
线时钟频率为20MHz;对内置LCD控制器的时钟(CLK1),OSC3(20MHz)被设置成1/3周期以供使用。
(4)存储器和堆栈如下表
对象 | 代码(ROM)/KB | BSS(RAM) | 堆栈 |
GPC相关功能 | 15 | 500字节 | 170字节 |
GUI相关功能 | 4.2 | 23 | 250字节 |
1字节字型 | 3 | — | — |
2字节字型 | 164 | — | — |
显示驱动 | 1 | 16字节 | — |
2.软件资源
100种不同的字体S5U1C330G1S库是位于S1C33硬件和用户程序之间一个编程中间件,其主要目标是实现硬件之上的基本画图、图像显示和文本显示功能。通过调入以 C程序源码提供的高层函数或者链接这些顶层函数到用户程序,可以方便地进行图形处理,并不需要直接由用户程序
调用其它的JPEG33基本库函数。
使用S5U1C330G1S开发图形时的应用程序的过程主要包括以下几步:
l 使用S5U1C330G1S工具创建图像的ROM数据,并将其转换成C源程序
l 创建用户应用:利用S5U1C330G1S库提供的GUI和图形函数进行图形处理,上一步创建的数据源文件可以包含在用户源文件中
l 编译源程序,生成目标文件
l 链接目标文件与S5U1C330G1S库,产生可执行文件
3.编程接口
为了便于应用编程,S5U1C330G1S提供了丰富的编程接口:一组srf33库格式的图像处理函数库。在使用前,该库必须链接到目标程序,通过目标程序调用来实时完成以下功能:
l 基本画图功能:点、直线、圆、椭圆、矩形、弧以及填充
l 显示与保存图形功能
l 文本显示功能:既支持单字节字符,也支持双字节字符
l GUI功能:窗口、弹出窗口、控制按钮和图像按钮等。
l 键盘与手表事件功能
二.ucGUI结构分析
1.ucGUI结构层次
核心层提供基本图形操作
应用程序接口
WM提供窗体管理接口和窗体消息机制,图形接口,建立在核心层之上
核心层建立在GAL之上,以进行实际图形操作,IAL接口提供用户输入接口
2.ucGUI的代码结构
Application中存放应用程序,Config中存放配置头文件,GUI目录下存放系统代码,Core存放GUI核心代码,Font存放字体文件,Widget存放一些窗体控件,WM存放窗口管理器代码,LCDDriver存放LCD驱动程序,其他部分为一些2D函数,包括颜,管理系统和抗锯齿等
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论