字符设备驱动

字符设备驱动内核提供三种注册方法:

    *2.6以前老版本注册方式
        register_chrdev (unsigned int major, const  char *name, struct file_operations*fops);//他只分配主设备号。从设备号在mknod的时候指定
            register_chrdev函数的major参数如果等于0,则表示采用系统动态分配的主设备号
            insmod 后,必须手工建立节点(当然,正常都写成脚本)
            mknod dev/zxl01 c 200 0   //major 200
            mknod dev/zxl02 c 200 1

    *2.6 内核提供
        register_chrdev_region(dev_t from, unsigned count, const char *name);      //分配设备号,即向系统注册注册一个字符设备
            指定从设备号from开始(dev_t 主次设备号),申请count个设备号,在/proc/devices中的名字为name
            缺点:无法保证注册的设备号是其他人linux系统中未分配使用的设备号)

        alloc_chrdev_region(dev_t *dev,unsigned int firstminor,unsigned int count,char *name)//动态分配主次设备号
            也需要手动创建设备节点 mknod memdev c 260 0

    *混杂设备 (较常用)
        misc_register(struct miscdevice *) // 共享一个主设备号(10),自动生成设备节点
            miscdevice 这个结构体里包括 次设备号,设备名,文件操作等
            insmod 之后,在/proc/misc 和 /dev/ 目录下都会自动生成对应“设备明的设备” (上两种设备是在/proc/device 下查看)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值