Camx架构-Camera kernel Driver debugging

目录

V4L2 framework

camera drivers

CRM 功能性

CRM log analysis

使能CRM log:

camera启动期间列举子设备:

userspace  连接或者取消已获得的device handles(UMD 等效于CSLLink/CSLUnlink)

userspace open request (UMD等效于CSLOpenRequest)

在SOF期间,request manager的操作:

如何将UMD sequence ID映射到kernel requestID

例如:CRM 申请ISP的request1和request2

UMD submit request

UMD submit request for realtime pipeline,并稍后在IFE/ISP中获取buf_done.

UMD submit request for offlinePreview pipeline,并稍后在ICP中获取buf_done.

SOF freeze log


V4L2 framework

camera request manager(CRM)遵循 V4L2 设备体系:

  1.  需要为userspace创建一个media node,以枚举所有被注册过的子设备(subdevices  or entities);
  2. 创建一个video node 用来管理session和requests;
  3. 创建一个bridge entities,这个子设备是被注册在media device node;
  4. 将realtime modeules之间不同的request settings同步。

 V4L2的 subdevices

SENSOR, IFE, ICP, LRME, JPEG, FD, CPAS, CSIPHY, ACTUATOR, CCI, FLASH,EEPROM, and OIS drivers are created after device bootup

以下这句log就表示CSL成功调用V4L2的子设备接口控制:

camxcslhwinternal.cpp:2786 CSLHwInternalDefaultIoctl() Ioctl succeeded for device /dev/v4l-subdev1 (Type:CSLHwIFE, FD:12, Index:0)

设备分类:

根据hw的功能,camera相关设备可以分为realtime和nonrealtime两种。所有管理内存到内存的硬件devices被称为non realtime devices;所有进行实时streams数据驱动被成为realtime devices。

KMD driver体系

1.V4L2子设备node:如图所示camera kernel drivers用V4L2子设备接口支持UMD/CSL来建立session并与hw建立通信,这为KMD提供了single point IO control entry。

2,camera node interface:为被UMD获取的每一个设备提供node session context和state machine的pool;session node与UMD node具有一一对应的映射关心。CAMX CSL 可以从session manager

获得设备session context。

​​​​​​​​​​​​​​

3,Camera node/context state machine

4,V4L2 bridge initialization sequence

camera drivers

CRM以前称为bridge derive,所有的V4L2子设备都被注册到bridge driver(根据camera devices)。

子设备注册具体内容:

1.V4L2子设备被注册到bridge drive

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/21946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dataframe元组和字典操作

这是一个测试文件,今天发现一些有意思的语法, 首先字典是可以加入元组的 AA {"a":2,"b":23,"c":(1,2,3)} print(AA)结果如下 example1 import pandas as pd data pd.DataFrame(data {"a":(-1,-2,-3),&quo…

介绍 Vue 中组件之间通信的几种方式,如 props、 event、 Vuex、 provide/inject 等

Vue 中组件之间通信的主要方式包括以下几种: 1:Props: 父组件向子组件传递数据,子组件通过 props 接收父组件传递的数据。 这是最基本的组件通信方式,适用于简单的父子组件关系。 2:事件: 子组件通过自定义事件向父组件传递数据。 父组件监听子组件的自定义事件,并在事件回…

聚观早报 | 东风奕派eπ008将上市;苹果Vision Pro发布会

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 6月3日消息 东风奕派eπ008将上市 苹果Vision Pro发布会 特斯拉Model 3高性能版开售 小米14推送全新澎湃OS系统 …

php设计模式之策略模式详解

策略模式(Strategy Pattern)是一种行为设计模式,它使你能在运行时改变对象的行为。在PHP中应用策略模式可以让你轻松地根据需要选择和交换算法或策略,而无需修改使用这些算法的代码。 策略模式的核心概念: 目的&…

HCIP-Datacom-ARST自选题库__BGP/MPLS IP VPN多选【11道题】

1.在BGP/MPLS IP VPN中,PE上分配私网标签的方式有以下哪些顶? 基于平台的MPLS标签分配 基于VPN实例的MPLS标签分配 基于路由的MPLS标签分配 基于接口的MPLS标签分配 2.以下关于BGP/MPLS IP VPN的描述,正确的有哪些项? 在BGP/MPLSIP VPN场景中&am…

迁移学习的简要概述

迁移学习的简要概述 迁移学习(Transfer Learning)是一种机器学习方法,旨在将从一个或多个源任务中获得的知识应用到目标任务中,特别是在目标任务数据有限或难以获得的情况下。迁移学习通过利用预训练模型或共享特征空间&#xff…

HCL模拟器下做M-LAG测试(以及和华为配置对比)-二层架构

1.简单二层架构 1.1 拓扑图 1.2 配置 1.2.1 Leaf1配置 system-mac必须配置,否则会有一个node处于unknown状态,即使配置主节点的mac,主节点也需要配置system-mac为自己的mac ## M-LAG配置[Leaf1] m-lag system-mac 0001-0001-0001 # 手动设…

mysql中innodb引擎行数据过大对B+树存储的影响

在MySQL的InnoDB引擎中,数据是以B树的形式存储的,特别是聚集索引(Clustered Index),其叶子节点不仅存储了键值,还直接存储了行数据(或者行数据的指针,取决于行溢出的情况&#xff09…

【论文复现|智能算法改进】基于自适应蜣螂算法的无人机三维路径规划方法

目录 1.UAV路径规划数学模型2.改进点3.结果展示4.参考文献5.代码获取 1.UAV路径规划数学模型 【智能算法应用】蜣螂优化算法DBO求解UAV路径规划 2.改进点 混沌序列初始化 在处理复杂的优化问题时,原始蜣螂算法采用随机生成种群的方法进行种群初始化,…

如何在 Ubuntu 14.04 上使用 Passenger 和 Apache 部署 Rails 应用

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 在本教程中,我们将演示如何将 Phusion Passenger 安装为您的 Rails 友好型 Web 服务器,它易于安装、配置和维护。我们将把它集成到 Ubuntu 14.04 上的 Apache 中…

从零开始学习Linux(9)----文件系统

1.前言 1.铺垫 a.文件内容属性 b.访问文件之前,都得先打开,修改文件,都是通过执行代码的方式完成修改,文件必须被加载到内存中 c.谁打开文件?进程在打开文件 d.一个进程可以打开多少个文件呢?可以打开多个…

过拟合学习理解

生活示例看过拟合 我们可以用一个日常生活的例子来解释过拟合。 想象你正在准备一场考试,考试的内容是关于世界地理的。为了准备这场考试,你决定使用一本包含大量地理知识点的复习书。但是,你犯了一个常见的错误——你只专注于书中的那些例…

【运维】如何停止某个端口相关的所有服务

如何停止某个端口相关的所有服务 如果你使用的是Linux操作系统&#xff0c;你可以通过以下命令来停止所有监听9200端口的服务&#xff1a; sudo lsof -i :9200 # 查看哪些进程在监听9200端口 sudo kill -9 <PID> # 替换<PID>为上一步查到的进程ID&#xff0c;…

没有知网资源如何快速下载知网论文

今天有位同学求助一篇知网论文&#xff0c;“球磨-点击化学反应&#xff1a;无溶剂绿色反应方式”&#xff0c;其实下载知网论文是一件非常简单的事情&#xff0c;下面小编就把如何在家轻松查找下载知网论文的方法给大家演示一遍。 一、首先你需要获取知网使用权限&#xff0c…

LeetCode-283.移动零

给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums [0] 输出:…

视频汇聚平台EasyCVR对接GA/T 1400视图库:结构化数据(人员/人脸、车辆、物品)对象XMLSchema描述

在信息化浪潮席卷全球的背景下&#xff0c;公安信息化建设日益成为提升社会治理能力和维护社会稳定的关键手段。其中&#xff0c;GA/T 1400标准作为公安视频图像信息应用系统的核心规范&#xff0c;以其结构化数据处理与应用能力&#xff0c;为公安信息化建设注入了强大的动力。…

p10,idea开发工具

1 什么是ide 有编写&#xff0c;编译&#xff0c;运行三个功能合一的集成开发工具。

java自学阶段一:基础知识学习

《项目案例—黑马tlias智能学习辅助系统》 目录&#xff1a; 异常 一&#xff1a;学习目标&#xff1a; 异常&#xff1a;能够看懂异常信息&#xff0c;了解异常体系结构和分类&#xff0c;掌握异常的两种处理方式&#xff0c;自定义异常。 二、异常&#xff1a; 1.异常的概…

ES开发及面试手册

入门基础 简介 Elasticsearch是一个基于Lucene的搜索和分析引擎&#xff0c;它提供了一个分布式、多租户能力的全文搜索引擎&#xff0c;具有HTTP Web界面和无模式JSON文档。 使用场景 什么是全文检索 全文检索 是一种信息检索技术&#xff0c;它允许用户通过输入查询关键词来…

JZ2440笔记:声卡驱动

vi s3c-wm8976.c 在s3c2410-uda1341.c修改驱动&#xff0c;修改硬件部分的控制接口&#xff0c;I2S部分通用不用修改。 1、增加写寄存器操作函数wm8976_write_reg static void wm8976_write_reg(unsigned char reg, unsigned int data) {int i;unsigned long flags;unsigned…