首页 » 技术文章 » DirectFB在嵌入式远程桌面控制系统中的应用

DirectFB在嵌入式远程桌面控制系统中的应用

作者:  时间:2011-08-09 18:07  来源:EDN

  2.2 DirectFB 图形系统实现图形加速

  DirectFB 图形系统构建在FrameBuffer 图形引擎之上,是一个完整的硬件抽象层,提供了对每个图形操作的软件回馈,由于这一功能还没有被底层硬件支持,因此需要一种能够提取图形的硬件设备的支持。DirectFB 体系结构如图1 所示,DirectFB 图形芯片驱动程序访问显存映射的图形处理器I/O端口向图形处理器提交命令,即实际的硬件加速的启动是在用户空间完成的。

  FrameBuffer是内核中的一种驱动程序接口,它将显示设备抽象为帧缓冲区,用户可以将它看成是显示内存的一个映像,将其映射到进程地址空间直接进行读写操作,而读写操作可以立即反映到屏幕上。DirectFB 作为抽象层可以直接访问FrameBuffer,对它进行显卡工作模式(分辨率,颜色深度,时序),映射显存等设置,并在其上直接输出图形。这种在内核级实现图形的方案加快了显示速度,节省了系统资源,从而提高效率。

  2.3 DirectFB 嵌入式系统上的移植

  Directvcn 依赖DirectFB 库实现功能,需要对DirectFB 进行移植。DirectFB 的交叉编译条件是在Linux 内核2.2 以上,并运行帧缓冲(Framebuffer),以及必要的依赖库,比如zliblibjpeglibpngfreetype 等。完成设计的软件开发环境是:

  Ubuntu8.04 操作系统,嵌入式Linux 开发环境。使用ELDK4.1交叉编译器。步骤如下:

  (1 http://www.directfb.org/downloads/Core/获取源代码DirectFB-1.2.5.tar.gz 并解压。

  (2)交叉编译依赖库并安装到指定路径下:

  -prefix=/usr/local/arm/eldk-4.1/usr/bin/arm-linux

  (3)设置交叉编译环境变量,如PREFIXLDFLAGSCFLAGSPKG_CONFIG_PATH 等路径,配置并交叉编译DirectFB-1.2.5

  (4 rootfs/etc 下为directvnc 编辑配置文件directfbrc,内容如下:

  编译之前,去掉Makefile OMAP 驱动的编译,由于它是TI OMAP 系列CPU 专用的,在此包中缺少头文件,会引起编译错误。#make #make install 编译成功后在/usr/directfb 下会生成图形支持库的相关文件包。

  3 嵌入式远程桌面控制的实现

  3.1 Directvnc 及其功能框图

  Directvnc 应用VNC 服务器所使用的远程帧缓冲协议(RFB)。其协议消息分为3 个阶段:握手、初始化和协议交互。

  最初的握手阶段主要是对协议版本、像素数据的格式和编码类型进行协商。第二步对报文初始化,主要是本客户端和服务器端初始化消息。最后是正常的信息交互阶段,客户端发送请求,服务器端响应并送回结果。所有的消息都由一个消息类型字节和详细的消息数据组成。因此Directvnc 的运行流程大致可以分为登陆服务器,初始化连接,信息交互和退出4部分。如图2 所示。

  3.2 Directvnc 的移植

  DirectVNC系列的configure没考虑做移植的配置,所以有些依赖库的路径需要改正。比如libjpeg,它会默认使用系统/usr/lib 下的库。同理需要指定头文件:Xmd.hkeysymdef.hjpeglib.hjconfig.hjmorecfg.h,或者直接从系统中复制过来。当然也可以写一个用于交叉编译的Makefile。由于版本不同数据定义更新,需要注意的是dfb.c 文件的第33 行:DFBCard-Capabilities caps 应修改成DFBGraphicsDeviceDescription capsRFB 输入协议是基于键盘和多键鼠标设备的标准共站类型,输入事件也可以由其它非标准I/0 设备产生,由于本系统采用触摸屏输入实现控制,因此可以注释掉69-70 行:

  4 结语

  DirectFB 在嵌入式系统中的应用,充分利用了图像加速功能,减轻了CPU 的数据处理负担,提高了系统性能。随着其广泛的应用,嵌入式GUI 的性能也将得到提高。嵌入式远程桌面控制系统平台性能的优化方面有如下可行的改进方向:对硬件加速进行优化,即将加速模块从用户空间移到硬件的驱动中,GUI 中只需要用统一的接口调用硬件加速功能,同时在GUI 中添加对显卡芯片未提供的加速功能的软件实现,这样简化了GUI 维护,提高了系统的性能。对RFB 安全机制进行改进,即利用OpenSSL 密码算法函数库实现安全通信通道,或者在正常的协议交互中对输入输出数据进行算法简单高效的加密。

相关推荐

Ctrack选用u-blox GPS和蜂巢式模组开发车队管理解决方案

u-blox  嵌入式  Ctrack  2014-05-21

动作撷取追踪的嵌入式体感控制新技术

嵌入式  体感控制  2013-12-06

嵌入式系统的固件更新

嵌入式  Flash  RAM  缓冲区  2013-09-12

汽车电子向一体化集成、网络化与智能化发展

汽车电子  嵌入式  2013-05-23

东芝开发嵌入式SRAM低功耗技术智能手机

东芝  嵌入式  SRAM  2013-02-23

飞思卡尔基于ARM平台全系列MCU引领嵌入式应用新趋势

飞思卡尔  ARM  嵌入式  2013-01-29
在线研讨会
焦点