![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
内核驱动
文章平均质量分 85
苏格拉没有底S
这个作者很懒,什么都没留下…
展开
-
Linux V4L2子系统——videobuf2
Video设备产生的数据较多,传统的缓冲机制已不能满足需求。为此,Linux内核抽象出了videobuf2机制,用于管理存放视频图像的帧缓冲。videobuf2抽象层像一座桥梁,将用户空间和V4L2 driver连接起来。videobuf2抽象层向用户空间提供了标准POSIX I/O系统调用,包括read、poll及mmap等,同时还提供了大量与流式I/O相关的V4L2 ioctl调用,包括缓冲区分配、缓冲区入队、缓冲区出队及流控制。原创 2023-12-02 23:54:55 · 102 阅读 · 0 评论 -
Linux V4L2子系统——v4l2_device
V4L2主设备实例使用struct v4l2_device结构体表示,v4l2_device是V4L2子系统的入口,管理着V4L2子系统的主设备和从设备。简单设备可以仅分配这个结构体,但在大多数情况下,都会将这个结构体嵌入到一个更大的结构体中。原创 2023-12-02 21:41:13 · 100 阅读 · 0 评论 -
Linux V4L2子系统——video_device
在V4L2子系统中,Video设备是一个字符设备,设备节点为/dev/videoX,主设备号为81,次设备号范围为0-63。在用户空间,应用可以通过open/close/ioctl/mmap/read/write系统调用操作Video设备。原创 2023-12-02 17:20:39 · 347 阅读 · 0 评论 -
Linux V4L2子系统——v4l2_subdev
对于摄像机来说,常用的子设备是:传感器和摄像机控制器。这些设备通常是I2C设备(大多数)。为了给驱动程序提供与这些子设备一致的接口,故创建了v4l2_subdev结构(定义在v4l2-subdev.h文件中)。在子设备驱动程序中必须包含一个v4l2_subdev结构。对于简单的子设备驱动程序,可以直接使用struct v4l2_subdev进行描述。原创 2023-11-30 23:26:41 · 453 阅读 · 0 评论 -
Linux V4L2子系统——结构体
内核版本:4.1.15v4l2结构体之video_device介绍在V4L2子系统中,Video设备是一个字符设备,设备节点为/dev/videoX,主设备号为81,次设备号范围为0-63。video设备使用struct video_device结构体表示。设备的操作方法是fops和ioctl_ops函数指针集合。fops是文件操作方法,实现常见的open、read、write方法,ioctl_ops实现应用层的ioctl函数,功能较多。使用video_register_device注册该结构原创 2023-11-30 18:11:58 · 203 阅读 · 0 评论 -
Linux camera框架分析
本文内核版本为4.1.15本文介绍的是内核自带的vivid代码,分析Linux camera框架,是Linux内核中的基于V4L2的video驱动。原创 2023-11-29 00:24:44 · 157 阅读 · 1 评论 -
LCD驱动(Framebuffer)
在Linux设备中,LCD显示采用了帧缓冲(framebuffer)技术,LCD驱动也被称为Framebuffer驱动。Framebuffer机制模仿显卡的功能,将显卡硬件结构抽象出来,可以通过对Framebuffer的读写来实现对显存进行操作。用户可以将framebuffer看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行映射的进程地址空间进行读写操作,而写操作可以立即反应在屏幕上。用户不需要关心物理显存的位置、换页机制等等具体细节。这些都是由framebuffer设备驱动来完成的。原创 2023-11-13 23:15:05 · 265 阅读 · 0 评论 -
I2C驱动
本文分析Linux内核为4.1.15。原创 2023-11-11 00:45:22 · 50 阅读 · 1 评论