
概述下crm中v4l2框架的初始化创建流程:
对于CRM主设备的v4l2框架创建过程:
1、分配和初始化v4l2 device对象
2、分配和初始化media device对象,然后将v4l2 device中mdev绑定到media device上
3、分配和初始化video device对象,将其中v4l2 device指向前面创建的v4l2 device对象;
将其中entity对象添加到media device中entities的链表中。创建video device时会创建设备结点/dev/video0,用于用户空间对内核空间的访问。
对于子设备的的v4l2 框架创建流程:
子设备有很多,cam-caps、cam-isp、cam-ope等等,他们依次进行初始化创建。
以cam-caps为例:
1、分配和初始化v4l2 subdev对象,其中包括四个主要成员:
list、v4l2_dev、entity、devnode。
(1)struct media_entity entity; //用于挂到media_device的entities链表上
(2)struct list_head list; //用于挂在v4l2_device的subdevs链表上
(3)struct v4l2_device *v4l2_dev; //指向一个v4l2_device对象,跟主设备指向的是同一个v4l2_device对象
(4)struct video_device *devnode; //创建设备节点/dev/v4l2-subdevX时创建的video_device
其中v4l2_dev指向主设备创建的v4l2 device对象。
list是链表头,它

本文详细描述了CRM系统中v4l2框架的初始化流程,包括主设备和子设备的创建步骤,以及Camsync模型中的sync_device、video_device和media_device的初始化过程。涉及的关键对象如v4l2_device、mediadevice和videodevice的分配与挂载。
最低0.47元/天 解锁文章
2845

被折叠的 条评论
为什么被折叠?



