Firefly开源社区

如何在linux下,实现ov5640之类的cmos摄像头的驱动?

129

积分

0

威望

0

贡献

技术小白

积分
129
发表于 2016-7-18 11:31:39     
本帖最后由 点缀0001 于 2016-7-28 11:16 编辑

使用5.1系统的kernel,rk3288-reload开发板,在linux下开发

使用内核自带的摄像头驱动,写了一个测试程序,但是把申请的缓冲区放入队列时失败了,查找了原因,是在:

  1. for (i = 0; i < NB_BUFFER; i++) {
  2.     memset(&tV4l2Buf, 0, sizeof(struct v4l2_buffer));
  3.     tV4l2Buf.index = i;                              
  4.     tV4l2Buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;   
  5.     tV4l2Buf.memory = V4L2_MEMORY_MMAP;
  6.     tV4l2Buf.flags = 0;
  7.     iRet = ioctl(v4l2_fd, VIDIOC_QUERYBUF, &tV4l2Buf);
  8.     if (iRet < 0) {
  9.         DWrite("Unable to query buffer.\n");
  10.         goto end;
  11.     }
  12.    
  13.     printf("length: 0x%x offset: 0x%x\n", tV4l2Buf.length, tV4l2Buf.m.offset);

  14.     pucVideoBuf[i] = (unsigned char *)mmap(0, /* start anywhere */
  15.               tV4l2Buf.length, PROT_READ | PROT_WRITE, MAP_SHARED, v4l2_fd,
  16.               tV4l2Buf.m.offset);
  17.     if (pucVideoBuf[i] == MAP_FAILED) {
  18.         DWrite("Unable to map buffer\n");        
  19.         goto end;
  20.     }
  21.     printf("length: 0x%x offset: 0x%x\n", tV4l2Buf.length, tV4l2Buf.m.offset);
  22. 打印出来的结果是:
  23. length: 0xeb000 offset: 0x0
  24. length: 0xeb000 offset: 0xeb000
  25. length: 0xeb000 offset: 0x1d6000
  26. length: 0xeb000 offset: 0x2c1000

  27. 但是在 rk30_camera_oneframe.c 驱动的 rk_videobuf_prepare 函数里面不允许 videobuf 的偏移值为 0 ,
  28. if ((bytes_per_line < 0) || (vb->boff == 0))
  29.         return -EINVAL;           // 如果为0,就返回一个无效值

复制代码
导致后面无法把申请的缓冲区放入队列

rk30_camera_oneframe.c  不支持linux下的摄像头驱动吗?

回复

使用道具 举报

32

积分

0

威望

0

贡献

游客

积分
32
发表于 2017-5-17 08:40:45     
问下班主,你有解决这问题的吗?,我目前也是出现这个。。还有我的也谢了一个测试程序,也现在不支持MMAP,空缓存加载不进内核的缓存队列
回复

使用道具 举报

118

积分

0

威望

0

贡献

技术小白

积分
118
发表于 2017-10-25 19:12:11     
楼主,您好,我也遇到类似问题解决了吗?
回复

使用道具 举报

118

积分

0

威望

0

贡献

技术小白

积分
118
发表于 2017-10-25 19:12:35     
13242771120 发表于 2017-5-17 08:40
问下班主,你有解决这问题的吗?,我目前也是出现这个。。还有我的也谢了一个测试程序,也现在不支持MMAP, ...

您好,您解决了吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表