免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7162 | 回复: 0
打印 上一主题 下一主题

[请教]驱动程序中IO内存的mmap问题 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2010-04-06 16:24 |显示全部楼层
回复 1# idolspawn


    楼主,你好,我现在做视频采集也碰到这种错误提示,下面是我的代码:
//map the buffers between driver and approcation
unsigned int i;
for (i = 0; i < reqbuf.count; i++)
{
        struct v4l2_buffer buffer;
        CLEAR(buffer);
        buffer.type = reqbuf.type;
        buffer.memory = V4L2_MEMORY_MMAP;
        buffer.index = i;
//        buffer.length =  img_width*img_height*2;        

      if (ioctl (fd, VIDIOC_QUERYBUF, &buffer)==-1)
           printf (" querybuf failed\n");
       else printf ("Querybuf successlly!\n");
         
//          map_start_buf = calloc(1,sizeof(buffer.length));
//          if(!map_start_buf) printf("Calloc map_start_buf error\n");
         buffers.length = buffer.length; /* remember for munmap() */
         buffers.start = mmap (NULL, buffer.length+100,PROT_READ | PROT_WRITE,MAP_PRIVATE,fd, buffer.m.offset);
//         printf("%d\n",errno);
        if (MAP_FAILED == buffers.start)
//            printf ( " Mmap failed\n");
               printf("%s,%s\n",   errno , strerror(errno));
//                exit(errno);
        else printf ("Mmap it successlly!\n");

  }//end of for

我单步调试后出现
(gdb) p buffers[0]
$1 = {start = 0xb7f45000 <Address 0xb7f45000 out of bounds>, length = 153600}
请问楼主,你是怎样解决这个问题的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP