【qcom Android camera调试纪要】

news/2024/11/8 6:50:47/

qcom Android camera调试纪要

        • 1、平台适配
          • 1.1、kernel端
        • 1.2、vendor端
          • 1.2.1、cameraService lib代码
        • 注意:需要在vendor\qcom\proprietary\common\config\device-vendor.mk中添加需要将当前的camera service lib加入到系统的编译路径中。
          • 1.2.2、camera Chromatix效果参数
        • 注意:该chromatix效果参数需要在vendor\qcom\proprietary\common\config\device-vendor.mk 进行添加进入系统配置。
          • 1.2.3、Sensor Config xml文件配置
          • 1.2.3.1、imx350_suny.xml配置
      • 该配置文件主要提供了系统使用的chromatix的模块名字。
          • 1.2.3.2、sdm660_camera.xml配置
        • 该文件配置路径在:qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\config\sdm660_camera.xml下,主要提供系统支持使用的chromatix,csi,eeprom sensorlib等详细的配置----非常重要的配置文件。
          • 1.2.3.3、sensors_configs_Android.mk配置
      • 1.2.4、camera马达的lib文件配置
      • 1.2.5、闪光灯的配置

1、平台适配

1.1、kernel端

​ kernel主要做camera的io,power,mipi等dts配置即可,主要完成video,sensor等设备节点驱动的注册,关于camera硬件参数的配置,具体的camera型号驱动在vendor中进行实现。

1.2、vendor端

​ 目前高通的camera的vendor中包括了camera的驱动,具体参数配置,驱动马达,eeprom,3a,isp等。

1.2.1、cameraService lib代码

路径:vendor\qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\sensor\libs\imx350

​ 以imx350为例,cameraService lib代码存放在上述路径中,当我们执行mm后,该代码将会编译为lib共给上层camera的service使用,具体表现为Android.mk中LOCAL_MODULE := libmmcamera_imx350可知。

注意:需要在vendor\qcom\proprietary\common\config\device-vendor.mk中添加需要将当前的camera service lib加入到系统的编译路径中。

1.2.2、camera Chromatix效果参数

chromatix为camera的3a,isp等出图的配置效果文件,它将会编译为多等lib提供给上层进行isp,3a等参数的调整。

vendor\qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\chromatix\0310\chromatix_imx350_sunny\Android.mk中配置可知,

LOCAL_MODULE := libchromatix_imx350_sunny_default_preview_3a
LOCAL_MODULE := libchromatix_imx350_sunny_default_video_3a
LOCAL_MODULE := libchromatix_imx350_sunny_hfr_120_3a
LOCAL_MODULE := libchromatix_imx350_sunny_hfr_60_3a
LOCAL_MODULE := libchromatix_imx350_sunny_hfr_90_3a
LOCAL_MODULE := libchromatix_imx350_sunny_zsl_preview_3a
LOCAL_MODULE := libchromatix_imx350_sunny_zsl_video_3a

注意:该chromatix效果参数需要在vendor\qcom\proprietary\common\config\device-vendor.mk 进行添加进入系统配置。

在chromatix中,可能存在多个分支,具体系统使用那一份分支将由CHROMATIX_VERSION来决定,定义在

vendor\qcom\proprietary\mm-camera\Android.mk

ifeq ( ( B U I L D S E R V E R ) , t r u e ) C H R O M A T I X V E R S I O N : = 0208 e l s e i f e q ( (BUILD_SERVER), true) CHROMATIX_VERSION := 0208 else ifeq ( (BUILDSERVER),true)CHROMATIXVERSION:=0208elseifeq((BUILD_MM_CAMERA2), true)
ifeq ( ( O E M C H R O M A T I X 0 308 ) , 1 ) C H R O M A T I X V E R S I O N : = 0308 E e l s e i f e q ( (OEM_CHROMATIX_0308), 1) CHROMATIX_VERSION := 0308E else ifeq ( (OEMCHROMATIX0308),1)CHROMATIXVERSION:=0308Eelseifeq((call is-board-platform-in-list,sdm660 msm8998),true)
CHROMATIX_VERSION := 0310
else
CHROMATIX_VERSION := 0309
endif
endif

ifeq ($(OEM_CHROMATIX_0310), 1)
OEM_CHROMATIX:=true
endif

ifeq ($(OEM_CHROMATIX), true)
LOCAL_CHROMATIX_PATH := ( L O C A L P A T H ) / . . / m m − c a m e r a − e x t / m m − c a m e r a s d k / s e n s o r / i n c l u d e s / (LOCAL_PATH)/../mm-camera-ext/mm-camerasdk/sensor/includes/ (LOCALPATH)/../mmcameraext/mmcamerasdk/sensor/includes/(CHROMATIX_VERSION)
LOCAL_EXTEN_ISP_INCLUDES := $(LOCAL_PATH)/…/mm-camera-ext/mm-camera2/media-controller/modules/isp2/
LOCAL_EXTEN_PPROC_INCLUDES := $(LOCAL_PATH)/…/mm-camera-ext/mm-camera2/media-controller/modules/pproc-new/cpp/
LOCAL_EXTEN_CHROMATIX_FILE_PATH := ( L O C A L P A T H ) / . . / m m − c a m e r a − e x t / m m − c a m e r a 2 / m e d i a − c o n t r o l l e r / m o d u l e s / s e n s o r s / c h r o m a t i x / (LOCAL_PATH)/../mm-camera-ext/mm-camera2/media-controller/modules/sensors/chromatix/ (LOCALPATH)/../mmcameraext/mmcamera2/mediacontroller/modules/sensors/chromatix/(CHROMATIX_VERSION)
else
LOCAL_CHROMATIX_PATH := ( L O C A L P A T H ) / . . / m m − c a m e r a s d k / s e n s o r / i n c l u d e s / (LOCAL_PATH)/../mm-camerasdk/sensor/includes/ (LOCALPATH)/../mmcamerasdk/sensor/includes/(CHROMATIX_VERSION)
LOCAL_EXTEN_CHROMATIX_FILE_PATH := ( L O C A L P A T H ) / m m − c a m e r a 2 / m e d i a − c o n t r o l l e r / m o d u l e s / s e n s o r s / c h r o m a t i x / (LOCAL_PATH)/mm-camera2/media-controller/modules/sensors/chromatix/ (LOCALPATH)/mmcamera2/mediacontroller/modules/sensors/chromatix/(CHROMATIX_VERSION)
endif

1.2.3、Sensor Config xml文件配置

qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\config\Android.mk

qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\config\imx350_suny.xml

qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\config\sdm660_camera.xml

1.2.3.1、imx350_suny.xml配置

该配置文件主要提供了系统使用的chromatix的模块名字。

imx350_sunny_postproc imx350_sunny_common imx350_sunny_snapshot imx350_sunny_snapshot imx350_sunny_default_video imx350_sunny_cpp_preview imx350_sunny_cpp_snapshot imx350_sunny_cpp_video imx350_sunny_cpp_liveshot imx350_sunny_zsl_preview_3a imx350_sunny_zsl_video_3a imx350_sunny_common_oz imx350_sunny_oz_preview imx350_sunny_oz_snapshot imx350_sunny_oz_preview imx350_sunny_cpp_oz_preview imx350_sunny_cpp_oz_snapshot imx350_sunny_cpp_oz_preview imx350_sunny_cpp_liveshot imx350_sunny_oz_preview_3a imx350_sunny_oz_preview_3a imx350_sunny_common_bining imx350_sunny_preview imx350_sunny_snapshot imx350_sunny_default_video imx350_sunny_cpp_preview imx350_sunny_cpp_snapshot imx350_sunny_cpp_video imx350_sunny_cpp_liveshot imx350_sunny_default_preview_3a imx350_sunny_default_video_3a imx350_sunny_common_bining imx350_sunny_preview_bokeh imx350_sunny_preview_bokeh imx350_sunny_default_video imx350_sunny_cpp_preview imx350_sunny_cpp_snapshot imx350_sunny_cpp_video imx350_sunny_cpp_liveshot imx350_sunny_default_preview_3a imx350_sunny_default_video_3a imx350_sunny_common imx350_sunny_hfr_90 imx350_sunny_hfr_90 imx350_sunny_hfr_90 imx350_sunny_cpp_hfr_90 imx350_sunny_cpp_hfr_90 imx350_sunny_cpp_hfr_90 imx350_sunny_cpp_liveshot imx350_sunny_hfr_90_3a imx350_sunny_hfr_90_3a imx350_sunny_common imx350_sunny_hfr_120 imx350_sunny_hfr_120 imx350_sunny_hfr_120 imx350_sunny_cpp_hfr_120 imx350_sunny_cpp_hfr_120 imx350_sunny_cpp_hfr_120 imx350_sunny_cpp_liveshot imx350_sunny_hfr_120_3a imx350_sunny_hfr_120_3a
1.2.3.2、sdm660_camera.xml配置

该文件配置路径在:qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\config\sdm660_camera.xml下,主要提供系统支持使用的chromatix,csi,eeprom sensorlib等详细的配置----非常重要的配置文件。

0 // camera id =0,注意和 dts 中 cell-index 一致 imx362 // sensor name , 这个名字用来找到对应的 sensor lib 库,所以不能错了 ak7374 // lens name ,用来找到对应的马达驱动 sony_imx362 // eeprom name, 用来找到对应的eeprom驱动 imx362_chromatix // chromatix name,用来找到对应的效果文件 pmic // flashlight name, 用来找到 mm-camera2\media-controller\modules\sensors\flash\libs 下面对应的库 1 BACK // 后摄 90 // 旋转90度,注意和 dts 中配置的一样 0 // CS 0 0x1F // 4 lane 和 1 clk 同时使能 0x4320 0 // 马达相关的参数,具体看模组 sepc 3.94 1.9 4.64 70.4 55.7 0.1 1 // camera id =1 imx350 dw9800 sony_imx350 imx350_chromatix 1 BACK_AUX // 后二摄 90 1 // CS 1 0x1F 0x4320 0 5.3 2.6 5.0 51.4 40.0 0.3 2 // camera id =2 s5k4h7yx holitech_s5k4h7yx s5k4h7yx_chromatix 1 FRONT // 前摄 270 // 旋转270度 2 // CS2 0x1F 0x4320 0 // 马达相关参数 2.47 2.0 1.9 63.84 47.88 0.1
1.2.3.3、sensors_configs_Android.mk配置

​ 主要是platform级别的配置,系统级别的camer xml配置参数。

1.2.4、camera马达的lib文件配置

​ 在前面的sdm660_camera.xml配置文档中,就进行了指定马达的name的型号,如上:

<ActuatorName>ak7374</ActuatorName><ActuatorName>dw9800</ActuatorName>这两种马达。

马达的lib路径为:vendor\qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\actuator\libs

需要将马达的配置页导入到系统的编译配置中。

vendor\qcom\proprietary\common\config\device-vendor.mk

加入:

MM_CAMERA += libactuator_dw9800`
MM_CAMERA += libactuator_ak7374

1.2.5、闪光灯的配置

在前面sdm660_camera.xml中,可以看出flashlight 使用的是默认的 <FlashName>pmic</FlashName>驱动。

驱动代码路径为:vendor\qcom\proprietary\mm-camera\mm-camera2\media-controller\modules\sensors\flash\libs\pmic

同时也需要将其加入到系统的编译路径下:

vendor\qcom\proprietary\common\config\device-vendor.mk加入:

MM_CAMERA += libmmcamera_sony_imx350_eeprom


http://www.ppmy.cn/news/510212.html

相关文章

imx6ul之OpenWRT中使用无线网卡做中继器与AP热点

中继器与AP的实现 这里我们假定中继器完成下面这样的一个功能&#xff1a; Wired Network ---> Wireless Network ---> 上级无线路由器 即从外部插入一个网线&#xff0c;通过imx6UL上面的无线网卡将数据转发到上级的路由器上面&#xff0c; 当然也可以完成下面这样的传…

imx6 DDR_Stress_Test

在调试DDR的时候&#xff0c;有时候需要更改参数。今天发现NXP提供了DDR Stress Test工具&#xff0c;用于DDR参数的校准。 参考链接 http://blog.csdn.net/qq405180763/article/details/44977449 http://www.imx6rex.com/software/how-to-run-ddr3-calibration-on-imx6/ 验证 …

IMX6Q调试之 —– DDR3 32位移植

IMX6Q调试之 —– DDR3 32位移植 自己的板子是参考[fleescale][6]官方开发板[imx6qsabresd][6]的开发套件做的设计的&#xff0c;无奈修改的地方太多了本章主要来说ddr3 的移植&#xff0c;首先需要的工具和软件&#xff1a; 一 、飞思卡尔IMX6 平台DRAM 接口高阶应用指南 -DDR…

WM8978移植到imx6或imx8上

有人移植过WM8978的音频吗&#xff1f;求指教啊~~~~~~~~~~~~~~~~~~~~~~~~~~ 设备树&#xff1a; MX8MM_IOMUXC_SAI3_RXD_SAI3_RX_DATA0 0xd6 驱动&#xff1a; sound/soc/soc-pcm.c sound/soc/codecs/wm8978.c sound/soc/fsl/imx-ak5558.c kernel-source/include/sound/soc…

关于imx8mp的es8316的芯片调试

文章目录 一、驱动配置1.1 dts配置1.2 cpu端的配置1.3 添加驱动 1.4 对应的验证二、device目录下的配置 记录在imx8mp上调试音频芯片es8316的笔记&#xff0c;因为在这个平台上是第一次调试这个芯片&#xff0c;遇到的一些问题比较多&#xff0c;做一次笔记 一、驱动配置 1.1 …

myir-imx6ull_iot uboot移植

最近闲了5&#xff0c;6个月了&#xff0c; 偶尔拿出来自己之前的myir开发板&#xff0c;想玩一玩。想学点uboot移植的内容。 就自己看看了正点原子的教程。自己又在myir的官网看了有最新的uboot版本可以更新&#xff0c;所以自己尝试自己搞一下。先简单介绍一个自己的开发环境…

NXP iMX8系列处理器核心性能对比测试

By Toradex秦海 1). 简介 NXP iMX8系列ARM处理器是NXP近几年新发布的产品&#xff0c;架构均升级到了64bit的ARMv8&#xff0c;其中包含了iMX8&#xff0c;iMX8x&#xff0c;iMX8M Mini&#xff0c;iMX8M Plus等一系列处理器&#xff0c;其基本参数属性的对比可以参考下面来自…

ProGuard 进阶系列(三) Java 类文件解析

书接上文&#xff0c;当我们从用户的配置文件中读取到所有的配置信息后&#xff0c;下一步便是将配置中的指定的类文件进行读取&#xff0c;构建需要混淆的 Java 类文件的语法树。在阅读类文件之前&#xff0c;先来看一下输入输出参数中的内容&#xff0c;我使用的是一个 Andro…