framebuffer驱动详解2——framebuffer驱动框架分析
以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除。
一、framebuffer驱动框架总览
1、驱动框架部分
(1)drivers/video/fbmem.c(主要的文件)
- 创建graphics类,注册FB的字符设备驱动,提供register_framebuffer接口(给具体framebuffer驱动编写者来注册fb设备);
- 本文件相对于fb来说,地位作用和misc.c文件相对于杂散类设备来说一样的,结构和分析方法也是类似的。
(2)drivers/video/fbsys.c
- 这个文件是处理fb在/sys目录下的一些属性文件的。
(3)drivers/video/modedb.c
- 这个文件是管理显示模式(譬如VGA、720P等就是显示模式)的。
(4)drivers/video/fb_notify.c
(5)驱动框架不涉及具体的硬件操作(寄存器级的操作)
2、驱动部分
(1)drivers/video/samsung/s3cfb.c,驱动主体;
(2)drivers/video/samsung/s3cfb_fimd6x.c,里面有很多LCD硬件操作的函数;
(3)arch/arm/mach-s5pv210/mach-x210.c,负责提供platform_device的;
(4)arch/arm/plat-s5p/devs.c,为platform_device提供一些硬件描述信息的;
3、如何分析
(1)经验
(2)分析menuconfig、Makefile、Kconfig等
(3)内核编译后检查编译结果中的.o文件
六、framebuffer驱动框架分析1
1、fbmem_init函数
(1)#ifdef MODULE这里没有定义,因此这里直接集成在内核中,因此是subsys_initiall;
- 由于是直接集成的,因此不需要卸载,也就是说这个函数,对应于#ifdef MODULE这种情形
(2)fb_proc_fops和fb在proc文件系统中的表现,即cat /proc/fb的实现;
(3)register_chrdev注册fb设备;
(4)class_create创建graphics类;
(5)fbmem_exit的对应;
2、fb_fops
(1)read/write/mmap/ioctl
(2)registered_fb和num_registered_fb
(3)struct fb_info
七、framebuffer驱动框架分析2
1、register_framebuffer
(1)fb驱动框架开放给驱动编写者的注册接口
(2)fb_check_foreignness:判断大小端模式的
(3)remove_conflicting_framebuffers:去掉冲突的fb
(4)device_create
(5)fb_init_device
2、fb在sysfs中的接口:fb_init_device
(1)device_attrs
(2)dev_set_drvdata和dev_get_drvdata
八、framebuffer驱动框架分析3
1、fb的mode
(1)什么是mode
(2)fb_var_to_videomode
(3)fb_add_videomode
2、注册登记该fb设备
(1)registered_fb[i] = fb_info;
(2)结合fb_read等函数中对fb_info的使用
(3)关键点:数据如何封装、数据由谁准备由谁消费、数据如何传递
3、fb_notifier_call_chain
framebuffer驱动详解2——framebuffer驱动框架分析相关推荐
- linux摄像头V4L2 subdev,linux 摄像头驱动 详解linux 摄像头驱动编写
想了解详解linux 摄像头驱动编写的相关内容吗,feixiaoxing在本文为您仔细讲解linux 摄像头驱动的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:linux,摄像头驱动,下面 ...
- framebuffer驱动详解4——framebuffer驱动分析2(probe函数讲解)
以下内容源于朱有鹏<物联网大讲堂>课程的学习,如有侵权,请告知删除. 主要在填充fbdev这个结构体. 二.framebuffer驱动分析2 1.probe函数分析 (1)struct s ...
- framebuffer驱动详解3——framebuffer驱动分析(driver和device的配套查找)
以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除. 一.framebuffer驱动分析1 1.s3cfb.c (1)实现为平台总线,因为使用SoC内部的LCD控制器,属于内部外设,可以借用平台 ...
- framebuffer驱动详解0——framebuffer介绍
以下内容源于朱有鹏<物联网大讲堂>课程的学习,如有侵权,请告知删除. (1)裸机中如何操作LCD?http://blog.csdn.net/oqqhutu12345678/article/ ...
- linux usb ga驱动详解,Linux设备驱动之内存映射
1. 内存映射 所谓的内存映射就是把物理内存映射到进程的地址空间之内,这些应用程序就可以直接使用输入输出的地址空间,从而提高读写的效率.Linux提供了mmap()函数,用来映射物理内存. 在驱动程序 ...
- spi总线 上层调用_spi总线驱动详解
spi总线驱动详解 spi总线驱动详解 Spi总线在实际应用得比较多,所以这篇为文章讲解以实际应用为主,bus总线类型细节不做讲解,感兴趣的读者可以分析源码,研究内核源码我觉得是一件非常有趣的事情,同 ...
- LCD的framebuffer驱动详解
5.7.framebuffer驱动详解 5.7.1.framebuffer介绍 5.7.1.1.什么是framebuffer (1)裸机中如何操作LCD (2)OS下操作LCD的难点 显存就是一段内存 ...
- linux v4l2系统详解,Linux摄像头驱动学习之:(一)V4L2_框架分析
这段时间开始搞安卓camera底层驱动了,把以前的的Linux视频驱动回顾一下,本篇主要概述一下vfl2(video for linux 2). 一. V4L2框架: video for linux ...
- LCD液晶屏驱动详解
开发环境: 开发板:JZ2440V3 CPU:samsunS3C2440 内核:Linux3.4.2 编译工具:arm-linux-gcc 4.3.2 LCD:4.3存液晶屏AT043TN24 参考文 ...
最新文章
- Chrome 技术篇-F12开发者工具清理缓存,高级、专业清浏览器缓存,storage和cache都指什么、区别
- VC++ 自定义消息学习总结
- 不越狱无硬件,轻松搞定iPhone投影与录屏
- mysql caching_Spring Caching抽象和Google Guava Cache
- 【转载】从Docker容器漏洞谈Docker安全
- 50道编程小题目之【企业利润提成】
- 多表更新,用一个表更新另外一个表
- 【多图】Google工程师解析Android系统架构--what is android(转载)
- mysql安装包msi_【MySQL】MySQL之MySQL5.7安装包(msi文件)在Windows8下安装
- python图片爬虫,指定关键字爬取Google图片+搜狗图片
- CentOS 7查看源代码
- JAVA系列之JVM优化
- Qgis教程09:高程栅格数据
- whitelabel error page漏洞及解决
- 搭建文字转语音(TTS)服务器
- Altium Designer新手教程
- HTML+CSS+JQ实现图片轮播效果
- Apache之FCGI模式部署LAMP
- iOS设计模式之外观模式
- js 图片保存至手机相册