主题 : 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: 52917
精华: 0
发帖: 117
金钱: 585 两
威望: 117 点
贡献值: 0 点
综合积分: 234 分
注册时间: 2011-07-28
最后登录: 2015-08-27
1楼  发表于: 2011-12-16 10:05
    struct v4l2_format format;
    memset(&format, 0, sizeof(format));

    format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
    format.fmt.pix.width = 320;
    format.fmt.pix.height = 240;
    format.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
    format.fmt.pix.field = V4L2_FIELD_INTERLACED;
    format.fmt.pix.priv = 1;
加上这个参数:
    format.fmt.pix.priv = 1;
就可以了.返回的length就不为0了