主题 : tiny6410+ cam130+2.6.38内核,如何应用内存映射的方式操作cam130 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 19251
精华: 0
发帖: 35
金钱: 180 两
威望: 36 点
贡献值: 0 点
综合积分: 70 分
注册时间: 2010-04-17
最后登录: 2016-06-12
楼主  发表于: 2011-04-26 14:38

 tiny6410+ cam130+2.6.38内核,如何应用内存映射的方式操作cam130

在2.6.28内核下对cam130进行操作,程序一点问题没有,可以正常采集摄像头数据,换到2.6.38这个版本的时候,驱动发生了变化,友善对于这个版本的cam130摄像头驱动不开源,找不到程序是哪里出错了,在执行ioctl(fd, VIDIOC_QUERYBUF, &dev.buffer)到这里时,返回小于0的值,错误提示说参数错误,不知道为什么会这样,有用过的吗?支个招
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
贡献值: 0 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
1楼  发表于: 2011-04-26 17:48
cam130...是USB摄像头?
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
贡献值: 0 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
2楼  发表于: 2011-04-27 13:56
烧友善提供的image, Qtopia下的摄像头测试程序, 应该能正常工作的
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
贡献值: 0 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
3楼  发表于: 2011-04-27 14:28
理论上, cmos摄像头的驱动是没有更改的
但是2.6.38与2.6.28的v4l部分有比较大的变化, 建议你先仔细看看最新v4l2的API
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
贡献值: 0 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
4楼  发表于: 2011-04-28 10:12
我看了28内核的代码, vidioc_querybuf没做什么特别的处理, 仅仅是检查v4l2_buffer的type和memory时会返回-EINVAL
建议你检查一下你的应用
另个, 你可以尝试一下在v4l2-ioctl.c的__video_do_ioctl中增加打印来调试, 同时还可以把参数v4l2_buffer的值打印出来看看
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
贡献值: 0 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
5楼  发表于: 2011-05-02 15:52
kernel的API也是改的挺频繁的, 比较的头痛