1 自动创建设备文件
创建设备文件的方法:1 手动创建--->sudo mknod /dev/haha0 c 250 0
2 自动创建--->内核函数
Linux内核为我们提供了一组函数,可以用来在模块加载时自动在/dev目录下创建相应的设备节点(设备文件),并在模块卸载时删除该设备节点。
内核函数:1 class_create-->创建一个设备文件类--》对应一类设备
2 device_create--->创建一个设备文件--》对应一个设备
1.1 创建一个设备文件类--》class_create
#define class_create(owner, name)
({
static struct lock_class_key __key;
__class_create(owner, name, &__key);
})
owner:THIS_MODULE表示模块本身
name:设备模块名
返回值:struct class类型指针(设备文件类指针)
1.2 创建一个设备文件--》device_create
struct device *device_create(struct class *class, struct device *parent, dev_t devt, void *drvdata, const char *fmt, ...)
*class:设备文件类指针,是class_create的返回值
*parent:父设备,一般为NULL。
devt:设备号。包括主设备号和次设备号
*drvdata:私有数据,若无,给NULL.
*fmt:设备文件名(haha0/haha1)
...:可变参数
返回值:成功,struct device指针。失败ERR,需要进一步处理
1.3销毁设备文件--》device_destroy
void device_destroy(struct class *class,