打印

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

[复制链接]
1010|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

粉丝