内核是 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 函数 |