首页| 论坛| 消息

标题:嵌入式 Linux 系统图形及图形用户界面综述
作者:keisuo
日期:2007-05-29 11:30
内容:

版权所有,2001,魏永明(ymwei@minigui.org)。
声明:任何人可以以任何方式复制、修改,发布或者转贴这篇文章的部分或全部内容,前提是完整保留这一版权声明。如果要修改本文或者作为其他可发布稿件的部分,请通过电子邮件通知原作者。当然,如果发现其中的任何错误,也请告诉原作者,以便修改更新。
本文首先概述了 Linux 图形领域的基本设施,然后描述了一些可供嵌入式 Linux 系统使用的高级图形库以及图形用户界面支持系统。希望对嵌入式 Linux 系统的开发有所帮助。

1  Linux 图形领域的基础设施
本小节首先向读者描述 Linux 图形领域中常见的基础设施。之所以称为基础设施,是因为这些系统(或者函数库),一般作为其他高级图形或者图形应用程序的基本函数库。这些系统(或者函数库)包括:X Window、SVGALib、FrameBuffer 等等。
1.1 X Window
提起 Linux 上的图形,许多人首先想到的是 X Window。这一系统是目前类 UNIX 系统中处于控制地位的桌面图形系统。无疑,X Window 作为一个图形环境是成功的,它上面运行着包括 CAD建模工具和办公套件在内的大量应用程序。但必须看到的是,由于 X Window 在体系接口上的原因,限制了其对游戏、多媒体的支持能力。用户在 X Window 上运行 VCD 播放器,或者运行一些大型的三维游戏时,经常会发现同样的硬件配置,却不能获得和 Windows 操作系统一样的图形效果――即使使用了加速的 X Server,其效果也不能令人满意。另外,大型的应用程序(比如 Mozilla 浏览器)在 X Window 上运行时的响应能力,也相当不能令人满意。当然,这里有 Linux 内核在进程调度上的问题,也有 X Window 的原因。
X Window 为了满足对游戏、多媒体等应用对图形加速能力的要求,提供了 DGA(直接图形访问)扩展,通过该扩展,应用程序可以在全屏模式下直接访问显示卡的帧缓冲区,并能够提供对某些加速功能的支持。
1.2  SVGALib
SVGALib 是 Linux 系统中最早出现的非 X 图形支持库。这个库从最初对标准 VGA 兼容芯片的支持开始,一直发展到对老式 SVGA 芯片的支持以及对现今流行的高级视频芯片的支持。它为用户提供了在控制台上进行图形编程的接口,使用户可以在 PC 兼容系统上方便地获得图形支持。但该系统有如下不足:
1)接口杂乱。SVGALib 从最初的 vgalib 发展而来,保留了老系统的许多接口,而这些接口却不能良好地迎合新显示芯片的图形能力。
2)未能较好地隐藏硬件细节。许多操作, ..


#1 [keisuo 05-29 11:33]
S3C2410下LCD驱动程序移植及GUI程序编写 write by llg S3C2410下LCD驱动程序移植 及GUI程序编写 Write by llg 著作权所有:刘利国 如转载请告知作者 laoliu@laoliu-soft.net并注明出处 www.laoliu-soft.net 1. 为了不让大家觉枯燥,让朋友们更好的理解,我以一个实例来叙述S3C2410下一个驱动程序的编写(本文的初始化源码以华恒公司提供的 s3c2410fb.c 为基础)及简单的 GUI程序的编写。 2. 拿到一块LCD,首先要将LCD的各个控制线与S3C2410的LCD控制信号相接,当然,电源也一定要接入了,否则不亮可别找我。另外需要注意以下几点: 1) 背光:对于大部分的彩色LCD一定要接背光,我们才能看到屏上的内容; 2) 控制信号:不同的 LCD 厂商对于控制信号有不同的叫法,S3C2410 芯片手册也给出了一个信号的多个名称(图一),这就要看你们硬件工程师的功底了, 图一 S3C2410手册上给出的控制信号的名称及解释这里我做一个简单的介绍: ? VFRAME:LCD 控制器和 LCD 驱动器之间的帧同步信号。该信号告诉 LCD屏的新的一帧开始了。LCD 控制器在一个完整帧显示完成后立即插入一个VFRAME信号,开始新一帧的显示; ? VLINE:LCD控制器和LCD驱动器之间的线同步脉冲信号,该信号用于LCD驱动器将水平线(行)移位寄存器的内容传送给LCD屏显示。LCD控制器在整个水平线(整行)数据移入LCD驱动器后,插入一个VLINE信号; ? VCLK:LCD控制器和LCD驱动器之间的像素时钟信号,由LCD控制器送出的数据在VCLK的上升沿处送出,在VCLK的下降沿处被LCD驱动器采样; ? VM:LCD驱动器的AC信号。VM信号被LCD驱动器用于改变行和列的电压极性,从而控制像素点的显示或熄灭。VM信号可以与每个帧同步,也可以与可变数量的VLINE信号同步。 3) 数据线:也就是我们说的 RGB 信号线,S3C2410 芯片手册上都有详细的说明,由于篇幅关系,在此不一一摘录,不过需要与硬件工程是配合的是他采用了哪种接线方法,24位16位或其它。对于16位TFT屏又有两种方式,在写驱动前你要清楚 - 1 -S3C2410下LCD驱动程序移植及GUI程序编写 &n ..
#2 [wangrunmin 07-20 10:05]

回复 发表
主题 版块