以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除。

一、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驱动框架分析相关推荐

  1. linux摄像头V4L2 subdev,linux 摄像头驱动 详解linux 摄像头驱动编写

    想了解详解linux 摄像头驱动编写的相关内容吗,feixiaoxing在本文为您仔细讲解linux 摄像头驱动的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:linux,摄像头驱动,下面 ...

  2. framebuffer驱动详解4——framebuffer驱动分析2(probe函数讲解)

    以下内容源于朱有鹏<物联网大讲堂>课程的学习,如有侵权,请告知删除. 主要在填充fbdev这个结构体. 二.framebuffer驱动分析2 1.probe函数分析 (1)struct s ...

  3. framebuffer驱动详解3——framebuffer驱动分析(driver和device的配套查找)

    以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除. 一.framebuffer驱动分析1 1.s3cfb.c (1)实现为平台总线,因为使用SoC内部的LCD控制器,属于内部外设,可以借用平台 ...

  4. framebuffer驱动详解0——framebuffer介绍

    以下内容源于朱有鹏<物联网大讲堂>课程的学习,如有侵权,请告知删除. (1)裸机中如何操作LCD?http://blog.csdn.net/oqqhutu12345678/article/ ...

  5. linux usb ga驱动详解,Linux设备驱动之内存映射

    1. 内存映射 所谓的内存映射就是把物理内存映射到进程的地址空间之内,这些应用程序就可以直接使用输入输出的地址空间,从而提高读写的效率.Linux提供了mmap()函数,用来映射物理内存. 在驱动程序 ...

  6. spi总线 上层调用_spi总线驱动详解

    spi总线驱动详解 spi总线驱动详解 Spi总线在实际应用得比较多,所以这篇为文章讲解以实际应用为主,bus总线类型细节不做讲解,感兴趣的读者可以分析源码,研究内核源码我觉得是一件非常有趣的事情,同 ...

  7. LCD的framebuffer驱动详解

    5.7.framebuffer驱动详解 5.7.1.framebuffer介绍 5.7.1.1.什么是framebuffer (1)裸机中如何操作LCD (2)OS下操作LCD的难点 显存就是一段内存 ...

  8. linux v4l2系统详解,Linux摄像头驱动学习之:(一)V4L2_框架分析

    这段时间开始搞安卓camera底层驱动了,把以前的的Linux视频驱动回顾一下,本篇主要概述一下vfl2(video for linux 2). 一. V4L2框架: video for linux ...

  9. LCD液晶屏驱动详解

    开发环境: 开发板:JZ2440V3 CPU:samsunS3C2440 内核:Linux3.4.2 编译工具:arm-linux-gcc 4.3.2 LCD:4.3存液晶屏AT043TN24 参考文 ...

最新文章

  1. Chrome 技术篇-F12开发者工具清理缓存,高级、专业清浏览器缓存,storage和cache都指什么、区别
  2. VC++ 自定义消息学习总结
  3. 不越狱无硬件,轻松搞定iPhone投影与录屏
  4. mysql caching_Spring Caching抽象和Google Guava Cache
  5. 【转载】从Docker容器漏洞谈Docker安全
  6. 50道编程小题目之【企业利润提成】
  7. 多表更新,用一个表更新另外一个表
  8. 【多图】Google工程师解析Android系统架构--what is android(转载)
  9. mysql安装包msi_【MySQL】MySQL之MySQL5.7安装包(msi文件)在Windows8下安装
  10. python图片爬虫,指定关键字爬取Google图片+搜狗图片
  11. CentOS 7查看源代码
  12. JAVA系列之JVM优化
  13. Qgis教程09:高程栅格数据
  14. whitelabel error page漏洞及解决
  15. 搭建文字转语音(TTS)服务器
  16. Altium Designer新手教程
  17. HTML+CSS+JQ实现图片轮播效果
  18. Apache之FCGI模式部署LAMP
  19. iOS设计模式之外观模式
  20. js 图片保存至手机相册

热门文章

  1. myeclipse2013 jad反编译插件安装
  2. PHP 结合 Boostrap 结合 js 实现学生列表删除编辑以及搜索功能(完结)
  3. [php] 高级教程
  4. dash 和 bash 切换
  5. 项目回顾-PopupWindow
  6. mysql在空闲8小时之后会断开连接(默认情况)
  7. MySQL于ON DUPLICATE KEY UPDATE采用
  8. hdu 3864 素数分解
  9. JavaScript Iframe富文本编辑器中的光标定位
  10. C++中的结构体函数