花屏问题分析
1. 判断ISP 输出是否正常¶
正常情况frame cnt 和Done Cnt 最多相差一个, 如果有累计很多,说明isp这边只收到vsync 并没有实际data。
如上图。
如果isp 输出cnt 足够,再通过scl pattern判断isp 输出data 内容是否正常。
echo 2 > /sys/class/mstar/mscl/ptgen
pattern 会将isp 输出数据换成pattern 数据, 如果pattern 正常, 那说明isp 输出内容有问题。
2. 判断Vif 输出是否正常¶
如果Vif 是frame mode
echo dump chnid portid /path > /proc/mi_modules/mi_vif/mi_vif0
如果是bayer 10/12 bit格式需要通过转换工具专成16bit 通过7 yuv观察画面。
10/12指sensor bit, 如果vif这边也是整张frame 都是花的,怀疑vif 这边没有收到sensor 数据。
如果这里出现有为0的情况说明vif 这边也没有收到data。
补充conv工具使用方法
-
cat /proc/mi_modules/mi_sensor/mi_sensor0
可以看到使用的是307 sensor ID和Prec是RG 12BPP
-
Dump VIF文件
echo dump 0 0 /mnt > /proc/mi_modules/mi_vif/mi_vif0
mi_vif_1920x1080_Pixel43_1677941967.raw可以通过dump文件中告知的pixel计算得到bayerID和bitMode
对应函数_MI_VPE_TransPixelFormatToBayerId
Pixel 43
(43-19)/12=2 peBitMode 12BPP
(43-19)%12=0 peBayerId RG
-
然后在服务器上通过命令
./conv12 mi_vif_1920x1080_Pixel43_1677941967.raw out2.raw
转换得到16bit的输出
3. 判断sensor 数据是否正常¶
echo devid > /sys/class/mstar/csi0/csi_dbg_mask cat /sys/class/mstar/csi0/csi_ints
正常情况下都为0, 这里反映数据协议是否有问题, 如果有累加请sensor driver和硬件一起量一下信号质量或者clock是否有问题。