PS:内核版本为2.6.22.6,我的mini2440开发板使用的是韦东山视频上的系统内核
1,声明结构体class指针变量和结构体class_device指针变量 (注意是 结构体指针)
static struct class *firDrv_class;
static struct class_device *firDrv_class_device;
2,在加载模块初试函数里先创建结构体class变量,再创建结构体class_device变量
a,class_create方法
firDrv_class = class_create(THIS_MODULE,"firDrvClass");
class_create方法第一个参数为THIS_MODULE,第二个参数为一个名字,系统根据这个名字在/sys/class目录下创建名为这个名字的目录(这个名字起中间作用,应用程序没有用到)
b,class_device_create方法
firDrv_class_device = class_device_create(firDrv_class,NULL,MKDEV(major,0),NULL,"wzcFirDrv");
class_device_create方法利用上面创建的class创建出设备文件,第一个参数为上面的firDrv_class,第二个参数为NULL,第三个参数为设备号,第四个参数暂时为NULL,第5个参数为设备文件的名字(这个名字就是应用程序要打开的文件名),系统会在上面类的文件(/sys/class/firDrvClass)里再创建名为这个名字的目录,系统会根据这个目录里的文件创建设备文件
3,在卸载模块里释放掉所创建的结构体class变量和结构体class_device变量,顺序不能换
class_device_unregister(firDrv_class_device);
class_destroy(firDrv_class);