ISP模块调试

Version 1.2


1. cat

  • 调试信息

    # cat /proc/mi_modules/mi_isp/mi_isp0
    

  • 调试信息分析

    记录当前ISP的使用状况以及相关属性、可以动态地获取到这些信息,方便调试和测试。

  • 参数说明

    参数 描述
    ISP Dev info DevId Isp Dev Id
    CreChnNum 当前Chn数量
    DevMask Stitch Dev Mask
    cmdq Cmdq指针
    En ISR中断使能标志
    Mode ISR中断模式
    num ISR ID
    VsyncCnt ISR ID
    FrameDoneCnt ISR Frame Done Cnt
    DropCnt ISR Frame Drop Cnt

    表19-2

    参数 描述
    ISP Chn info DevId Isp Dev Id
    ChnId Isp Chn Id
    start Chn Start Flag
    SnrId Bind sensorId
    Sync3A Sync 3A type
    chnNum Muti chn Num
    Crop Input Crop Size
    InSize Input Size
    pixel Input pixel format
    Stride Input Buffer Stride
    Atom 底层拿住buffer数量
    Atom0 释放buffer后底层没有buffer数量
    Rot Rotation 角度
    bMirror/Flip 水平/竖直 翻转
    3DNRLevel 3DNR Level
    HdrMode HDR mode
    PreCnt/EnqCnt/BarCnt
    /checkin/checkout/DeqCnt/DropCnt
    Callback 接口执行次数
    EnqOTNull Enq时OutBuffer 为Null次数统计
    OutPut Port info DevId Isp Dev Id
    ChnId Plane id/td>
    PortID Port Id
    Bindtype 与后级绑定模式
    Enable Port enable flag
    Pixel Port output pixel format
    PortCrop output Crop Size
    Stride Output Stride
    GetCnt 尝试获取OutPut buffer数量
    Failcnt 获取OutPut buffer失败数量
    FinishCnt 处理完OutPut buffer 数量
    fps Output port frame rate


2. Echo

# echo help > /proc/mi_modules/mi_isp/mi_isp0

Echo help 查看可用命令

功能 打印所有channel 锁的使用function 和line和 time
命令 echo debugmutex > /proc/mi_modules/mi_isp/mi_isp0
参数说明
举例
功能 Stop 指定channel
命令 echo stopchnl [ChnID] [ON/OFF] > /proc/mi_modules/mi_isp/mi_isp0
参数说明 [ChnId] :通道号
[ON/OFF]
ON:stop chn
OFF:start chn
举例 echo stopchnl 0 ON > /proc/mi_modules/mi_isp/mi_isp0
功能 Dump选定channel的output数据,并保存在/path路径下
命令 echo dumptaskfile [chnid, Cnt, /path/, bOnlyDumpResChange, bdumpport] > /proc/mi_modules/mi_isp/mi_isp0
参数说明 Chnid: channel id
Cnt: dump 数量
Path: 存放dump出来文件的路径
bOnlyDumpResChange: 切换分辨率时可能产生花图,dump命令和切分辨率操作不好配合,可以先设置该参数, 然后切换分辨率, 当程序识别后会dump分辨率变化后的buffer。 (非必选参数)
Bdumpport: 只dump 某一个portid, 默认是dump 所有在输出的port。 (非必选参数)
举例 echo dumptaskfile 0 1 /mnt > /proc/mi_modules/mi_isp/mi_isp0
功能 设置Dev的atomvalue
命令 echo setatom [AtomValue] > /proc/mi_modules/mi_isp/mi_isp0
参数说明 AtomValue: input realtime mode下Driver 最大持有buffer 数量
举例 echo setatom 3 > /proc/mi_modules/mi_isp/mi_isp0
注意:有时候底层卡住,可以尝试增大该atom,加塞一张buffer 给driver,重新trig,看是否可以恢复,或者掉帧的时候,加大是否可以满帧。
功能 清除指定channel port的input/output/done buffer
命令 echo clearbuf [chnid, portid bClearInput, bclearoutput, bcleardonebuff] > /proc/mi_modules/mi_isp/mi_isp0
参数说明 Chnid: channel id
Portid: port id
bClearInput: 清除input的buffer
bclearoutput: 清除output的buffer
bcleardonebuff: 清除done的buffer
举例 echo clearbuf 0 0 1 0 0 > /proc/mi_modules/mi_isp/mi_isp0
功能 设置debug level
命令 echo debuglv [level] >/proc/mi_modules/mi_isp/mi_isp0
echo debuglv [chnid][level] >/proc/mi_modules/mi_isp/mi_isp0
参数说明 Chnid: channel id
Level:
(3) 单个level参数时: 1:isp api,2:flow,4:check irq done
(4) 两个参数时: 1:check buffer,2:check loop,4:check frame pts,8:check fence done,16:check func time,32:check sidebandmsg,64:check zoominfo
举例 echo debuglv 4 > /proc/mi_modules/mi_isp/mi_isp0 //打开check irq done 相关的MI打印
echo debuglv 0 3 > /proc/mi_modules/mi_isp/mi_isp0 //打开channel0 level3的打印,打印buffer info和loop info
功能 主动drop frame 数量
命令 echo skipframe [chnid, skipnum] > /proc/mi_modules/mi_isp/mi_isp0
参数说明 Chnid: channel id
skipnum: drop frame count
举例 echo skipframe 0 60 > /proc/mi_modules/mi_isp/mi_isp0
功能 保护outputport buffer
命令 echo protectport [chnid portid clientid ben] > /proc/mi_modules/mi_isp/mi_isp0
参数说明 Chnid: channel id
Portid: port id
Clientid: isp:0x23, LDC:0x0e, scl(0,1,2):0x19, 0x1c, 0x1d
ben: 使能
举例 echo protectport 0 0 0x23 1 > /proc/mi_modules/mi_isp/mi_isp0 //保护channel0 pass0 port0 的isp
功能 消耗Bind Q中的buffer
命令 echo clearbindq [chnid bclear] > /proc/mi_modules/mi_isp/mi_isp0
参数说明 Chnid: channel id
bclear: 是否clear
举例 echo clearbindq 0 0 1 > /proc/mi_modules/mi_isp/mi_isp0 //clear channel0 pass0 bindQ
消耗Bind Q中的buffer。
scl BindQ塞满导致前端无法获取buffer, 判断scl是否过慢。 清空bindQ,观察它是否还会累加, 如果是则scl过慢, 如果不,说明是之前的异常没有消耗掉。
功能 设置打印帧率,低于该值打印出来
命令 echo fpsth [chnid portid fpsint fpsfloat] > /proc/mi_modules/mi_isp/mi_isp0
参数说明 Chnid: channel id
Portid: port id
fpsint: 帧率整数位
fpsfloat: 帧率小数位
举例 echo fpsth 0 0 30 30 > /proc/mi_modules/mi_isp/mi_isp0 // channel0 port0中小于30.30的fps打印出来
功能 设置port是否enable
命令 echo enableport [chnid, portid, bEn] > /proc/mi_modules/mi_isp/mi_isp0
参数说明 Chnid: channel id
Portid: port id
bEn: 1/0
举例 echo enableport 0 0 1 > /proc/mi_modules/mi_isp/mi_isp0
参数说明 AtomValue: input realtime mode 下 Driver 最大持有 buffer 数量
举例 echo dumptaskfile 0 1 /mnt > /proc/mi_modules/mi_isp/mi_isp0