S3C6410 FrameBuffer编程(三) --- 向LCD中写入数据

1.自定义屏幕信息结构体

struct screen_info{


        unsigned int smem_size;   //屏幕缓冲区所占的空间大小
        unsigned int line_size;      //一行所占的空间大小
        unsigned int xres;              //屏幕的宽
        unsigned int yres;              //屏幕的高
        unsigned int bits_per_pixel;  //每个像素所占的位数

};

struct screen_info h43_info;


2.向LCD写入数据的一般步骤

(1)获取屏幕信息(见FrameBuffer编程(一)),并把信息存入自定义结构。

(2)地址映射

   char *fpb;

   size_t screen_size;

   size_t screen_size;
   long int location;

   screen_size = h43_info.smem_size/2;  //二级缓存技术
   location = h43_info.line_size * y + h43_info.bits_per_pixel / 8 * x;

   fpb = (char *)mmap(NULL,screen_size,PROT_READ | PROT_WRITE,MAP_SHARED,fb,0);
   if((int)fpb < 0)
   {
         printf("mmap fail!\n");
         return -1;
   }

     

(3)给像素点赋值,色彩模式:565

        *(fpb + location) = gb;

        *(fpb + location + 1) = rg;


  (4)释放地址映射

          munmap(fpb,screen_size);


你可能感兴趣的:(S3C6410 FrameBuffer编程(三) --- 向LCD中写入数据)