Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.4 V4L2子设备操作函数结构体分析
1. 概述
对于V4L2
子设备,其核心就是去实现struct v4l2_subdev_ops
子设备操作接口,下面就介绍V4L2
操作函数接口用到的一些关键成员是什么意思。
2. struct v4l2_subdev结构体介绍
子设备,负责实现具体的功能。可将其抽象为具体的某一摄像头传感器,如OV7740
、OV7251
、OV5640
和OV13850
等。
每一个子设备驱动都必须有一个 v4l2_subdev
结构体,这个结构体可以作为独立的简单子设备存在,也可以嵌入到更大的结构体(自定义的子设备结构体)里面。通常会有一个由内核设置的低层次结构体(i2c_client
,也就是上面说的 i2c
设备),它包含了一些设备数据,要调用 v4l2_set_subdevdata
来设置子设备私有数据指针指向它,这样的话就可以很方便的从 subdev
找到相关的 I2C
设备数据(这个要编程实现的时候才能够了解它的用意)。另外也需要设置低级别结构的私有数据指针指向 v4l2_subdev
结构体,方便从低级别的结构体访问 v4l2_sub
Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.4 V4L2子设备操作函数结构体分析相关推荐
- Linux ARM平台开发系列讲解(IIO子系统) 2.8.1 IIO驱动开发分析
1. 概述 工业场合里面也有大量的模拟量和数字量之间的转换,也就是我们常说的 ADC 和 DAC.而且随着手机.物联网.工业物联网和可穿戴设备的爆发,传感器的需求只持续增强.比如手机或者手环里面的加速 ...
- Linux ARM平台开发系列讲解(摄像头V4L2子系统) 2.12.5 V4L2 control的原理和实现
1. 概述 既然涉及到视频输入,就会有很多与 ISP 相关的效果,比如对比度.饱和度.色温.白平衡等等,这些都是通用的.必须的控制项,并且大多数仅需要设置一个整数值即可.Linux 内核中V4L2已经 ...
- Linux ARM平台开发系列讲解(自旋锁) 3.3.1 Linux内核自旋锁描述
1. 概述 原子操作只能对整形变量或者位进行保护,但是,在实际的使用环境中怎么可能只有整形变量或位这么简单的临界区.举个最简单的例子,设备结构体变量就不是整型变量,我们对于结构体中成员变量的操作也要保 ...
- Linux ARM平台开发系列讲解(GMSL摄像头篇)1.2 MAX9296 GMSL链路配置
1. 概述 GMSL摄像头主要是由sensor + 串行器 +解串器组成,软件需要做的就是写这三部分的驱动,让摄像头数据能到达SOC内部处理,如下图是max9286和max96705的链路,其它同类型 ...
- Linux ARM平台开发系列讲解(GMSL摄像头篇)1.1 GMSL协议介绍
1. 概述 Maxim集成公司发布了GMSL作为汽车行业视频应用程序的通信链接.GMSL基于SerDes( 串行器-解串器)技术,这意味着它在传输端使用序列化,在接收端使用反序列化.它是专门为高级驾驶 ...
- Linux ARM平台开发系列讲解(网络篇) 2.3 Marvell 88EA6321/88EA6320 Switch 设备树的配置分析
1. 概述 交换机设备树主要是要配置它的端口数量,每个Port的物理模式(例如Mac to Phy).双工模式.连接速度.地址和与之连接的PHY地址等等,这一节就以88EA6321做例子解析一下DSA ...
- Linux ARM平台开发系列讲解(SPI与TTY实战) 2.6.1 SPI主设备驱动WK2124实战
1. 概述 本次主要讲解wk2124 SPI转四路串口的驱动,比较新手而言难度过大,建议看完spi章节再看看后续uart章节,再来学习该驱动. 2. wk2124 驱动源码下载 本驱动只可以参考学习, ...
- Linux ARM平台开发系列讲解(入门篇) 1.1.3 开发板、Ubuntu和windows三者相互连接,无需路由器,全网最详细
1 . 本次使用的是没有路由器的情况,采用网线让开发板和电脑直接相连,如果有路由器或者集线器的话尽量使用,不然直接相连有时候会出现奇奇怪怪的问题,下面就是我平时的配置环境.开发板网线直连电脑,然后电脑 ...
- Linux ARM平台开发系列讲解(TTY) 2.5.2 串口TTY子系统驱动源码分析
1. TTY驱动流程 如下图,整个TTY驱动流程基本如下,后续会逐一分析,先记住这个框架. 2. TTY驱动流程分析 2.1 驱动入口和出口 2.1.1 函数接口用法分析 根据自己选择的驱动模型,调用 ...
- Linux ARM平台开发系列讲解(网络篇) 2.1 Marvell 88EA6321/6320 Switch 数据手册阅读之了解芯片功能
1. 概述 注意:88EA6321/88EA6320 和 88E6321/88E6320软件上无区别,区别在于硬件外围电源上 Marvell 88EA6321/88EA6320设备是一个集成了7端口千 ...
最新文章
- LeetCode简单题之按键持续时间最长的键
- a和a数值大小 计算机,Java求s=a+aa+aaa+aaaa+aa...a的值
- 【转】OpenStack和Docker、ServerLess能不能决定云计算胜负吗?
- 房间计费系统改造——数据库设计
- python财务报表分析-用Python爬取东方财富网上市公司财务报表
- 重物码垛搬运机器人_搬运码垛机器人的特点及应用
- 背景图片hover加蒙层_用hover怎么将li的背景图片变透明,文字不变,是背景图片,不是img插入...
- arcgis插值不覆盖区划图_ArcGIS绘图—空气质量站点数据插值绘制等值线图
- java数组有跨类建立对象_Java性能优化的45个细节(珍藏版)
- 奖学金(信息学奥赛一本通-T1179)
- jq 和java 多张图片_jQuery多个事件触发相同的功能
- Super-palindrome 模拟+思维
- jquery on() 转
- 6. 生信技能树——TCGA癌症数据1
- B站三季度财报解读丨从0到2.67亿月活,B站生态亮眼的密钥何在?
- QQ揭秘:如何实现窗体靠边隐藏?【低调赠送:QQ高仿版GG 4.2 最新源码】
- HTTP 长连接短连接使用场景是什么
- 【《Real-Time Rendering 3rd》 提炼总结】(十一) 第十四章 : 游戏开发中的渲染加速算法总结
- php redis hset过期时间,详解Redis中数据过期策略
- 找女朋友【快速排序】
热门文章
- 小项目正确的操作姿势,碾压工薪阶层
- 关于车臣战争有什么电影?车臣战争片推荐
- ZLMediaKit流媒体服务器
- CocosCreator Shader Editor 2D/3D 特效编辑器
- 安装Home Assistant 历程+遇到的问题
- 恢复U盘分区:windows自带工具diskpart
- (转)如何使用Xcode的Targets来管理开发和生产版本的构建
- 【渝粤题库】陕西师范大学202013 民法专论 作业
- 【虚拟机\UBunTu】E45: 已设定选项 ‘readonly‘ (请加 ! 强制执行)
- RabbitMQ消息中间件快速入门