您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术基于Framebuffer的嵌入式GUI系统实现 正文
基于Framebuffer的嵌入式GUI系统实现

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

点击数:7988 次   录入时间:03-04 11:44:18   整理:http://www.55dianzi.com   嵌入式系统-技术
客户程序向服务器程序提交感兴趣的事件或要阻止的事件请求,服务器主程序启动循环收集事件(包括输入设备上的事件),由输入引擎接口上的系统调用来接收输入设备事件。将客户感兴趣的事件发送给客户程序,客户程序处理后再向服务器程序提交图形绘制和其它操作请求。两者之间通过IPC或socket连接的办法来传送事件和请求。

3 基于Framebuffer的GAL与GDI的设计

FrameBuffer是出现在2.2.xx内核当中的一种驱动程序接口。这种接口将显示设备抽象为帧缓冲区。用户可以将它看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作可以立即反应在屏幕上。该驱动程序的设备文件一般是/dev/fb0,/dev/fbl等等。在应用程序中,一般通过将FrameBuffer设备映射到进程地址空间的方式使用。FrameBuffer设备还提供了若干ioctl命令,通过这些命令,可以获得显示设备的一些固定信息(比如显示内存大小)、与显示模式相关的可变信息(比如分辨率、象素结构、每扫描线的字节宽度),以及伪彩色模式下的调色板信息等等。通过FrameBuffer设备,还可以获得当前内核所支持的加速显示卡的类型(通过固定信息得到),这种类型通常是和特定显示芯片相关的

    研究中我们发现,虽然己有的几种嵌入式GUI库在窗口管理、消息机制等应用层的实现各不相同;但为了便于移植的特性,都有相似的设备驱动层设计。

    一个能够移植到多种硬件平台上的嵌入式GUI库,应用至少抽象出两类设备:基于图形显示设备(如VGA卡)的图形抽象层GAL ( Graphic Abstract Layer );基于输入设备(如键盘,触摸层等)的输入抽象层IAL ( Input Abstract Layer )。GAL层完成系统对具体的显示硬件设备的操作,极大程度上隐蔽各种不同硬件的技术实现细节,为程序开发人员提供统一的图形编程接口。先进的嵌入式GUI,比如MicroWindows和MiniGUI,都支持Framebuffer。

因为MicroWindows的GAL层代码量小,结构清晰而且模块性好,非常方便修改和扩充。因此我们借鉴MicroWindows的设备抽象层构建,实现需要在文件中包含SRC/include/device.h和src/include/mwtypes.h头文件。前者包含对MicroWindows底层调用函数接口的声明,后者包含MicroWindows中特定结构的定义和一些宏定义。

    GDI对象对于GUI系统来说是一个很重要的概念,它可以提供给用户更加灵活的操作方式,所以本GUI系统实现了类似于Windows下的GDI系统,不像有些GUI系统,放弃了GDI对象概念,窗口层直接跟绘图层交互,导致用户操作起来不灵活,这样设计也容易在遵循嵌入式软件平台API标准的前提下与Windows的图形用户接口相兼容。系统GDI提供了设备上下文(Device Context)操作、基本GDI对象操作〔包括画笔、画刷、字体、位图、区域、填充等),还有映射模式、背景模式和光栅操作。尽管系统GDI吸取了Windows GDI的一些概念和设计方法,但其作为嵌入式GUI系统的一部分,特别针对嵌入式环境的特点,取消了一些不常用的、影响效率的功能,充分挖掘GDI层的性能。由于硬件抽象层提供的图形操作接口只有一个Surface,所以所有的基本图形绘制及操作都需要GDI实现,所以提高GDI性能的重点是好的图形学算法。本系统GDI对原有的组成元素做了一些取舍,其组成元素如表1所示:

表1、系统GDI组成元素表

设备上下文

GDI对象

绘图属性

位图操作

字体

DC

画笔、画刷

光栅、背景模式、坐标模式

DIB、DDB

点阵、True Type

4 结束语

本文研究了基于Framebuffer的嵌入式GUI的系统实现,包括其体系结构层次的建立、驱动机制的分析、微型客户端/服务器模式的实现,以及基于Framebuffer的GAL与GDI的设计等关键内容,提供了除现行流行方案外的嵌入式GUI的解决方案,并可根据自己系统需求量身定做,在实际项目实施中获得了很好的效果。

作者简介:赵霞 (1968-)女(汉族),河北人,高级讲师,硕士,新侨职业技术学院计算机信息系.主要研究领域:计算机应用与软件研究.

BiographyZhao Xia(1968-), Female(Han), Senior instructor, Master, Department of computer, Xinqiao Professional Technological Institute. Research area: Research on computer application and SOFtware development.

参考文献:

[1]王田苗.嵌入式系统设计与实例分析.清华大学出版社,2003年10月第二版.

[2]王同洋,熊伟, 嵌入式Linux中图形用户界面的研究与设计 .微计算机信息,2006, (08),90-92

[3]张娟,张雪兰.基于嵌入式Linux的GUI应用程序的实现.计算机应用,2003 (04):116-117



上一页  [1] [2] 


本文关键字:嵌入式  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术