用户中心

资讯 > 嵌入式系统

基于Framebuffer的嵌入式GUI系统实现

2008.04.18阅读 6931

  摘要:本文研究了基于Framebuffer的嵌入式GUI的系统实现CONTROL ENGINEERING China版权所有,包括其体系结构层次的建立、驱动机制的分析、微型客户端/服务器模式的实现,以及基于Framebuffer的GAL与GDI的设计等关键内容。

  关键词:嵌入式;GUI;Linux;Framebuffer

  0 前言

  当前流行的商业化的GUI 系统包括Palm OS、Windows CE和Symbian OS 等。些GUI 性能出众,一般都提供完整的解决方案,对Java、多媒体的支持较好,使用它们可以很方便地构建自己的嵌入式系统,缩短开发周期。但这些都商业化产品,使用它们不可避免地要付出昂贵的授权费用,没有公开源代码,用户也不能很自由地定制自己的产品。

  Linux 的出现给嵌入式产品的开发带来了新的活力控制工程网版权所有,它拥有很多的优良特性非常适合于嵌入式开发。目前内外基于Linux的GUI产品比较流行的包括MiniGUI、MicroWindows、QT/Embedded 等,其中QT/Embedded 属于商业化的产品,其他属于开源软件。从性能、功能各个方面来说QT/Embedded 比较优秀控制工程网版权所有,但是使用它需要

支付高昂的授权费用,一般应用在高端的PDA 和SmartPhone 等产品上。MiniGUI和MicroWindows均为自由软件,只是前者遵循LGPL条款,后者遵循MPL条款,这两个系统的技术路线也有所不同控制工程网版权所有,MiniGUI的策略是首先建立在比较成熟的图形引擎之上,比如Svgalib和LibGGI,开发的重点在于窗口系统、图形接口之上,而MicroWindows目前的开发重点则在底层的图形引擎之上,窗口系统和图形接口方面的功能还比较欠缺,而且MiniGUI在1.6版本以后也不再提供免费的完整功能版本下载。

  FrameBuffer是Linux控制台下的一个通用的图形接口,它拥有良好的平台无关性,可以支持绝大多数的硬件,因而得到愈来愈多厂家的支持,一些流行的图形库如QT、GTK便是基于FrameBuffer的。它的接口非常简单,通过它可以十分方便地构建一个图形系统。而对GUI的实现做一个系统深入的分析和研究也是嵌入式系统研究必不可少的一个步骤。本项目在开发嵌入式数字控制系统的过程中对现有的嵌入式GUI系统做了深入的研究,包括嵌入式GUI的体系结构层次、驱动机制,并实现了对自身量身定做的GAL和GDL,实现了满足自身需求的嵌入式GUI系统。

  1嵌入式GUI需求分析

  与运行在PC 机上的GUI相比,作为运行在嵌入式设备上的程序,不可避免的要受到设备环境的限制,其实这也是所有嵌入式编程都要遇到的问题。嵌入式设备对GUI 的限制主要体现在:(1) CPU速度相对来说较慢,一般不具备浮点运算功能或浮点运算功能较弱;(2)内存、外存容量小;(3)电量有限需要考虑节电因素。

  同时www.cechina.cn,嵌入式平台具有多样性,不同的平台之间性能、功能部件千差万别,很难设计出一个GUI产品能够适合任何平台,因此就必需对GUI产品进行准确的定位,包括所要运行的平台、最终用户的需求等等,它是产品成功的关键,也决定了我们的设计方针和思想,比如实时和非实时产品的设计是完全不同的。这里我们设计的GUI 系统是为中低端嵌入式系统提供图形界面能力的中间件产品,它应该能满足以Linux OS 作为产品系统平台的中低端客户对图形用户界面开发的要求,并易于第三方应用程序的移植。具体来说,其运行在CPU 主频不高于400MHz(实际使用200MHz),内存容量在64MB(实际使用16M)以下的中低端嵌入式系统,兼容POSIX标准的操作系统,拥有完整或经过裁减的C库。

  在设计的时候要充分考虑到这些因素,在编程时也要注意一些原则:尽量让CPU少做事,尽量不进行浮点运算,尽量减少文件操作,尽量减少内存分配。

  2 基于Linux的嵌入式GUI构建

  2.1 嵌入式GUI的体系结构层次

  嵌入式GUI的实现一般要划分成四大功能模块:GUI用户接口模块、GUI对象模块、GUI基本图形模块和GUI消息驱动模块。具体功能定义如下:

  1)GUI用户接口模块 该模块为上层应用软件开发员提供方便、易用的API接口函数,对上层开发人员屏蔽了GUI的设备实现细节,让开发人员很简单的就可以编写出良好的图形用户界面的应用程序。

  2)GUI对象模块 GUI对象模块对窗口环境中的逻辑对象进行组织管理。其中包括对象的添加、删除引发的对象链表的更新,以及GUI窗口显示的维护,如窗口切换、焦点切换、对象的隐藏和恢复等操作引发的对象属性的更新,还有对不同控件的各种事件的响应。

  3)GUI基本图形模块 在该模块中实现了对显示输出设备的操作,如画点、画线、画矩形等基本功能,还有对于字符的解析输出,

标签:GUI系统,
版权声明:版权归控制工程网所有,转载请注明出处!

频道推荐

关于我们

控制工程网 & CONTROL ENGINEERING China 全球工业控制、自动化和仪器仪表领域的先锋媒体

CE全球

联系我们

商务及广告合作
任小姐(北京)                 夏小姐(上海)
电话:010-82053688      电话:18616877918
rendongxue@cechina.cn      xiashuxian@cechina.cn
新闻投稿:王小姐

关注我们的微信

关于我们 | 网站地图 | 联系我们
© 2003-2020    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688