|
为测试framebuffer驱动程序,写的测试程序:
int main(int argc,char * *argv)
{
int fbfd=0;
struct fb_var_screeninfo vinfo;
struct fb_fix_screeninfo finfo;
long int screensize=0;
unsigned char *fbp;
const unsigned char acLuigi[] = {...........................};
printf("test lcd now\n");
/*打开设备文件*/
fbfd=open("/dev/fb0",O_RDWR);
ioctl(fbfd,FBIOGET_FSCREENINFO,&finfo);
ioctl(fbfd,FBIOGET_VSCREENINFO,&vinfo);
printf("###lcd ictol worked normally###\n");
/*计算屏幕缓冲区大小*/
screensize=vinfo.xres*vinfo.yres*vinfo.bits_per_pixel/8;
printf("screensize=%d\n",screensize);
/*映射屏幕缓冲区到用户地址空间*/
fbp=(unsigned char *)mmap(0,screensize, PROT_READ | PROT_WRITE, MAP_SHARED, fbfd, 0);
printf("fbp=0x%x\n",fbp);
memset(fbp, 0, screensize);
/*通过fbp访问缓冲区,进行图形绘*/
printf("acLuigi[ ]=%d;sizeof(fbp)=%d\n",sizeof(acLuigi),sizeof(fbp));
memcpy(fbp,acLuigi,screensize);
printf("delay 2 min \n");
sleep(30);
munmap(fbp,screensize);//释放
close(fbfd);
return 0;
} |
|