首页 > 代码库 > Linux驱动框架之framebuffer驱动框架

Linux驱动框架之framebuffer驱动框架

1、什么是framebuffer?

(1)framebuffer帧缓冲(一屏幕数据)(简称fb)是linux内核中虚拟出的一个设备,framebuffer向应用层提供一个统一标准接口的显示设备。帧缓冲(framebuffer)

是Linux为显示设备提供的一个接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。这种操作是抽象的,统一的。用

户不必关心物理显存的位置、换页机制等等具体细节。这些都是由Framebuffer设备驱动来完成的。

(2)从驱动来看,fb是一个典型的字符设备,而且创建了一个类/sys/class/graphics

(3)framebuffer的使用

   1):打开framebuffer设备文件: /dev/fb0

   2):获取framebuffer设备信息 #include <linux/fb.h>

   3):mmap做映射

   4):填充framebuffer

 

2、framebuffer驱动框架的初始化函数:fbmem_init

framebuffer驱动框架部分的代码与前面说的misc驱动框架和led驱动框架一样,都是实现为一个模块的形式,可以在内核配置的时候进行动态的加载和卸载,模块的好处之前已经说过。

fbmem_init函数代码分析:

技术分享

 

 

3、驱动框架留给驱动工程师的接口:register_framebuffer  (unregister_framebuffer)

驱动框架代码是不涉及到具体的硬件操作的,主要是软件逻辑,提供服务性的代码。驱动工程师需要调用驱动框架提供的接口函数来向驱动框架注册驱动、设备。

(1)一个重要的结构体:struct  fb_info

 

Linux驱动框架之framebuffer驱动框架