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

时间: 2024-08-10 09:03:37

Linux驱动框架之framebuffer驱动框架的相关文章

linux驱动开发之framebuffer驱动介绍

framebuffer是linux里面的显示设备.在驱动底下如何操作lcd实现图形的显示. 1.什么是framebuffer? (1)首先想一下在裸机中我们是怎么操作LCD的. Soc内部有lcd的控制器,Soc外面有lcd的驱动器,lcd的驱动器连接着lcd的屏幕,Soc的内部还有CPU,外部还有DDR内存.这些设备都参与到了lcd的显示中. 在裸机中我们是怎么搞的呢,lcd的驱动器和lcd的控制器之间通过排线进行链接,连接的接口就是lcd所特有的一个接口.lcd控制器里面是很多和lcd相关的

【原创】Linux环境的图形系统和AMD显卡驱动编程(2)——Framebuffer、DRM、EXA和Mesa简介

1. Framebuffer Framebuffer驱动提供基本的显示,framebuffer驱动操作的硬件就是一个显示控制器和帧缓存(一片位于系统主存或者显卡显存).Framebuffer驱动向应用程序提供/dev/fbx的设备接口,应用程序通过读写这个设备节点实现对显示控制器和帧缓存. 下面这个程序显示了应用程序操作操作framebuffer节点的过程.运行这个程序,将在屏幕上方显示一个正方形(这里省略了错误检查代码). 1 #include <stdio.h> 2 #include &l

Linux Framebuffer 驱动框架之一概念介绍及LCD硬件原理【转】

本文转载自:http://blog.csdn.net/liuxd3000/article/details/17464779 一.基本概念 帧缓冲(Framebuffer)是Linux系统为显示设备提供的一个接口,它将显示缓冲区抽象,屏蔽图像硬件的底层差异,允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作.用户不必关心物理显示缓冲区的具体位置及存放方式,这些都是由帧缓冲设备驱动本身来完成.对于帧缓冲设备而言,只要在显示缓冲区与显示点对应的区域写入颜色值,对应的颜色会自动在屏幕上显示,下一小

Linux Framebuffer驱动框架之二软件架构(未完待续)【转】

本文转载自:http://blog.csdn.net/gqb_driver/article/details/12918547 /************************************************************************************************************************************/ 原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb66

5.7.5.framebuffer驱动框架总览

参考http://www.cnblogs.com/EaIE099/p/5175979.html 本节对内核的framebuffer驱动框架做整体介绍,各部分涉及哪些文件,每个文件是谁写的,具体功能是什么,详细的代码分析在后面. 5.7.5.1.驱动框架部分 (1)drivers/video/fbmem.c.主要任务:1.创建graphics类.注册FB的字符设备驱动.提供register_framebuffer接口给具体framebuffer驱动编写着来注册fb设备的.本文件相对于fb来说,地位

5.7.6.framebuffer驱动框架分析1

http://www.mamicode.com/info-detail-1209620.html 5.7.6.1.fbmem_init函数[driver/video/fbmem.c] (1)#ifdef MODULE (2)fb_proc_fops和fb在proc文件系统中的表现 (3)register_chrdev注册fb设备 (4)class_create创建graphics类 (5)fbmem_exit的对应 初始化framebuffer:framebuffer驱动是以模块的形式注册到系统

linux驱动probe函数的实现框架思考

linux驱动probe函数的实现框架思考 .probe函数实现无非就是1)创建一个私有的driver_data用于区分不同的device,因为一个driver可以管理多个device,2)parse device tree,并根据配置申请资源.io resource.memory:3)初始化设备4)注册对应的子系统暴露对应的接口,子系统相关的底层函数需要你实现,实现/dev/设备的file_operation.sysfs.proc接口.:5)dev_set_drvdata 绑定私有结构和设备的

友坚4412开发板基于Timed_out框架的GPIO驱动分析

Timed GPIO驱动程序分析 Timed GPIO驱动程序是android系统基于linux内核新增加的一类驱动程序,这类驱动程序主要是运用了内核定时器,与内核定时器进行绑定,使得控制GPIO口的高低电平与时间打上关系,既可以实现在一定的时间实现GPIO口为高或者低电平.Timed GPIO驱动被实现为平台设备驱动,Timed GPIO驱动源码位于如下目录:\kernel\drivers\staging\android Timed GPIO驱动程序主要包括如下几个文件: Timed_gpio

Framebuffer 驱动学习总结(二)---- Framebuffer模块初始化

---恢复内容开始--- Framebuffer模块初始化过程:--driver\video\fbmem.c 1.  初始化Framebuffer: FrameBuffer驱动是以模块的形式注册到系统中,在模块初始化时,创建FrameBuffer对应的设备文件及proc文件,并注册FrameBuffer设备操作接口函数fb_fops. static int __init fbmem_init(void) { proc_create("fb", 0, NULL, &fb_proc