RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

高通Camera Log Debug

哆啦安全 ? 來(lái)源:哆啦安全 ? 2023-07-04 09:54 ? 次閱讀

經(jīng)典好文推薦,通過(guò)閱讀本文,您將收獲以下知識(shí)點(diǎn):

一、Camx UMD Log Debug
二、Camx KMD log Debug
三、常用縮寫解釋
四、參考文獻(xiàn)

一、Camx UMD Log Debug

1.1 兩種方式設(shè)置camx UMD Log
  1. /vendor/etc/camera/camxoverridesettings.txt
    設(shè)置完需要重啟后才可以生效

  2. adb shell setprop
    設(shè)置完后生效,重啟后失效

1.2 Camx UMD log 等級(jí)

Camx log 等級(jí)包含如下內(nèi)容:

Log 等級(jí) 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
所有l(wèi)og打開(kāi) logkey eg :logWarningMask Logvalue eg: 0xFFFFFFFF
1.3 Camx UMD log Group

Camx UMD log Group 控制主要采用32位二進(jìn)制數(shù)值進(jìn)行控制開(kāi)關(guān)。
比如關(guān)閉全為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

如果打開(kāi)不同group 的log,那么修改對(duì)應(yīng)的值即可。
比如:
單獨(dú)打開(kāi) 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
此時(shí)log mask 可以使用上面兩種,注意,前面的0可以省略,后面的0不可以省略。

比如:
打開(kāi)所有的 Verbose Log Mask
0xFFFFFFFF 打開(kāi)所有的log
logVerboseMask=0xFFFFFFFF

1.4 Camx log 打印的標(biāo)準(zhǔn)格式:

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位二進(jìn)制數(shù)值進(jìn)行控制開(kāi)關(guān)。
0000 0000 0000 0000 0000 0000 0000 0000

Camx KMD Log Group 舉例如下:

#define CAM_CDM        (1 << 0)    /0x1      //Camera 數(shù)據(jù)傳輸 Camera data mover
#define CAM_CORE       (1 << 1)    /0x2 
#define CAM_CPAS       (1 << 2)    /0x4  //Camera 外設(shè)  Camera peripherals and support
#define CAM_ISP        (1 << 3)    /0x8  //圖像信號(hào)處理器 Image single processer
#define CAM_CRM        (1 << 4)    /0x10     //Camera 請(qǐng)求管理 Camera request manager
#define CAM_SENSOR     (1 << 5)    /0x20    
#define CAM_SMMU       (1 << 6)    /0x40     //共享內(nèi)存管理單元 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    //低運(yùn)動(dòng)估算 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

比如:
打開(kāi) 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 調(diào)試命令如下

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 這個(gè)文檔

三、常用縮寫解釋

部分camera 縮寫請(qǐng)參考下面表格

縮寫 全稱 備注
UMD User Mode Driver 用戶模式驅(qū)動(dòng)
KMD Kernel Mode Driver 內(nèi)核模式驅(qū)動(dòng)
IFE Image Front End 圖片前端處理
TFE Thin Front End Thin 前端
IPE Image Processing Engine 圖片處理引擎
ISP Image Singal Processor 圖像信號(hào)處理器
CCI Camera control interface Camera 控制接口
CSI Camera Serial interface Camera 序列話接口
CSID Camera Serial interface Decoder Camera 序列話接口解碼器

四、參考文獻(xiàn)

1.80-p9301-61_p_qualcomm_spectra_linux_camera_debugging_user_guide.pdf

2.騰訊文檔】Camera學(xué)習(xí)知識(shí)庫(kù)https://docs.qq.com/doc/DSWZ6dUlNemtUWndv



聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 高通
    +關(guān)注

    關(guān)注

    76

    文章

    7459

    瀏覽量

    190556
  • Camera
    +關(guān)注

    關(guān)注

    0

    文章

    79

    瀏覽量

    20807

原文標(biāo)題:高通Camera Log Debug

文章出處:【微信號(hào):哆啦安全,微信公眾號(hào):哆啦安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    運(yùn)行camera_application 時(shí)UART 不能打印log

    打印log了。應(yīng)該是BoostPacker 把串口占用了, 如果我想打印log 該在pinmux怎么配置UART,又不影響Camera 運(yùn)行?
    發(fā)表于 06-24 02:54

    總結(jié)調(diào)試過(guò)程中常見(jiàn)的LOG的抓取辦法

    可以做任何debug的事情,有通代碼的兄弟可以在\AMSS\products \76XX\tools\debug目錄下找到smemlog.cmm和smem_log.pl這兩個(gè)文件,可
    發(fā)表于 09-28 11:53

    請(qǐng)問(wèn)GUI_DEBUG_LOG是干什么的?

    在BUTTON。C中的 BUTTON_Callback函數(shù)內(nèi)GUI_DEBUG_LOG("BUTTON: _BUTTON_Callback(WM_PAINT)\n");這句
    發(fā)表于 05-30 02:30

    請(qǐng)問(wèn)debug.log這個(gè)文件路徑哪里找?

    按照破解步驟進(jìn)行,到License Server Data 這一步出問(wèn)題,Host Name更改沒(méi)問(wèn)題,但是Log File 沒(méi)有找到debug.log,接下來(lái)提示:StartService
    發(fā)表于 06-28 05:35

    Camera Preview測(cè)試用例

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

    Camera Preview測(cè)試用例說(shuō)明

    (savedInstanceState); setContentView(R.layout.camera_preview); Log.i(TAG, "camera number: "
    發(fā)表于 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
    發(fā)表于 09-26 01:10 ?38次下載

    LOG101/LOG104偏流調(diào)零電路

    LOG101/LOG104偏流調(diào)零電路 如圖所示為LOG101/LOG104的偏流調(diào)零電路。 LOG101/
    發(fā)表于 05-13 16:10 ?1560次閱讀
    <b class='flag-5'>LOG</b>101/<b class='flag-5'>LOG</b>104偏流調(diào)零電路

    camera

    camera
    發(fā)表于 01-31 21:18 ?0次下載

    Win10桌面被曝隨機(jī)創(chuàng)建 debug.log 文件:真實(shí)原因是Chromium惹的禍

    外媒Windows Latest報(bào)道,如果你在Windows 10上使用基于Chromium的瀏覽器(Chrome、Edge、Brave等),你應(yīng)該可以發(fā)現(xiàn)一個(gè)名為debug.log 的神秘文件
    的頭像 發(fā)表于 10-20 15:54 ?2021次閱讀

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

    嵌入式log打印格式輸出技巧Log 信息格式條件編譯可變參數(shù)宏C標(biāo)準(zhǔn)中一些預(yù)定義的宏格式輸出16進(jìn)制數(shù)組Log 信息格式參考目前主流嵌入式、安卓等輸出方式:[日志級(jí)別] 文件名 : 日志信息例
    發(fā)表于 10-20 21:06 ?5次下載
    嵌入式<b class='flag-5'>log</b>打印格式輸出技巧

    如何在通的QCC305x平臺(tái)上打開(kāi)library下的debug log

    內(nèi)容簡(jiǎn)介 本文介紹如何在通的QCC305x平臺(tái)上打開(kāi)library下的debug log,理論上該方法對(duì)QCC302x/3x等新平臺(tái)同樣適用。 測(cè)試工具 MDE
    的頭像 發(fā)表于 11-05 14:30 ?3298次閱讀
    如何在<b class='flag-5'>高</b>通的QCC305x平臺(tái)上打開(kāi)library下的<b class='flag-5'>debug</b> <b class='flag-5'>log</b>

    log常用的命令

    1.去掉不想看的logdbgsw 1 02.log等級(jí)設(shè)置dbglv 03.防止MCU重啟logheartbeat 0
    發(fā)表于 12-14 18:46 ?0次下載
    <b class='flag-5'>log</b>常用的命令

    有趣的UVM_LOG用法

    在項(xiàng)目中,一個(gè)TB通常是很多人一起開(kāi)發(fā)的,大家或多或少都會(huì)往log中打印一些信息(message),方便自己debug。
    的頭像 發(fā)表于 06-29 10:58 ?796次閱讀

    有沒(méi)有辦法像debug RTL代碼一樣將UVM中變量拉到波形上看呢?

    我們常用的debug UVM的方法是通過(guò)打印log實(shí)現(xiàn)。有沒(méi)有辦法像 debug RTL代碼一樣將 UVM 中變量拉到波形上看呢?答案是有的,下面讓我們看看是怎么做到的。
    的頭像 發(fā)表于 06-29 15:14 ?1557次閱讀
    有沒(méi)有辦法像<b class='flag-5'>debug</b> RTL代碼一樣將UVM中變量拉到波形上看呢?
    RM新时代网站-首页