Chinaunix首页 | 论坛 | 博客
  • 博客访问: 162801
  • 博文数量: 47
  • 博客积分: 1032
  • 博客等级: 少尉
  • 技术积分: 759
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-19 15:47
文章分类
文章存档

2012年(26)

2011年(21)

分类: 嵌入式

2011-12-22 14:26:06

3.internals.txt

Framebuffer internal struct
     帧缓冲设备中用到的结构体
        

以下数据结构在帧缓冲设备使用,定义 :       

1). Outside the kernel (user space)


   - struct fb_fix_screeninfo

    帧缓冲设备中设备无关的常值数据信息。可以通过Ioctl的FBIOGET_FSCREENINFO获取。

   
- struct fb_var_screeninfo

    帧缓冲设备中设备无关的变量数据信息和特定的显示模式。可以通过iotcl的FBIOGET_VSCREENINFO

    获取,并通过ioctl的FBIOPUT_VSCREENINFO设定。还有FBIOPAN_DISPLAY可以用。

- struct fb_cmap

    设备无关的颜色表信息。你可以通过ioctl的FBIOGETCMAPFBIOPUTCMAP读取或设定。

   

2). Inside the kernel

  

- struct fb_info

    常规信息,API以及帧缓冲设备的底层信息(主板地址...).

- struct `par'

    唯一指定该设备的显示模式的设备相关信息。

- struct display

    帧缓冲设备和控制台驱动之间的接口。

常用的帧缓冲 API 

Monochrome (FB_VISUAL_MONO01 and FB_VISUAL_MONO10)

-------------------------------------------------

每个象素是黑或白。

Pseudo color (FB_VISUAL_PSEUDOCOLOR and FB_VISUAL_STATIC_PSEUDOCOLOR)
---------------------------------------------------------------------

索引颜色显示

True color (FB_VISUAL_TRUECOLOR)
--------------------------------

真彩显示,分成红绿兰三基色

Direct color (FB_VISUAL_DIRECTCOLOR)
------------------------------------

每个象素颜色也是有红绿蓝组成,不过每个颜色值是个索引,需要查表。

Grayscale displays
------------------

灰度显示,红绿蓝的值都一样


准备开始写我们自己的驱动之前,请详细阅读如下文件:

\Documentation\fb vesafb.txt,matroxfb.txt,sa1100fb.txt
\drivers\video    fbmem.c,fbgen.c,fbmon.c,fbcmap.c
                skeletonfb.c vesafb.c,sa1100fb.c,sa1100fb.h

include\linux     fb.h

最值得关注的是skeletonfb.c,该文件给出了一个framebuffer 设备驱动的框架

准备好了,就开始写自己的frambuffer device driver
阅读(1463) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~