【Camera KMD ISP SubSystem笔记】Request 流转与Bubble机制

news2024/9/20 22:38:37

ISP中断类型

    SOF: 一帧图像数据开始传输
    EOF: 一帧图像数据传输完成
    REG_UPDATE: ISP寄存器更新完成(每个reg group都有独立的这个中断)
    EPOCH: ISP某一行结尾(默认20)就会产生此中断
    BUFFER DONE: 一帧图像数据ISP完全写到DDR了


管理Isp request的几个List
struct cam_isp_context {
    struct list_head               active_req_list;//reg_upd中断将isp request保存到这里并等待buffer done中断
    struct list_head               pending_req_list;//umd submit的isp request保存到这里等待sof(epoch)时crm apply其到HW
    struct list_head               wait_req_list;//apply之后保存isp request到这个链表并且等待reg_upd中断
    struct list_head               free_req_list;//保存所有可用的isp request对象
}

Isp request在kernel里的生命周期图

Bubble Recovery
Isp bubble state request生命周期解析图

Isp bubble 恢复机制
cam_req_mgr_process_error(void *priv, void *data)
{
    switch (err_info->error) {
        case CRM_KMD_ERR_BUBBLE:
            idx = __cam_req_mgr_find_slot_for_req(in_q, err_info->req_id);//在in_q中找到bubble request对应下标
     __cam_req_mgr_tbl_set_all_skip_cnt(&link->req.l_tbl);//让bubble这次遍历skip掉pd 1的request
            in_q->rd_idx = idx;//重置rd_idx为bubble request对应的下标
            slot_diff = in_q->last_applied_idx - idx;//计算出最新applied request到 发生bubble request的下标偏差
            //把出现bubble request开始到last appiled之间的request都标为CRM_SLOT_STATUS_REQ_ADDED,
            //这些request都需要在SOF/EOF来时重新配置到realtime HW
            for (i = 0; i < slot_diff; i++) {
                __cam_req_mgr_inc_idx(&idx, 1, link->req.l_tbl->num_slots);
                if (in_q->slot[idx].status == CRM_SLOT_STATUS_REQ_APPLIED)
                    in_q->slot[idx].status = CRM_SLOT_STATUS_REQ_ADDED;
            }
            __cam_req_mgr_apply_on_bubble(link, err_info);//立刻重新配置pd 2的设备的request到hw
    }
}

正常流程:sof - applywithcf - Applied状态 - reg upd中断 - epoch状态 - bufdone中断
 
ISP bubble :Applied之后应该是reg upd 的中断,这时来了epoch中断,说明这张图无效,此时进入buffle状态,isp通知crm error

如果req5发生bubble,rd_idx会被移动到req5的位置,前面配置到ISP的5的buffer done不会返回到umd。等reapply到5的request,完成buffer done并且状态从bubble恢复之后才返回UMD。

req5在下一个SOF重新配置给ISP HW,如果这是bubbled req5 buf done还没到,就等下个sof再检查bubbled req5 buf done是否到达,到达就reapply req5到isp hw

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

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

相关文章

系统思考——与其一样,不如不同

感谢开放大学的持续邀请&#xff0c;为创新创业的学生提供赋能。昨天的主题是《创业核心&#xff1a;从内在优势到价值创造》。在近期参与的创业活动中&#xff0c;我注意到许多创业者在介绍自己的公司时常说&#xff1a;“我们是做***的&#xff0c;最大的优势是比其家便宜。”…

mapbox实现3D模型飞行

贴个群号 WebGIS学习交流群461555818&#xff0c;欢迎大家 效果图 其实这种移动的可视化效果&#xff0c;在二维和三维中实现的思路都是一样的&#xff0c;无非是规划好路径&#xff0c;用几个关键节点&#xff0c;然后插值计算中间的点用以平滑移动效果&#xff0c;实时的根…

ETL中双流合并和多流合并的区别

一、ETL工具 ETLCloud数据集成平台集实时数据集成和离线数据集成以及API发布为一体的数据集成平台。与其他开源数据集成工具相比&#xff0c;采用轻量化架构、具有更快的部署速度、更快的数据传输速度、更低的运维成本&#xff0c;同时支持多租户的团队协作能力&#xff0c;能…

IDM下载器安装cmd注册

一、下载注册 安装包去IDM官网下载最新的试用版即可 或者直达百度网盘下载&#xff08;担心被河蟹&#xff0c;放在txt中了&#xff09;包含IDM下载器安装包和注册软件 IDM下载器安装包和注册软件下载地址链接 https://download.csdn.net/download/qq_31237581/89215452 如果…

一个自卑的人怎么变得自信

一个自卑的人怎么变得自信 自卑感是一种常见的心理状态&#xff0c;它可能源于个人对自己能力、外貌、价值等方面的负面评价。自卑感不仅会影响一个人的情绪状态&#xff0c;还可能阻碍其在生活、学习和工作中的表现。然而&#xff0c;自信并非一蹴而就的品质&#xff0c;它需要…

Elsevier——投稿系统遇到bug时的解决方法

重要&#xff1a;找期刊客服&#xff01;&#xff01;&#xff01; 一、方法&#xff1a; 1. 点击进入与官方客服的对话 2. 按要求输入个人信息 3. 输入遇到的问题 比如&#xff1a; 主题&#xff1a;The Current Status is jammed. 详细描述&#xff1a;The Current State o…

Flask框架进阶-Flask流式输出和受访配置--纯净详解版

Flask流式输出&#x1f680; 在工作的项目当中遇到了一种情况&#xff0c;当前端页面需要对某个展示信息进行批量更新&#xff0c;如果直接将全部的数据算完之后&#xff0c;再返回更新&#xff0c;则会导致&#xff0c;前端点击刷新之后等待时间过长&#xff0c;开始考虑到用进…

ESP32-S3如何用socket通信

实验目的&#xff1a; 通过 Socket 编程实现 pyWiFi-ESP32-S3 与电脑服务器助手建立连接&#xff0c;相互收 发数据。 首先先来简单了解一下Socket 我们先来看看网络层级模型图&#xff0c;这是构成网络通信的基础&#xff1a; 我们看看 TCP/IP 模型的传输层和应用层&…

内网安全【1】——域信息收集/应用网络凭证/CS插件/Android/BloodHound

内容大纲&#xff1a; 概念名词&#xff1a; 局域网 &#xff08;自己家&#xff09; 工作组 &#xff08;网吧&#xff09; 内网域 &#xff08;公司&#xff09; 比如一家公司有1000台机器 运维人员去管理1000 不可能每台上去都进行软件的安装 环境的部署 密码的设置…

Vue+Echarts 实现中国地图和飞线效果

目录 实现效果准备 实现效果 在线预览&#xff1a;https://mouday.github.io/vue-demo/packages/china-map/dist/index.html 准备 高版本的echarts&#xff0c;不包含地图数据&#xff0c;需要自己下载到项目中 1、地图数据下载 https://datav.aliyun.com/portal/school/at…

大田场景下的路径检测论文汇总

文章目录 2020Visual Servoing-based Navigation for Monitoring Row-Crop Fields 2020 Visual Servoing-based Navigation for Monitoring Row-Crop Fields code: https://github.com/PRBonn/visual-crop-row-navigation 摘要&#xff1a; 自主导航是野外机器人执行精确农业…

vue-quill-editor富文本插件控制字数显示

最终效果 富文本编辑框&#xff0c;只统计内容&#xff0c;不包含标签以及样式&#xff0c;超出最大字数限制提示。 具体代码 html <div class"relative"><quillEditorv-model"form.nutriSuggestion"ref"myQuillEditor7":options&quo…

【Python数据库】MongoDB

文章目录 [toc]数据插入数据查询数据更新数据删除 个人主页&#xff1a;丷从心 系列专栏&#xff1a;Python数据库 学习指南&#xff1a;Python学习指南 数据插入 from pymongo import MongoClientdef insert_data():mongo_client MongoClient(hostlocalhost, port27017)co…

【网络原理】数据链路层 及 DNS域名系统

系列文章目录 【网络通信基础】网络中的常见基本概念 【网络编程】网络编程中的基本概念及Java实现UDP、TCP客户端服务器程序&#xff08;万字博文&#xff09; 【网络原理】UDP协议的报文结构 及 校验和字段的错误检测机制&#xff08;CRC算法、MD5算法&#xff09; 【网络…

为什么使用ZigBee技术开发智能家居产品?

随着智能家居市场的蓬勃发展&#xff0c;各种智能设备层出不穷&#xff0c;其中Zigbee技术因其独特的优势在这些智能设备中得到了广泛应用。那么&#xff0c;zigbee技术究竟具备哪些令人瞩目的优势&#xff0c;为什么能够得到如此广泛的应用呢&#xff1f; 什么是Zigbee协议&am…

Docker 容器操作

容器创建 就是将镜像加载到容器的过程。 新创建的容器默认处于停止状态&#xff0c;不运行任何程序&#xff0c;需要在其中发起一个进程来启动容器。 格式&#xff1a;docker create [选项] 镜像 常用选项&#xff1a; -i&#xff1a;让容器开启标准输入 -t&#xff1a;让…

电商架构:系统设计+表设计

如有不对&#xff0c;请指正 欢迎评论区交流 需要哪些系统 商品系统、订单系统、权限系统、审核系统等。 商品系统 订单系统 审核系统 权限系统 参考 基于电商中台架构-商品系统设计(一) 附件

APQC是美国生产力与质量中心

APQC简介 APQC是美国生产力与质量中心( American Productivity and Quality Center)的简称。该中心自1991年开始研究开发流程分类框架&#xff08;简称PCF&#xff09;&#xff0c;1992年发布PCF1.0。PCF将运营与管理等流程汇总成12项企业级流程类别&#xff0c;每个流程类别包…

win10安装pytorch + cuda

1&#xff1a;下载cuda工具cuda-toolkit 地址&#xff1a;https://developer.nvidia.com/cuda-toolkit-archive 2&#xff1a;一路向下&#xff1a;安装 3&#xff1a;配置环境变量 path 环境变量中添加&#xff1a; 4&#xff1a;验证cuda是否安装成功&#xff1a; nvcc -…

计算机网络——初识网络

一、局域网与广域网 1.局域网&#xff08;LAN&#xff09; 局域网&#xff1a;即Local Area Network&#xff0c;简称LAN。Local即标识了局域⽹是本地&#xff0c;局部组建的⼀种私有⽹络。局域⽹内的主机之间能⽅便的进⾏⽹络通信&#xff0c;⼜称为内⽹&#xff1b;局域⽹和…