Linux内核驱动整理之二 LCD设备驱动程序

[复制链接]
1232|1
 楼主| nello 发表于 2015-12-18 17:19 | 显示全部楼层 |阅读模式
内核是 linux-2.6.22.6

首先分析LCD驱动程序核心层fbmem.c
fbmem_init       
    ①register_chrdev(FB_MAJOR,"fb",&fb_fops)
    ②fb_class = class_create(THIS_MODULE, "graphics");

根据以前的经验 注册字符设备的时候还差一步
第三步出现在
int register_framebuffer(struct fb_info *fb_info)
        for (i = 0 ; i < FB_MAX; i++)
                if (!registered_fb[i]) //在registered_fb 里面寻找一个空的 位置
                        break;
        fb_info->node = i; //这个i就相当于是次设备号 放入fb_info->node里面
            ③fb_info->dev = device_create(fb_class, fb_info->device,MKDEV(FB_MAJOR, i), "fb%d", i); //在类下面创建一个设备 次设备号是i 主设备号是FB_MAJOR  
经过上面的两个函数的设置 就注册一个字符设备

当用户程序调用open       read         write  函数的时候就对应
......................................................................................
驱动程序fb_fops 里面的 open      read      write   函数
mega1702 发表于 2016-3-28 16:07 | 显示全部楼层
感谢楼主分享!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

5

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部