相机运行一段时间后出现阻塞
-
@lin 没有释放流是什么意思
-
@veye_xumm ioctl(m_fd, VIDIOC_STREAMOFF, &type)没有执行这个,有影响吗?
-
@lin 没有影响。
你可以看看dmesg 有没有报错? 或者用我们wiki上的例子跑跑看看。 -
@veye_xumm 重复采集图像到一定次数后,阻塞了,然后我结束程序用官方示例执行也是阻塞的?
我在采集图像中添加了select 报错select timeout,并且执行打印信息到333,后面就阻塞了,没有打印444
-
@lin
0234这个相机的图像是传感器直接输出,应该不是硬件的问题。初步我怀疑还是软件驱动的问题或者是你移植出来的。
你这样测试一下:
系统重新上电,然后执行这个命令,长期跑跑,看看会不会卡死。v4l2-ctl -d /dev/video[yournodeindex] --set-fmt-video=width=1920,height=1200,pixelformat=GREY --stream-mmap --stream-count=-1 --stream-to=/dev/null
如果卡死了,用另一个终端登录系统,执行dmesg看看有什么报错没有?
-
@veye_xumm 现在执行这个命令五个小时左右,没有出现中断现象,但是我运行自己写的还是报错select timeout 从而导致执行到这个函数报错,可能是什么原因?
dmesg 内核打印信息:
-
@lin
你可以参考一下这个程序的代码,尤其是内存使用相关的内容。git clone git://git.ideasonboard.org/yavta.git
-
@veye_xumm 请问,内核打印这个信息,可能是什么原因rkisp0-vir2: rkisp_stream_stop id:1 timeout
当相机节点select timeout时,我让他重新重新初始化打开设备好像也是不行的? -
@lin 如果相机设置为硬触发,但是由于线程运行速度的影响导致没有接收到硬触发信号,会不会导致上面描述的现象?
-
@lin said in 相机运行一段时间后出现阻塞:
请问,内核打印这个信息,可能是什么原因rkisp0-vir2: rkisp_stream_stop id:1 timeout
当相机节点select timeout时,我让他重新重新初始化打开设备好像也是不行的?这个rkisp的驱动代码是rockchip原厂写的。其逻辑我不是特别清楚。
@lin said in 相机运行一段时间后出现阻塞:
如果相机设置为硬触发,但是由于线程运行速度的影响导致没有接收到硬触发信号,会不会导致上面描述的现象?
不会的。应该还是buffer使用的问题。
-
@veye_xumm 但是我用流模式调用我写的代码没有出现阻塞
-
@lin 相机本身触发信号出图和流模式出图,对你的程序接收图像而言,没有区别啊! 你的系统架构是怎样的最好一次说清楚。
-
@veye_xumm 我是外部触发相机的,通过外部dlp每秒触发40次,开两个线程两个相机分别采集20张图像数据
-
@lin 相机触发模式出图和流模式出图,对你的程序接收图像而言,没有区别啊!