framebuffer驱动详解3——framebuffer驱动框架分析
来源:互联网 发布:centos lnmp安装包 编辑:程序博客网 时间:2024/05/23 13:24
以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。
一、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驱动详解3——framebuffer驱动框架分析
- framebuffer驱动详解4——framebuffer驱动分析2(probe函数讲解)
- framebuffer驱动详解1——framebuffer介绍
- framebuffer驱动详解4——framebuffer驱动分析1(driver和device的配套查找)
- framebuffer的驱动框架
- framebuffer驱动分析
- framebuffer驱动分析
- framebuffer驱动分析
- framebuffer驱动分析
- Framebuffer驱动
- framebuffer 驱动
- framebuffer驱动
- framebuffer 驱动
- framebuffer驱动
- framebuffer驱动
- Linux中Framebuffer驱动详解3
- Linux Framebuffer驱动框架剖析之一—软件需求
- framebuffer驱动框架代码解析
- Python中用format函数格式化字符串的用法
- jQuery获取选中的复选框
- java堆、栈、方法区、常量池
- Kafka(0.10.0.1)--配置Zookeeper和单节点多brokers
- fetch使用整理
- framebuffer驱动详解3——framebuffer驱动框架分析
- jstl 格式化日期
- VTK生成球并将其导出为obj三维格式,可在Meshlab中提取三维点云
- java并发编程(三)--java中的锁(Lock接口和队列同步器AQS)
- QString的常用方法
- nginx反向代理三台web服务器,实现负载均衡
- 使用 GPUs
- Mac开发学习笔记之label使用超链接
- LVM---Linux