0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

高通Camera Log Debug

哆啦安全 来源:哆啦安全 2023-07-04 09:54 次阅读

经典好文推荐,通过阅读本文,您将收获以下知识点:

一、Camx UMD Log Debug
二、Camx KMD log Debug
三、常用缩写解释
四、参考文献

一、Camx UMD Log Debug

1.1 两种方式设置camx UMD Log
  1. /vendor/etc/camera/camxoverridesettings.txt
    设置完需要重启后才可以生效

  2. adb shell setprop
    设置完后生效,重启后失效

1.2 Camx UMD log 等级

Camx log 等级包含如下内容:

Log 等级 Log key Log Value
Verbose Log Mask logVerboseMask 0
Entry/Exit Log Mask logEntryExitMask 0
Info Log Mask logInfoMask 0xFFFFFFFF
Warning Log Mask logWarningMask 0xFFFFFFFF
System Log Enable systemLogEnable TRUE
所有log打开 logkey eg :logWarningMask Logvalue eg: 0xFFFFFFFF
1.3 Camx UMD log Group

Camx UMD log Group 控制主要采用32位二进制数值进行控制开关。
比如关闭全为0
0000 0000 0000 0000 0000 0000 0000 0000

Camx UMD Log Group 举例如下:

typedef UINT32 CamxLogGroup;
static const CamxLogGroup CamxLogGroupNone          = (1 << 0);     /0x1        //< Generic group   
static const CamxLogGroup CamxLogGroupSensor        = (1 << 1);     /0x2        //< Sensor
static const CamxLogGroup CamxLogGroupIFace         = (1 << 2);     /0x4        //< IFace
static const CamxLogGroup CamxLogGroupISP           = (1 << 3);     /0x8        //< ISP
static const CamxLogGroup CamxLogGroupPProc         = (1 << 4);     /0x10       //< Post Processor
static const CamxLogGroup CamxLogGroupImgLib        = (1 << 5);     /0x20       //< Image Lib
static const CamxLogGroup CamxLogGroupCPP           = (1 << 6);     /0x40       //< CPP
static const CamxLogGroup CamxLogGroupHAL           = (1 << 7);     /0x80       //< HAL
static const CamxLogGroup CamxLogGroupJPEG          = (1 << 8);     /0x100      //< JPEG
static const CamxLogGroup CamxLogGroupStats         = (1 << 9);     /0x200      //< Stats
static const CamxLogGroup CamxLogGroupCSL           = (1 << 10);    /0x400      //< CSL
static const CamxLogGroup CamxLogGroupApp           = (1 << 11);    /0x800      //< Application
static const CamxLogGroup CamxLogGroupUtils         = (1 << 12);    /0x1000     //< Utilities
static const CamxLogGroup CamxLogGroupSync          = (1 << 13);    /0x2000     //< Sync
static const CamxLogGroup CamxLogGroupMemSpy        = (1 << 14);    /0x4000     //< MemSpy
static const CamxLogGroup CamxLogGroupAssert        = (1 << 15);    /0x8000     //< Asserts
static const CamxLogGroup CamxLogGroupCore          = (1 << 16);    /0x10000    //< Core
static const CamxLogGroup CamxLogGroupHWL           = (1 << 17);    /0x20000    //< HWL
static const CamxLogGroup CamxLogGroupChi           = (1 << 18);    /0x40000    //< CHI
static const CamxLogGroup CamxLogGroupDRQ           = (1 << 19);    /0x80000    //< DRQ
static const CamxLogGroup CamxLogGroupFD            = (1 << 20);    /0x100000   //< FD
static const CamxLogGroup CamxLogGroupIQMod         = (1 << 21);    /0x200000   //< IQ module
static const CamxLogGroup CamxLogGroupLRME          = (1 << 22);    /0x400000   //< LRME
static const CamxLogGroup CamxLogGroupNCS           = (1 << 23);    /0x800000   //< NCS
static const CamxLogGroup CamxLogGroupMeta          = (1 << 24);    /0x1000000  //< Metadata
static const CamxLogGroup CamxLogGroupAEC           = (1 << 25);    /0x2000000  //< AEC
static const CamxLogGroup CamxLogGroupAWB           = (1 << 26);    /0x4000000  //< AWB
static const CamxLogGroup CamxLogGroupAF            = (1 << 27);    /0x8000000  //< AF

如果打开不同group 的log,那么修改对应的值即可。
比如:
单独打开 CSL HAL Sensor CHI 三组Info Log Mask

               CHI       CSL  HAL  Sensor  
 0    0    0    4    0    4    8    2  =0x40482
0000 0000 0000 0100 0000 0100 1000 0010

logWarningMask=0x00040482
logWarningMask=0x40482
此时log mask 可以使用上面两种,注意,前面的0可以省略,后面的0不可以省略。

比如:
打开所有的 Verbose Log Mask
0xFFFFFFFF 打开所有的log
logVerboseMask=0xFFFFFFFF

1.4 Camx log 打印的标准格式:

CamX: [][] :

eg:

04-25 1629.192  1014  1314 I CamX    : [CONFIG][HAL    ] camxhal3.cpp:552 open() HalOp: Begin OPEN, logicalCameraId: 0, cameraId: 0

二、Camx KMD log Debug

2.1.kernel log 配置文件

kernel log 配置文件路径如下:
/sys/module/cam_debug_util/parameters/debug_mdl

2.2 Camx KMD log Group

Camx KMD log控制采用32位二进制数值进行控制开关。
0000 0000 0000 0000 0000 0000 0000 0000

Camx KMD Log Group 举例如下:

#define CAM_CDM        (1 << 0)    /0x1      //Camera 数据传输 Camera data mover
#define CAM_CORE       (1 << 1)    /0x2 
#define CAM_CPAS       (1 << 2)    /0x4  //Camera 外设  Camera peripherals and support
#define CAM_ISP        (1 << 3)    /0x8  //图像信号处理器 Image single processer
#define CAM_CRM        (1 << 4)    /0x10     //Camera 请求管理 Camera request manager
#define CAM_SENSOR     (1 << 5)    /0x20    
#define CAM_SMMU       (1 << 6)    /0x40     //共享内存管理单元 Shared Memory management unit
#define CAM_SYNC       (1 << 7)    /0x80    
#define CAM_ICP        (1 << 8)    /0x100    //图像控制处理器 Image control processer
#define CAM_JPEG       (1 << 9)    /0x200   
#define CAM_FD         (1 << 10)   /0x400   
#define CAM_LRME       (1 << 11)   /0x800    //低运动估算 Low reolution motion estiamtion
#define CAM_FLASH      (1 << 12)   /0x1000  
#define CAM_ACTUATOR   (1 << 13)   /0x2000  
#define CAM_CCI        (1 << 14)   /0x4000    //camera 控制接口 Camera control interface eg:i2c gpio
#define CAM_CSIPHY     (1 << 15)   /0x8000    //Camera 串口处理接口 Camera serial interface eg: MIPI
#define CAM_EEPROM     (1 << 16)   /0x10000
#define CAM_UTIL       (1 << 17)   /0x20000
#define CAM_HFI        (1 << 18)   /0x40000  //Camera 固件接口 Host-firmware interface
#define CAM_CTXT       (1 << 19)   /0x80000
#define CAM_OIS        (1 << 20)   /0x100000
#define CAM_RES        (1 << 21)   /0x200000  //Camera shared resource API
#define CAM_MEM        (1 << 22)   /0x400000

/* CAM_IRQ_CTRL: For events in irq controller */
#define CAM_IRQ_CTRL   (1 << 23)   /0x800000

/* CAM_REQ: Tracks a request submitted to KMD */
#define CAM_REQ        (1 << 24)   /0x1000000

/* CAM_PERF: Used for performance (clock, BW etc) logs */
#define CAM_PERF       (1 << 25)   /0x2000000
#define CAM_CUSTOM     (1 << 26)   /0x4000000
#define CAM_PRESIL     (1 << 27)   /0x8000000

比如:
打开 CAM_ISP CAM_SENSOR CAM_ICP

                       CAM_ICP  CAM_SENSOR  CAM_ISP
 0    0    0    0    0    1       2           8     = 0x128
0000 0000 0000 0000 0000 0001    0010        1000 

adb 调试命令如下

adb root
adb remount
adb shell “echo 0x128 > /sys/module/cam_debug_util/parameters/debug_mdl”
adb shell cat /proc/kmsg > name_of_kmd_logs.txt
2.3 更多kernel log

需要参考 80-p9301-61_p_qualcomm_spectra_linux_camera_debugging_user_guide.pdf 这个文档

三、常用缩写解释

部分camera 缩写请参考下面表格

缩写 全称 备注
UMD User Mode Driver 用户模式驱动
KMD Kernel Mode Driver 内核模式驱动
IFE Image Front End 图片前端处理
TFE Thin Front End Thin 前端
IPE Image Processing Engine 图片处理引擎
ISP Image Singal Processor 图像信号处理器
CCI Camera control interface Camera 控制接口
CSI Camera Serial interface Camera 序列话接口
CSID Camera Serial interface Decoder Camera 序列话接口解码器

四、参考文献

1.80-p9301-61_p_qualcomm_spectra_linux_camera_debugging_user_guide.pdf

2.腾讯文档】Camera学习知识库https://docs.qq.com/doc/DSWZ6dUlNemtUWndv



声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 高通
    +关注

    关注

    76

    文章

    7166

    浏览量

    187897
  • Camera
    +关注

    关注

    0

    文章

    77

    浏览量

    20557

原文标题:高通Camera Log Debug

文章出处:【微信号:哆啦安全,微信公众号:哆啦安全】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    运行camera_application 时UART 不能打印log

    打印log了。应该是BoostPacker 把串口占用了, 如果我想打印log 该在pinmux怎么配置UART,又不影响Camera 运行?
    发表于 06-24 02:54

    总结调试过程中常见的LOG的抓取办法

    可以做任何debug的事情,有通代码的兄弟可以在\AMSS\products \76XX\tools\debug目录下找到smemlog.cmm和smem_log.pl这两个文件,可
    发表于 09-28 11:53

    请问GUI_DEBUG_LOG是干什么的?

    在BUTTON。C中的 BUTTON_Callback函数内GUI_DEBUG_LOG("BUTTON: _BUTTON_Callback(WM_PAINT)\n");这句
    发表于 05-30 02:30

    请问debug.log这个文件路径哪里找?

    按照破解步骤进行,到License Server Data 这一步出问题,Host Name更改没问题,但是Log File 没有找到debug.log,接下来提示:StartService
    发表于 06-28 05:35

    RK3399 Android 7.1系统JNI层使用C/C++输出Log

    ;lt;utils/Log.h>fun(){ALOGE("debug log");}如果需要带LOG TAG, 那么就要按如下
    发表于 11-14 18:00

    一文简析JNI层使用C/C++需要输出Log

    ;lt;utils/Log.h>fun(){ALOGE("debug log");}如果需要带LOG TAG, 那么就要按如下
    发表于 11-22 17:59

    Camera Preview测试用例

    (savedInstanceState); setContentView(R.layout.camera_preview); Log.i(TAG, "camera number: "
    发表于 11-23 17:01

    Camera Preview测试用例说明

    (savedInstanceState); setContentView(R.layout.camera_preview); Log.i(TAG, "camera number: "
    发表于 11-30 16:07

    LOG112,LOG2112,pdf(Precision Logarithmic and Log Ratio Ampli

    The LOG112 and LOG2112 are versatile integrated circuits that compute the logarithm or log ratio
    发表于 09-26 01:10 38次下载

    LOG101/LOG104偏流调零电路

    LOG101/LOG104偏流调零电路 如图所示为LOG101/LOG104的偏流调零电路。 LOG101/
    发表于 05-13 16:10 1401次阅读
    <b class='flag-5'>LOG</b>101/<b class='flag-5'>LOG</b>104偏流调零电路

    camera

    camera
    发表于 01-31 21:18 0次下载

    Win10桌面被曝随机创建 debug.log 文件:真实原因是Chromium惹的祸

    外媒Windows Latest报道,如果你在Windows 10上使用基于Chromium的浏览器(Chrome、Edge、Brave等),你应该可以发现一个名为debug.log 的神秘文件
    的头像 发表于 10-20 15:54 1825次阅读

    嵌入式log打印格式输出技巧

    嵌入式log打印格式输出技巧Log 信息格式条件编译可变参数宏C标准中一些预定义的宏格式输出16进制数组Log 信息格式参考目前主流嵌入式、安卓等输出方式:[日志级别] 文件名 : 日志信息
    发表于 10-20 21:06 5次下载
    嵌入式<b class='flag-5'>log</b>打印格式输出技巧

    如何在高通的QCC305x平台上打开library下的debug log

    内容简介 本文介绍如何在高通的QCC305x平台上打开library下的debug log,理论上该方法对QCC302x/3x等新平台同样适用。 测试工具 MDE
    的头像 发表于 11-05 14:30 2794次阅读
    如何在高通的QCC305x平台上打开library下的<b class='flag-5'>debug</b> <b class='flag-5'>log</b>

    有趣的UVM_LOG用法

    在项目中,一个TB通常是很多人一起开发的,大家或多或少都会往log中打印一些信息(message),方便自己debug
    的头像 发表于 06-29 10:58 404次阅读