OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3585|回复: 0

ov2640自己编写的应用程序报错

[复制链接]

6

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2019-7-28
在线时间
33 小时
发表于 2022-6-15 23:04:50 | 显示全部楼层 |阅读模式
10金钱
按照V4L2逻辑编写ov2640的应用程序
打开摄像头->获取驱动信息->设置图像格式->申请帧缓冲区
申请缓冲区时报错,类似的代码如下,原子哥提供的出厂代码包含一个ov2640_camera,想请教下DMA这部分的逻辑
[ 1042.549695] mx6s-csi 21c4000.csi: dma_alloc_coherent of size 0 failed

  struct v4l2_requestbuffers req;
  req.count = 4;
  req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
  req.memory = V4L2_MEMORY_MMAP;
  ioctl(fd,VIDIOC_REQBUFS,&req);
  struct buffer
  {
    void *start;
    unsigned int length;
  }*buffers;
  buffers = (struct buffer*)calloc (req.count, sizeof(*buffers));
  unsigned int n_buffers = 0;
  for(n_buffers = 0; n_buffers < req.count; ++n_buffers)
{
    struct v4l2_buffer buf;
    memset(&buf,0,sizeof(buf));
    buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
    buf.memory = V4L2_MEMORY_MMAP;
    buf.index = n_buffers;
    if(ioctl(fd,VIDIOC_QUERYBUF,&buf) == -1)
        {
      printf("lzj---------_>>>>>>error\n");
      close(fd);
      exit(-1);
    }
    buffers[n_buffers].length = buf.length;
    buffers[n_buffers].start = mmap(NULL,buf.length,PROT_READ|PROT_WRITE,MAP_SHARED,fd,buf.m.offset);



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 10:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表