欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

framebuffer m地图失败

更新时间: 2014-01-05 03:19:47 责任编辑: Author_N1

 

framebuffer mmap失败
        int fbfd,screensize;

// Open the file for reading and writing

fbfd = open( ptr, O_RDWR);  //   ptr为/dev/fb0

if (fbfd < 0) 

{

printf("Error: cannot open framebuffer device.%x\n",fbfd);

return ERR_FRAME_BUFFER;

}

printf("The framebuffer device was opened successfully.\n");



vd->fbfd = fbfd; // 保存打开FrameBuffer设备的句柄



// Get fixed screen information 获取FrameBuffer固定不变的信息

if (ioctl(fbfd, FBIOGET_FSCREENINFO, &vd->finfo)) 

{

printf("Error reading fixed information.\n");

return ERR_FRAME_BUFFER;

}



// Get variable screen information 获取FrameBuffer屏幕可变的信息

if (ioctl(fbfd, FBIOGET_VSCREENINFO, &vd->vinfo)) 

{

printf("Error reading variable information.\n");

return ERR_FRAME_BUFFER;

}



printf("%dx%d, %dbpp, xoffset=%d ,yoffset=%d \n", vd->vinfo.xres, vd->vinfo.yres, vd->vinfo.bits_per_pixel,vd->vinfo.xoffset,vd->vinfo.yoffset );



// Figure out the size of the screen in bytes

screensize = vd->vinfo.xres * vd->vinfo.yres * vd->vinfo.bits_per_pixel / 8;

printf("\nscreensize=%d\n",screensize );



// Map the device to memory

vd->fbp = (char *)mmap(0,screensizes,PROT_READ|PROT_WRITE,MAP_SHARED,fbfd,0);  // 影射Framebuffer设备到内存

printf("errno is: %d\n",errno);

if ((int)vd->fbp == -1) 

{

printf("Error: failed to map framebuffer device to memory.\n");

return ERR_FRAME_BUFFER;

}

printf("The framebuffer device was mapped to memory successfully.\n");

return  0;

结果如下 
root@embededsys-computer://work/nfsdir/rootfs# gcc -o video video.c
video.c: In function ‘udps_respon’:
video.c:418: warning: format not a string literal and no format arguments
root@embededsys-computer://work/nfsdir/rootfs# ./video
The framebuffer device was opened successfully.
640x480, 4bpp, xoffset=0 ,yoffset=0 

screensize=153600
errno is: 22
Error: failed to map framebuffer device to memory.

可我把vd->fbp = (char *)mmap(0,screensizes,PROT_READ|PROT_WRITE,MAP_SHARED,fbfd,0);screensizes改成10000后没有报错 我设置的太大了吗

--参考方法--
你可以把错误信息打出来看看
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:19:47
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20878/
本文WWW.DOC100.NET DOC100.NET版权所有。