一、为字符设备申请设备号,包括主设备号和次设备号:
1.1 使用内核自动分配设备号函数:
alloc_chrdev_region(dev_t * dev, unsigned baseminor, unsigned count, const char * name);
1.2 向内核注册自定义设备号
register_chrdev_region(dev_t from,unsigned count,const char * name);
1.3 卸载模块时,注销设备号
unregister_chrdev_region(dev_t from,unsigned count);
二、向内核申请cdev结构体空间,用于描述字符设备
struct cdev *cdev_alloc(void)
三、初始化cdev结构体,初始化操作函数集
void cdev_init(struct cdev *cdev, const struct file_operations *fops)
四、向内核注册字符设备,count表示注册的个数
int cdev_add(struct cdev *p, dev_t dev, unsigned count)
五、驱动卸载时,注销字符cdev结构体,释放系统资源
void cdev_del(struct cdev *p)