1. 概述

对于V4L2子设备,其核心就是去实现struct v4l2_subdev_ops子设备操作接口,下面就介绍V4L2操作函数接口用到的一些关键成员是什么意思。

2. struct v4l2_subdev结构体介绍

子设备,负责实现具体的功能。可将其抽象为具体的某一摄像头传感器,如OV7740OV7251OV5640OV13850等。

每一个子设备驱动都必须有一个 v4l2_subdev 结构体,这个结构体可以作为独立的简单子设备存在,也可以嵌入到更大的结构体(自定义的子设备结构体)里面。通常会有一个由内核设置的低层次结构体(i2c_client,也就是上面说的 i2c 设备),它包含了一些设备数据,要调用 v4l2_set_subdevdata 来设置子设备私有数据指针指向它,这样的话就可以很方便的从 subdev 找到相关的 I2C 设备数据(这个要编程实现的时候才能够了解它的用意)。另外也需要设置低级别结构的私有数据指针指向 v4l2_subdev 结构体,方便从低级别的结构体访问 v4l2_sub

Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.4 V4L2子设备操作函数结构体分析相关推荐

  1. Linux ARM平台开发系列讲解(IIO子系统) 2.8.1 IIO驱动开发分析

    1. 概述 工业场合里面也有大量的模拟量和数字量之间的转换,也就是我们常说的 ADC 和 DAC.而且随着手机.物联网.工业物联网和可穿戴设备的爆发,传感器的需求只持续增强.比如手机或者手环里面的加速 ...

  2. Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.5 V4L2 control的原理和实现

    1. 概述 既然涉及到视频输入,就会有很多与 ISP 相关的效果,比如对比度.饱和度.色温.白平衡等等,这些都是通用的.必须的控制项,并且大多数仅需要设置一个整数值即可.Linux 内核中V4L2已经 ...

  3. Linux ARM平台开发系列讲解(自旋锁) 3.3.1 Linux内核自旋锁描述

    1. 概述 原子操作只能对整形变量或者位进行保护,但是,在实际的使用环境中怎么可能只有整形变量或位这么简单的临界区.举个最简单的例子,设备结构体变量就不是整型变量,我们对于结构体中成员变量的操作也要保 ...

  4. Linux ARM平台开发系列讲解(GMSL摄像头篇)1.2 MAX9296 GMSL链路配置

    1. 概述 GMSL摄像头主要是由sensor + 串行器 +解串器组成,软件需要做的就是写这三部分的驱动,让摄像头数据能到达SOC内部处理,如下图是max9286和max96705的链路,其它同类型 ...

  5. Linux ARM平台开发系列讲解(GMSL摄像头篇)1.1 GMSL协议介绍

    1. 概述 Maxim集成公司发布了GMSL作为汽车行业视频应用程序的通信链接.GMSL基于SerDes( 串行器-解串器)技术,这意味着它在传输端使用序列化,在接收端使用反序列化.它是专门为高级驾驶 ...

  6. Linux ARM平台开发系列讲解(网络篇) 2.3 Marvell 88EA6321/88EA6320 Switch 设备树的配置分析

    1. 概述 交换机设备树主要是要配置它的端口数量,每个Port的物理模式(例如Mac to Phy).双工模式.连接速度.地址和与之连接的PHY地址等等,这一节就以88EA6321做例子解析一下DSA ...

  7. Linux ARM平台开发系列讲解(SPI与TTY实战) 2.6.1 SPI主设备驱动WK2124实战

    1. 概述 本次主要讲解wk2124 SPI转四路串口的驱动,比较新手而言难度过大,建议看完spi章节再看看后续uart章节,再来学习该驱动. 2. wk2124 驱动源码下载 本驱动只可以参考学习, ...

  8. Linux ARM平台开发系列讲解(入门篇) 1.1.3 开发板、Ubuntu和windows三者相互连接,无需路由器,全网最详细

    1 . 本次使用的是没有路由器的情况,采用网线让开发板和电脑直接相连,如果有路由器或者集线器的话尽量使用,不然直接相连有时候会出现奇奇怪怪的问题,下面就是我平时的配置环境.开发板网线直连电脑,然后电脑 ...

  9. Linux ARM平台开发系列讲解(TTY) 2.5.2 串口TTY子系统驱动源码分析

    1. TTY驱动流程 如下图,整个TTY驱动流程基本如下,后续会逐一分析,先记住这个框架. 2. TTY驱动流程分析 2.1 驱动入口和出口 2.1.1 函数接口用法分析 根据自己选择的驱动模型,调用 ...

  10. Linux ARM平台开发系列讲解(网络篇) 2.1 Marvell 88EA6321/6320 Switch 数据手册阅读之了解芯片功能

    1. 概述 注意:88EA6321/88EA6320 和 88E6321/88E6320软件上无区别,区别在于硬件外围电源上 Marvell 88EA6321/88EA6320设备是一个集成了7端口千 ...

最新文章

  1. LeetCode简单题之按键持续时间最长的键
  2. a和a数值大小 计算机,Java求s=a+aa+aaa+aaaa+aa...a的值
  3. 【转】OpenStack和Docker、ServerLess能不能决定云计算胜负吗?
  4. 房间计费系统改造——数据库设计
  5. python财务报表分析-用Python爬取东方财富网上市公司财务报表
  6. 重物码垛搬运机器人_搬运码垛机器人的特点及应用
  7. 背景图片hover加蒙层_用hover怎么将li的背景图片变透明,文字不变,是背景图片,不是img插入...
  8. arcgis插值不覆盖区划图_ArcGIS绘图—空气质量站点数据插值绘制等值线图
  9. java数组有跨类建立对象_Java性能优化的45个细节(珍藏版)
  10. 奖学金(信息学奥赛一本通-T1179)
  11. jq 和java 多张图片_jQuery多个事件触发相同的功能
  12. Super-palindrome 模拟+思维
  13. jquery on() 转
  14. 6. 生信技能树——TCGA癌症数据1
  15. B站三季度财报解读丨从0到2.67亿月活,B站生态亮眼的密钥何在?
  16. QQ揭秘:如何实现窗体靠边隐藏?【低调赠送:QQ高仿版GG 4.2 最新源码】
  17. HTTP 长连接短连接使用场景是什么
  18. 【《Real-Time Rendering 3rd》 提炼总结】(十一) 第十四章 : 游戏开发中的渲染加速算法总结
  19. php redis hset过期时间,详解Redis中数据过期策略
  20. 找女朋友【快速排序】

热门文章

  1. 小项目正确的操作姿势,碾压工薪阶层
  2. 关于车臣战争有什么电影?车臣战争片推荐
  3. ZLMediaKit流媒体服务器
  4. CocosCreator Shader Editor 2D/3D 特效编辑器
  5. 安装Home Assistant 历程+遇到的问题
  6. 恢复U盘分区:windows自带工具diskpart
  7. (转)如何使用Xcode的Targets来管理开发和生产版本的构建
  8. 【渝粤题库】陕西师范大学202013 民法专论 作业
  9. 【虚拟机\UBunTu】E45: 已设定选项 ‘readonly‘ (请加 ! 强制执行)
  10. RabbitMQ消息中间件快速入门