ISP模块调试
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/DropCntCallback 接口执行次数 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 |