- 博客(168)
- 资源 (13)
- 收藏
- 关注
原创 <sa8650>sa8650 qcxserver-之-摄像头传感器VB56G4A驱动开发<1>
QAM8650P/QAMSRV1H是高通公司的下一代Snapdragon高级驾驶员辅助系统(ADAS)模块。在ADAS中、摄像头的使用必不可少。那么我们就会涉及摄像头驱动的开发。本文主要讲解在SA8650平台,基于snapdragon-auto-qx-4-4-0_hlos_dev_qnx,ES9-r00012.1基线新增摄像头驱动的详细流程分析。
2024-07-03 09:28:08
357
原创 <sa8650> sa8650相关文章记录
<sa8650> sa8650介绍<sa8650>QAM8650P-之-引导和核心BSP体系结构技术概述<sa8650>sa8650 XBL-之-XBL配置指南<sa8650> sa8650基线代码编译<sa8650> snapdragon-auto-hqx-4-5-6-0基线代码编译<sa8650>sa8650开发板-之-刷机教程(flashing)<sa8650>sa8650 CDT-之-汽车CDT配置用户指南(上)<sa8650>sa8650 CDT-之-汽车CDT配置用户指南(下)
2024-07-01 09:42:25
194
原创 <sa8650>QCX ISP Tuning 使用详解 — Tuning前置条件
如果存在相同的文件,低级文件夹中的Tuning 文件优先于高级文件夹中的Tuning 文件。如果您的设备有多个传感器(如环视摄像头、前置摄像头等),您需要为每个传感器创建一个单独的项目,且每个项目必须使用相同的 XSD 集。在项目中添加子场景,这样就可以针对不同的用例、功能、场景和效果进行调整,从而与子场景的父场景保持一致。创建项目后,在 "管道 "选项卡中,将根据所选的用例和调整模式创建 ISP 管道。生成二进制文件时,除了为子文件明确Tuning 的参数外,子文件将继承父文件的设置。
2024-06-28 09:08:07
79
原创 <sa8650>QCX ISP Tuning 使用详解 — Tuning介绍
高通公司 ISP 调整二进制由多层用例组成。一个物理传感器映射到一个二进制tuning包。tuning二进制文件的基本概念是自上而下的继承树结构。如果存在相同文件,低层文件夹中的tuning文件会覆盖高层文件夹中的tuning文件。例如,在下图中,如果当前tuning树的第 0 层和第 2 层都有锐度tuning文件,则只有覆盖父级tuning文件后,黄色突出显示的文件才会生效。下图说明了调整树的层次结构。每个类别的数量可根据项目用例的需要进行扩展。字符串可以修改(前 3 级除外)。
2024-06-28 09:07:42
97
原创 <sa8650>QCX ID16_UsecaseRawLiteAuto 使用详解
我们在使用QCX时,如果由于使用的摄像头自带了ISP,那么可能不需要使用QCX中的ISP功能了。这个时候就需要使用特定的pipeline,使数据流不经过ISP了。在sa8650平台中,高通在QCX中提供了ID16_UsecaseRawLiteAuto,使数据流直接在IFELite输出,而不经过ISP(IFE 和 IPE)的处理。下面我们就开分析分析。
2024-06-28 09:05:39
44
原创 <sa8650>QCX 诊断模块和错误处理
但是,在某些情况下,CAMX 尚未初始化,FuSa 会产生错误(例如,摄像机检测和探测序列期间的错误)。QCarCamErrorInfo_t 的以下字段适用:errorId、errorCode、errorSource、inputId、frameId、bufferlistId 和时间戳。在任何客户端应用程序启动之前,启动或启动序列中产生的错误(相机检测错误、BIST 错误等)将仅通知安全监视器。这是特定数据流的致命错误,如违反 CCIF 协议等,qcarcam 驱动程序为此启动了内部恢复。
2024-06-28 08:53:50
38
原创 <sa8650>QCX Camera ISP overview
CSID: Camera Stream Interface Decoder(摄像机数据流接口解码器)、MIPI 协议解码器功能。IFE_L: Imaging Front End Lite(简易成像前端)、RDI(RAW 转储接口) DMA 引擎到 DDR。SFE_L: Streaming Front End Lite(流媒体前端精简版)、用于脱机模式的总线接口。每个 PHY 支持以下模式:4 个数据通道 OR 2 个数据通道 + 1 个数据通道。以下是从硬件角度列出的功能。典型用途:低延迟 FFC 功能。
2024-06-27 09:31:28
520
原创 <sa8650>QCX Usecase 使用详解— Spectra Studio-新建usecase
在第一篇文章<sa8650>QCX Usecase 使用详解— Spectra Studio工程建立中已经讲解了如何利用Spectra Studio建立usecase的工程,并打开图形界面等介绍。接下来就是要讲解如何创建一个usecase了。
2024-06-27 09:30:59
51
原创 <sa8650>QCX Usecase 使用详解— Spectra Studio工程建立
目前高通平台在camera模块中,我们会使用到usecase这么一个功能模块;本文主要讲解sa8650平台中,通过Spectra Studio 可视化配置usecase的使用。usecase的配置涉及到视频流在CAMX中的流转和处理过程。有效的配置usecase可以得到用户想得到的数据类型,包括raw数据、yuv、rgb。以及是否将数据经过IFELite、IFE、IPE等。根据上述过程,我们就可通过工程查看usecase了。
2024-06-26 07:45:23
469
原创 <sa8650>QCX—如何整合自定义 2A 插件算法
QTI 参考 cases/pipelines使用专有的自动曝光控制 (AEC) 和自动白平衡 (AWB) 算法。不过,该框架允许原始设备制造商集成自己的自定义 AEC 和 AWB 算法。本节将介绍如何将自定义算法集成到 QCX 框架中。以下代码片段显示了在Usecase AutoFFC中通过引用包含的 StatsSegmentAuto。修改段 StatsSegmentAuto,用 OEM 定义的自定义 AEC 插件取代 QTI 专有 AEC 算法。
2024-06-26 07:44:07
45
原创 <sa8650>QCX—如何使用 CCI 调试器
CCI 调试器是一个外部工具,用于与 CCI 块交互,并通过 I2C 协议与外部硬件设备通信。它是一种实用程序,可用于通过 I2C 读写所连接摄像头设备的寄存器。在 qdrive3.0 QNX 映像中,它位于目标机上的 /mnt/bin/camera(或 /ifs/bin/camera)。
2024-06-25 07:54:34
160
原创 <sa8650>QCX—如何在动态和静态配置中启用 QCX 日志
在QCX中,用户可通过两种方式配置log的等级;一种是静态配置,另一种是动态配置;静态配置是固化参数到源码中;动态配置是通过配置文件,在启动QCX时进行加载。
2024-06-25 07:54:08
29
原创 <sa8650>QCX Usecase 使用详解—如何启用 camxoverridesettings 配置
在前面的几篇关于usecase的文章中;我们时常会修改camxoverridesettings.txt文件中的内容。camxoverridesettings.txt文件的内容主要涉及的参数都是关于CAMX模块的。所以当我们需要更改CAMX相关的配置时,可通过camxoverridesettings.txt进行修改。
2024-06-24 18:31:23
73
原创 <sa8650>QCX Usecase 使用详解—如何在 QCX 框架中添加新的自定义Usecase/Pipeline
本页介绍根据 OEM/Tier1 要求创建自定义用例/管道的步骤。在本例中,我们创建一个新的使用Usecase/Pipeline,其数据流如下。
2024-06-24 18:30:40
271
原创 <sa8650>QCX Usecase 使用详解—从 IFE_Lite 获取原始帧(常用于数据采集)
在某些开发过程中,我们可能需要使用到raw格式的原始图像数据。在高通SA8650平台中,借助QCX框架下的设计,我们可以在IFE_Lite节点后获取。
2024-06-05 11:24:48
265
原创 <sa8650>QCX Usecase 使用详解—运行 6 台摄像机的摄像机配置(FFC + SVC + ICMS)
注:Leopard OV3FX 默认需要 6 Gbps 的 GMSL 链路。但 MAX96724f 仅支持 3 Gbps。四个 OV3FX(SRV)传感器连接 Max96724 的端口 0/1/2/3。Max96712 的端口 1 连接一个 VD1940(ICMS)传感器。一个 H1H(FFC)传感器连接到 Max91716 的端口 0。五、更改 qc.camera_qcx.config.build。qcx.log:参考日志(工作日志)如下。
2024-06-05 11:24:18
103
原创 <sa8650>QCX Usecase 使用详解—如何在 ISP 管道的不同分接点转储帧
当 qcarcam_test 成功运行后,可以通过两种方式将图像转储为文件。转储文件存储在 /tmp 文件夹中。
2024-06-05 11:23:53
53
原创 <sa8650>QCX Usecase 使用详解—如何使用自定义供应商标签
QTI 为应用程序与 2A 算法、2A 算法与带有客户供应商标签的传感器库之间的通信提供了一种方式。供应商标签的最大大小定义为 200 字节。如果尺寸增大,例如通过 CustomDebugDataAutoAEC 标签增加了 1 MB 的调试数据,算法设置的标签值将被 CamX stats lite 节点内部复制到另一个缓冲区。因此,如果每隔一帧设置一次 1 MB 的数据,CamX 就会在内部复制 1 MB 的数据。这可能会影响性能。
2024-06-04 11:15:48
58
原创 <sa8650>QCX Usecase 使用详解—如何配置任意数据流分辨率
camxoemcustomization.cpp 中的 GetCustomStandardImageDimension API 可添加和删除分辨率。默认支持分辨率列表。如果不包含分辨率,请在标准图像尺寸表中添加分辨率。分辨率必须在 standardImgDimenson 中添加和删除。
2024-06-04 11:15:15
76
原创 <sa8650>QCX Usecase 使用详解—如何在管道中添加多个 IPE 实例
本节说明在使用Usecase/Pipeline XML 中添加多个 IPE 实例所需的更改。以下示例解释了如何在 AutoSRV 使用案例/管道中添加两个 IPE 实例。在 camxAutoSRV.xml 中,在节点列表标记下定义 IPE 的新实例。在下面的示例中,定义了 IPEOfflineInstanceName1。确保每个 IPE 实例的以下参数都是唯一的。
2024-06-04 11:14:49
245
原创 <sa8650>QCX Usecase 使用详解—硬件节点传感器 IFE Lite IFE Full 和 IPE 端口说明
本页介绍 IFE/IPE 管道模块的端口定义。用例 3 是一个示例,因为它在一个用例中调用了 IFE_Lite、IFE_Full 和 IPE 实例。
2024-05-17 08:02:34
466
原创 <sa8650>QCX Usecase 使用详解—如何更改 IFE/IPE 输出格式
本节说明更改流水线输出格式所需对 Usecase/Pipeline XML 进行的更改。下面的示例解释了如何在 AutoFFC 使用案例/管道中添加 RGB888 格式。如果尚未定义所需的段格式,确保在 common_target_buffers.xml 中的以下位置定义 target_segment。在 camxAutoFFC.xml 中,修改 IFE/IPE 输出目标格式。根据管道中是否启用了 IPE 节点,相应的目标将在用例/管道选择时启用。
2024-05-17 08:01:27
186
原创 <sa8650>QCX Usecase 使用详解—什么是可剪枝节点属性以及何时使用
用例剪枝可实现光流设计分段(节点和目标缓冲区),这些分段实现了共享的逻辑接口,而这些接口的实现可能会发生冲突,但不会重复流水线。例如,overridesettings.txt 中的 enableAutoNoIPE=FALSE。在 /qcamera/camera_qcx/cdk_qcx/oem/qcom/chiusecase/a 中的 chxusecaseselector.cpp 中获取覆盖设置。
2024-05-16 08:15:18
57
原创 <sa8650>QCX Usecase 使用详解—通道配置(Channel configuration)
为了支持具有多个上下文和多个相同格式输出流的传感器,我们需要一种方法来将输出 CamX 流与客户端提供的 QCX 缓冲区列表关联起来。
2024-05-16 08:14:16
97
原创 <sa8650>QCX Usecase 使用详解—环视摄像头 (SRV))
环视摄像头用例可在高通 POR 传感器上进行测试。在高通示例设置中,SRV 传感器连接到第二个 quad 的四个端口(解串器 1 插槽的端口 0、1、2 和 3)。共有四个 SRV 传感器,每个传感器都独立运行 SRV 用例。SRV 传感器在逻辑摄像机 XML 中定义为 max96724_ox03f10_04、max96724_ox03f10_05、max96724_ox03f10_06、max96724_ox03f10_07。
2024-05-16 08:13:04
223
2
原创 <sa8650>QCX Usecase 使用详解—ISP 分组
汽车模块中的 IFE 资源有限,必须在传感器和上下文之间共享。SA8650 有五个 IFE Lite,每个 IFE Lite 有六个 RDI 端口。在 SRV 或 ICMS 等汽车用例中,通过使用 ISP 分组,每个传感器和每个传感器的上下文共享一个 IFE Lite。ISP 分组可在编译时通过 XML 文件设置,也可在运行时通过引用 /var/ target 中的 groupConfig.xml 文件动态加载并解析。每个传感器组向硬件提交单独的 VC/DT 信息。
2024-05-15 09:35:48
92
原创 <sa8650>QCX Usecase 使用详解—舱内监控系统 (ICMS))
ICMS 用例是一个多情境汽车用例,其中传感器与多个情境进行数据流传输。每个情境都有自己独特的帧频、设置、FOV、帧长、VC/DT 等。使用传感器模式 0 对使用案例进行流式传输的传感器,其流配置如图 1 所示。根据不同的场景和要求,ICMS 用例可采用不同的传感器模式。本文档介绍了使用传感器模式 0 的用例流式传输的实现。
2024-05-15 09:35:11
354
原创 <sa8650>QCX Usecase 使用详解—前置摄像头(FFC)
前置摄像头可在高通 POR 传感器上进行测试。支持的用例包括离线 FFC 和在线 FFC。
2024-05-11 15:18:27
461
原创 <sa8650>QCX Usecase 使用详解—拓扑图 XML 定义
硬件和软件图像处理节点需要产生输出,而这些节点之间的连接决定了数据如何在摄像机子系统中流动。这组节点和连接称为拓扑结构。一个用例由一组要处理的目标和一组进一步定义数据处理方式的持续设置来定义。每个用例都由拓扑结构表示,拓扑结构是传递到 HAL3 API 的信息与如何处理数据的具体定义之间的连接。用例及其相应的拓扑结构都编码在一个 XML 文件中。在 configure_streams()过程中,会根据 XML 中的 和 部分选择用例。
2024-05-11 15:17:06
273
原创 <sa8650>QCX Usecase 使用详解—高通下一代camera< QCX >架构
QCarCam 测试应用程序的参考实施与高通软件版本一起提供,可在 /camera_qcx/test/qcarcam_test/ 文件夹中找到。本节的目的是解释 QCX 架构的不同组件以及 OEM 厂商可用于实施自定义用例、传感器驱动程序和调整的定制框架。有关 QcarCam 6.x API 的详细指南,请参阅 ## 部分(链接 Web 文档中的 API 指南部分。该层负责处理来自多个客户端的所有流,并维护系统中运行的每个流的上下文。这是高通公司专有的模块,负责配置高通相机 ISP。
2024-05-11 15:16:22
520
原创 <sa8650> snapdragon-auto-hqx-4-5-6-0基线代码编译
本文主要讲解SA8650平台的snapdragon-auto-hqx-4-5-6-0基线代码编译问题。根据高通发布的基线代码已经到达ES4.1-r0000502.2了。笔者从前面几个版本接触以来,每个版本编译都有略微的差异。所以写个文章做个记录。对于sa8650平台的snapdragon-auto-hqx-4-5-6-0基线代码编译过程分析,一讲解完成;笔者在多个基线编译中踩过一些坑。不同基线所使用的QHS和QOS版本可能不同,不同基线所使用的编译命令步骤可能不同。
2024-05-09 17:39:17
232
原创 <sa8650> snapdragon-auto-hqx-4-5-6-0基线代码camera开发错误记录
本文主要记录CAMERA开发过程中的一些错误及解决方法。
2024-05-09 17:38:46
119
原创 <sa8650>sa8650 QNX-之-显示串口命令行完整路径
针对SA8650平台的snapdragon-auto-qx-4-4-0_hlos_dev_qnx基线代码中,默认串口命令行的显示只有”/#“,这使得用户无法确认当前路径的位置,从而需要运行”pwd“命令查看当前路径。为方便期间,我们可以参考linux系统的配置方法,来配置QNX系统中的路径显示。接下来我们来看看如何设置。为方便查看当前路径,我们可以设置命令行显示的完整的路径位置。
2024-05-06 10:33:34
56
原创 <sa8650>sa8650 qcxserver-之-camera服务存放位置更改
写这边文章的目的是什么呢?目的就是为了,更改qcxserver在QNX系统中的存储位置;那又为什么要更改其存储位置呢?这是应该默认qcxserver是存放在ifs目录下的,然而ifs目录是不具备写权限的,且不用动态更改写权限;那又为什么我们需要有写权限呢?拥有写权限,那么我们可以在开发过程中快速验证程序;比如,我们更改了一个camera的配置文件,我们只需将更改的文件直接替换到设备中,然后重启设备,即可。这样是不是就简便很多呢?避免的复杂的整体编译,整体烧录等等;
2024-05-06 10:32:51
172
原创 <sa8650>sa8650 video-之-vidc_test_app测试播放mp4
在SA8650中有一个测试video的测试程序那就是vidc_test_app;vidc_test_app的可是视频的编解码功能;本文主要分析讲解解码mp4文件的测试过程;详细内容下面分析。
2024-03-21 16:19:20
294
1
原创 <sa8650>sa8650 memory-之-内存参数分析
在开发过程中,我们常常需要关注内存的使用情况;特别是DDR的使用,如果某一进程内存的使用一致递增,那么可能会导致内存使用完的情况,这时系统就会异常了。在SA8650平台开发过程中,高通平台提供了可查阅内存使用的相关命令工具,以及内容布局的配置介绍。下面我们来了解一下内容。
2024-03-21 16:18:53
99
原创 <sa8650>sa8650 partition-之-新增分区img填充相关文件
前面两篇文章已经讲解了如何添加新分区,以及如何新增新镜像文件img;由于新镜像文件内容还是空的,那么我们需要为其添加相关的文件,比如bin文件、so文件、include文件等等;那么如何为其添加呢?下面就来看看如何实现。本文是讲解如何为SA8650平台新增新的分区,以及新增新的image文件;进一步为image添加bin文件的步骤;上述都是实操验证过的结论。如有不足或不详之处欢迎交流。持续关注,更新更多文章…
2024-03-18 15:53:00
169
原创 <sa8650>sa8650 partition-之-独立新增分区不加img
针对分区的相关说明,笔者就不过多介绍了。读者可执行在网上查阅相关资料熟悉。本文主要是讲解在高通SA8650平台下,基于基线ES10,新增一个分区的处理步骤。本次刷机使用QFIL 或PCAT 都可以完成;目前是在EDL模式下进行刷机操作。再已有镜像包的情况下,单独新增一个分区的方式。可配置“ update util”一起使用,或其它。update util相关内容可参考:KBA-230917235240_REV_1_GPT_update_util_manual.pdf。
2024-03-18 15:52:24
78
原创 <sa8650>sa8650 partition-之-新增分区加img
在<sa8650>sa8650 partition-之-非基线编译下新增分区中,我们介绍了,在已有的UFS刷机包中新增分区 方法。这种基本上时一次性的。不方便需要的使用。那么有没有比较实用的,一次修改后续能一直继承继续使用的呢?当然是有的。按照<sa8650>sa8650 partition-之-独立新增分区不加img中的修改,并补充额外的内容即可。接下来看看具体操作内容。经过前面的步骤,我们可以知道,新增分区、以及为新分区分配镜像文件的配置步骤;
2024-03-18 15:50:58
251
原创 <sa8650>sa8650 qcxserver-之如何启用CamX会话转储和分析qcxserver核心转储和分析
转储文本文件生成到/var/camera/文件夹,例如:/var/camera_core_Dump_pid1388622_Tid133_19700101_000331。根据第一步运行qcarcam_rvc后显示的菜单,在正常出图的情况下,根据菜单选择“z”,退出qcarcam_rvc;开机后在启动qcxserver的前提下,第一次运行qcarcam_rvc,命令: qcarcam_rvc -menu。为了找出CamX中相机错误的根本原因,某些问题被视为致命问题,并导致调试信息转储的强制崩溃。
2024-01-19 08:10:24
259
针对Linux的FTDI驱动程序安装指南
2023-08-22
source insight 4项目开发的程序编辑器和代码浏览器
2023-08-22
scrcpy用于android 投屏到PC端的工具
2023-08-22
CAN入门教程CAN参考资料
2023-07-22
Enigma Virtual Box工具安装包
2023-07-05
Cmake文章配套源码资源文件
2023-03-21
ubuntu 下使用wps,包括字体补充
2022-12-06
高通LA.1.1基线Android 管理 Activity和组件运行状态 的系统进程AMS
2022-02-12
高通LA.1.1基线android源码init.rc中启动的服务相关流程图
2022-02-10
AndroidStudio19.1 windows版本
2020-11-18
Microsoft Visual Studio 2015 Installer Projects
2020-11-17
深入剖析浮点存储及其运算规则
2018-01-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人