公司需要利用友善之臂的210平台做一个产品,我们的产品需要模拟视频采集,由于老版已停产,无法使用板载的设备,我们采购的新版210开发平台,准备基于USB接口进入视频采集.
在网上采购了EasyCap dc 60+ USB视频采集卡.由于采集卡的芯片是em2861系列,在tiny210带的linux3.0.8的目录下找到了em28xx模块驱动,进行编译,经过一番折腾,设备驱动都已安装完成.
开始基于V4L2接口进行程序开发.
写了一个简单的测试程序:像V4L2的初始化类的函数都可以执行成功,包括VIDIOC_STREAMON操作都成功了,但调用VIDIOC_DQBUF进行捕捉时却一直阻塞不返回.
跟踪发现是停在videobuf-core.c文件中的videobuf_waiton函数处。
把同样的程序拿到ubuntu和suse(内核为:2.6)上都可以正常执行。包括在ubuntu上使用tvtime可以显示视频,说明设备完好。测试程序也可以正常工作。
我怀疑还是驱动有问题,搞不明白友善的内核是3.0.8的,难道还不如suse的2.6的驱动新???这个问题已经折腾了好几天了,项目时间太紧了,实在没办法只能考虑换平台试试了。
请高手指点。