|
- open_framebuffer(char* ptr,fb_v4l *vd)
- {
- int fbfd ,screensize;
- fbfd = open(ptr,O_RDWR);
- if(fbfd<0)
- {
- printf("Error:cannot oprn framebuffer devic%x \n",fbfd);
- return ERR_FRAME_BUFFER;
- }
- vd->fbfd;//save fbfd to vd
- //get framebuffer fixed info
- if(ioctl(fbfd,FBIOGET_FSCREENINFO,&vd->finfo))
- {
- printf("Error reading fixed informtion\n");
- return ERR_FRAME_BUFFER;
- }
- //get framebuffer variable info
- if(ioctl(fbfd,FBIOGET_VSCREENINFO,&vd->vinfo))
- {
- printf("Error reading variable information.\n");
- }
- //get the screen size
- 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);
- screensize = vd->vinfo.xres*vd->vinfo.yres*vd->vinfo.bits_per_pixel/8;
- //mmap framebuffer to memory
- vd->fd = (char*)mmap(0,screensize,PROT_READ|PROT_WRITE,MAP_SHARED,fbfd,0);
- 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;
- }
复制代码 运行到The framebuffer device was mapped to memory successfully.然后提示段错误
真心不知道错在哪里了 |
|