- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
s5pc100camera驱动分析
刘海涛
2013-1-10
S5pc100_camera 驱动分析
一、与Vedio for linux 2 衔接
在分析这个驱动的时候,我们的主线是根据video for linux 2 架构的文件处理集合来分析。
V4l2_file_operations 的名字和字符设备中的file_opertaions 是类似,他们的功能也很类似。
1、Mmap 函数
Mmap 函数是v4l2_file_operations 结构的一个成员,这个函数对应于应用层的mmap 函数。
用户程序通过调用系统调用mmap 来实现映射设备内存到用户空间中,(在当前的进程中),
是一个虚拟地址。关于mmap 函数的API 在linux 下可以看man 手册。同时对应官方的API ,
侧重于驱动。网址:/downloads/v4l-dvb-apis/func-mmap.html
#include unistd.h
#include sys/mman.h
void *mmap (
void *start,
size_t length,
int prot ,
intflags ,
intfd ,
off_t offset);
具体的可以去上面的网站去查询各个参数的详细的意义。
2
在mmap 这个函数的官方网站API 中可以得到,必须判断prot 必须声明为可读和可写。
上面的主要的调用就是 io_remap_pfn_range()这个函数,通过跟踪这个函数在内核中的调用
连,这个函数最终调用了内核内存管理模块中一个 remap_pfn_range()这个函数的作用就是
映射内核内存到用户空间。这个函数在(mm/memory.c)中定义。
2、open、close 函数
当然了,最主要的初始化还是要在proe 匹配函数中来完成的。Clsoe 函数就是做相反的操作。
3、ioctl 函数
Ioctl 函数是video for linux 2 中最主要的函数,基本所有的功能都在这里。
3
这个函数的功能:
1、取得设备描述信息。这个描述集合是我们自己定义的。
2、加锁,实现互斥
3、根据上层传递的命令来调用不同的处理函数。
4 、解锁。
S5pc100_ioctl_v4l2()看它的名字,带一个v4l2 ,这就可以说明了这个函数的处理和v4l2 是相
关的。到底有什么关系,我们来分析一下这个函数。
这个函数是switch case 结构的一个典型的处理函数。接下来我们就跟着s5pc100_ioctl_v4l2
来分析每一个处理函数。
4
3.1 VIDIOC_QUERYCAP
API: /downloads/v4l-dvb-apis/vidioc-querycap.html
先看一下这个函数的API ,看看应用层是如何调用的,是用来干什么的,这样我们才能知道
在驱动中我们该做些什么,该实现什么功能。
int ioctl(intfd , int request, struct v4l2_capability *argp);
功能:查询设备的性能。
描述:这个函数用来确定设备具有什么功能,比如是否有视频输出功能。就是了解驱动和硬
件的相关信息。
这个函数上层处理函数都回调用。相关的参数详细的介绍请看官网的详细信息。网址在上面。
下面是在s5pc100_camera.c 驱动中的关于这个函数的实现。
这个函数的功能就是填充描述设备性能的结构体。Struct v4l2_capability 。
Driver :驱动的名称 driver
Card:设备的名称 device
Bus_info: device 在系统中的位置。
Version :驱动的版本号
Capabilities:设备提供的功能。是一系列的宏。
V4L2_CAP_STREAMING表示设备支持I/O 流(Steaming I/O )(Memory Mapping
您可能关注的文档
- protel信息单元 1 原理图库操作(OK).pdf
- protel信息单元4 PCB库操作(OK).pdf
- PRT-5000通用采集器用户手册V1.0.pdf
- PSET系列电子式互感器说明书_20080514(DW型).pdf
- Protel_DXP中_学好DXP_DXP2004_教材_教程.pdf
- PROTEUS学习教程.pdf
- PSM1700 相位增益分析仪讲解分析.pdf
- PS2操作手册.pdf
- PSM水浴灭菌器使用说明书-操作手册.pdf
- psoc creat教程.pdf
- 北师大版六年级下册数学第四单元 正比例和反比例 测试卷精品(b卷).doc
- 2024年考研(历史)模拟题含答案(综合卷).docx
- 2024年人教版六年级下册数学期末测试卷(全优).doc
- 北师大版六年级下册数学第一单元 圆柱和圆锥 测试卷附答案【预热题】.doc
- 人教版五年级下册数学期中测试卷含答案(综合卷).doc
- (新)急救相关知识考试题库附完整答案(各地真题).docx
- 2024年行政管理、人事管理等管理人员综合技能知识考试题库必考题.docx
- 2024年食品安全法管理知识试题库【培优a卷】.docx
- 2024年人教版四年级下册数学期中测试卷及答案(各地真题).doc
- 2024年苏教版六年级下册数学期末测试卷(培优b卷).doc
文档评论(0)