帧率查看
方式一: dv_fps.sh脚本,运行时,脚本会自动抓取帧率信息。
dv_fps.sh为视频通路帧率监测调试工具,支持vin(cim)、isp、ynr、pym、gdc、stitch、idu等模块的帧率监控。
ich表示输入帧率och表示输出帧率
方式二:cat /sys/class/vps/flow/fps, 查看瞬态帧率
查看当前通路状态
cat /sys/class/vps/flow/path_stat
含义解释
通路状态
active 表示通路正在使用
- inactive 表示通路已经停止(释放)
S0 表示数据通路0,一般与配置json中的pipeline id对应
绑定方式
otf 绑定方式,表示模块硬件直连,不需要下DDR
m2m 绑定方式,表示模块之间需要下DDR
模块名
vin1 指mipi RX1、cim1、lpwm等模块的硬件抽象合集
C0 指第几个软件实例,如vin 有四个通道实例,那么就有C0-C3, pym、gdc等就是分时复用的软件ctx实例
查看硬件IP负载
通过统计一段时间内IP真正工作的时间来计算IP的loading,以cat调用的sys接口为时间点,统计采样一段时间内IP的负载。
使用方法
支持负载查看的硬件IP有:isp\pym\gdc\stitch
查看丢帧信息
hw drop 表示出现硬件报错的丢帧
sw drop 表示由于软件异常导致的丢帧,如长时间没有拿数据帧,导致无输出buf可用,此时软件驱动则会进行丢帧
user drop 表示由于用户主动调用导致的丢帧,如在使用pym的condition接口时,用户主动要求丢弃老帧拿最新帧,此时软件驱动会按照要求进行丢帧,这部分丢帧则会划分为user drop
通路数据延迟查看
通路buf信息查看
cid 0表示输入、cid 8 表示输出
PRO 表示正常处理的buf数量,通常为1 or 0
COM 表示处理完成没有被消费者使用的buf数量,用户拿走后会转入USED
USED 表示用户拿走的buf数
PS :根据buf状态可以排查一些常见的获取数据失败、丢帧等问题,应用层获取数据失败时会打印buf 状态
场景1:获取buf失败,输出buf状态全部为USED
输出buf都处于USED 表示所有buf都被消费者(用户或者其他模块)拿走了,此时由于模块没有输出buf,会进行sw丢帧,同时如果这个状态持续一段时间也就导致拿buf失败。
场景2: 获取buf失败,输出buf状态为一帧PRO
输出buf 处于PRO表示这个buf正在被处理,如果出现拿buf失败(拿帧超时),那么大概表示数据流在此模块断了,此时可以查看下驱动dmesg日志,查看是否存在相应模块的错误日志
场景3: 获取buf失败,输入buf全部处于REQ、FREE状态,输出buf全部处于REQ
输入buf 全部处于FREE状态,表明模块处于初始化状态,没有处理一帧图像,同时根据输入通道的状态可以判定,前几模块或者用户没有给该模块数据流。大多出现在开流失败或者回灌场景中用户没有给数剧流的情况。