linux framebuffer驱动

一、概述

帧缓冲(framebuffer)是linux系统为显示设备提供的一个接口,它将显示缓存区抽象,屏蔽图像硬件的底层差异,允许上层应用程序在图形模式下直接对显示缓冲区进行读写。

      帧缓冲设备为标准字符设备,主设备号为29,对应于/dev/fb%d。

二、数据结构

<include/linux/fb.h>

/* 帧缓冲设备 */
struct fb_info {
    struct fb_var_screeninfo var;	//可变参数
    struct fb_fix_screeninfo fix;	//固定参数

    struct fb_ops *fbops;	//帧缓冲操作

    union {
        char __iomem *screen_base;	//虚拟基地址
    };
    unsigned long screen_size;	//虚拟地址大小

    void *par;	//私有数据地址
};
<include/linux/fb.h>

/* 帧缓冲操作 */
struct fb_ops {
    /* 打开 */
    int (*fb_open)(struct fb_info *info, int user);

    /* 关闭 */
    int (*fb_release)(struct fb_info *info, int user);

    /* 检测可变参数,并调整到支持的值 */
    int (*fb_check_var)(struct fb_var_screeninfo *var, struct fb_info *info);

    /* 根据info->var设置video模式 */
    int (*fb_set_par)(struct fb_info 

猜你喜欢

转载自blog.csdn.net/u010704053/article/details/105157604