字符设备注册步骤

一、为字符设备申请设备号,包括主设备号和次设备号:

        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)

你可能感兴趣的:(linux学习)