Linux已经为显示设备专门提供了一类设备驱动程序,叫做帧缓冲区设备驱动程序,在实际工作中只需要在显示缓冲区中写入要显示的数据,屏幕上就会显示出相应的图像。
FrameBuffer设备驱动的结构
FrameBuffer设备基于两个文件,linux/include/linux/fd.h和linux/drivers/video/fbmem.c。其中fd.h定义了驱动所用到的几乎所有的结构体,在这些结构体主要包括struct fd_info、struct fd_var_screeninfo和struct fd_fix_screeninfo。三个结构体。
struct fd_info结构体包含驱动程序的参数、状态、操作函数指针。需要填充这些函数即可。
struct fd_var_screeninfo记录了帧缓冲区设备和指定显示模式的可修改信息,包含显示屏幕的分辨率、每个像素点的比特数和一些时序变量。xres定义了屏幕中一行所占的像素的数目,yres定义了屏幕中一列所占像素的数目,bits_per_pixel定义了每隔像素用多少为来表示。
fd_fix_screeninfo定义了硬件的不可变属性,显示缓冲区的映射地址也被定义在这个里,它表示缓冲区不应该被应用程序所改变。