Framebuffer简介
Framebuffer本意为帧缓冲, 是Linux为显示设备提供的一个接口,是把显存抽象后的一种设备,一个显存的大小,屏幕宽度*屏幕高度*每像素字节数。framebuffer是LCD对应的一中HAL(硬件抽象层),提供抽象的,统一的接口操作,用户不必关心硬件层是怎么实施的。这些都是由 Framebuffer设备驱动来完成的。
Linux一般都把FB设备当成显示设备标准接口。它的设备结点 /dev/fbn表示。比如第一个FB设备是/dev/fb0.应用程序通过一组标准IOCTL来操作FB驱动。
如想想对lcd屏进行操作(例如在lcd屏幕上画线,或者显示视频数据),我们就必须得了framebuffer(帧缓冲)。那么到底如何在lcd上画线呢?
思路讲解

代码
#include <linux/fb.h>
#include <sys/mman.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<termios.h>
#include<strings.h>
#include <errno.h>
struct fb_var_screeninfo vinfo;
static void fb_update(int fbfd,struct fb_var_screeninfo *vi)
{
vi->yoffset = 1;
ioctl(fbfd, FBIOPUT_VSCREENINFO, vi);
vi->yoffset