v4l2设备读写流程(CSI驱动调用流程)

这里写图片描述
1、open
初始化传感器模块和CIS,使能CSI的时钟
Initial Sensor Module and CSI I/F ,enable the csi clock
2、VIDIOC_QUERYCAP
得到设备的容量
See the drivers capability
3、VIDIOC_S_FMT
获取和设置CSI I/F的格式和传感器模式
Try and Set format to CSI I/F and Sensor Module
4、VIDIOC_REQBUFS
申请视频捕获缓冲区
Request buffers for video capture
5、VIDIOC_QUERYBUF
返回mmap映射队列缓冲区的索引,大小,格式和偏移信息
Query buffer by index,return size,format and offset for mmap
6、VIDIOC_STREAMON
开启捕获,使能中断,开启队列缓冲区
Start capturing and enable irq;queue all the buffers

以上完成接收数据帧的前期准备工作,
下面开始循环接收处理图像帧
7、Poll and wait
等待一帧完成
Wait a frame to be done
8、VIDIOC_DQBUF
从内核缓冲区队列中删除一帧并发送到用户空间。
Delete a frame from the frame buffer list and send it to user
9、APP Processing
用户来处理这一帧的数据
User is processing the frame
10、VIDIOC_QBUF
从设备中获取一帧数据到内核缓冲区队列

以上循环进行,完成CSI设备数据到内核空间,然后映射到用户空间的过程。

11、VIDIOC_STEAMOFF
停止捕获,关闭中断,释放内核缓冲区队列
12、MUNMAP
解除内核缓冲区到用户缓冲区的映射
Memory unmap
13、CLOSE
关闭CSI设备
Disable the csi clock

猜你喜欢

转载自blog.csdn.net/su1041168096/article/details/79397136