新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 一种基于嵌入式Linux图形用户接口的实现

一种基于嵌入式Linux图形用户接口的实现

作者:时间:2010-02-03来源:网络收藏

2.1.3 GtkFB的工作原理

  DirectFB访问硬件设备依赖于操作系统提供的内核,即帧缓冲设备(FrameBuffer)。FrameBuffer实际上是用一块硬件来做显卡和软件之间的桥梁,的内核将其开放出来,使的程序可以通过块内存来存取显卡。例如设定显示分辨率和色彩数、存取显示内存区等。不同的需要提供针对不同显示硬件FrameBuffer的驱动程序,这就是说DirectFB需要运行于FramBuffer之上,然而内核提供了常见芯片的FrameBuffer驱动。

  当一个应用程序连接到GtkFB时会调用gtk_init(),如图3所示,此时GtkFB 启动Linux的Framebiffer,设定分辨率和色彩数,接下来打开键盘和鼠标等外设(PDA打开按键和触控屏幕).然后到特定目录去读取字型,最后对窗口和事件管理作初始化操作。GtkFB可以支持8、16、24、32bpp的framebuffer。

Gtk通过DirectFB访问FrameBufer设备和图形设备

  为了执行一个特定的操作,DirectFB芯片驱动程序将访问设备内存映射的I/O端口,并且把命令传递到图形设备卡的加速引擎。实际的硬件加速是完全在空间内完成的。

  2.2 SWT+GtkFB图形系统的优点

  2.2.1 内存消耗小、运行速度快特别适合产品

  由于GtkFB直接运行在FrameBufer之上,跳过X系统,这样省下了X Server这一部分资源,这使得在内存消耗、运行速度上得到显著提高。另外采用的JNI技术使得程序运行速度、事件的响应有较高的提高,能满足时间要求较为严格的实时应用场合。

  2.2.2 系统稳定性好

  SWT 的稳定性,关键是源于SWT 的设计理念。SWT最大化了操作系统的图形构件API,就是说只要操作系统提供了相应图形的构件,那么SWT只是应用JNI技术调用它们,只有那些操作系统中不提供的构件,SWT才自己去做一个模拟的。可以看出SWT性能上的稳定很大程度上取决于相应操作系统图形构件的稳定性。

  2.2.3 易于移植和共享

  SWT的API和桌面版完全相同,因而代码可以很容易地在桌面和设备之间移植与共享。

  2.2.4 小巧可配置

  SWT采用了LGPL授权方式,可以自由地甚至是鼓励修改源代码使其更加满足用户的需求,很容易根据用户的需求来裁减特定的SWT+GtkFB,依据LGPL许可证,用户需要公布修改的源代码,但用户不必公布自给应用程序的源代码。

  2.2.5 易于开发

  SWT是Java语言开发的,具有平台独立性、面向对象、可移植、安全等Java语言所拥有特点。用户可以很容易的SWT提供的Widget(构件)开发出满足自己需要的Widget,而且很容易地使用这些Widget去构建应用程序。

  3 SWT+GtkFB图形系统的

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭