1.之前注册字符设备用的如下函数注册字符设备驱动:
register_chrdev(unsigned int major, const char *name,const struct file_operations...*fops);
但其实这个函数是linux版本2.4之前的注册方式,它的原理是:
(1)确定一个主设备号
(2)构造一个file_operations结构体, 然后放在chrdevs数组中
(3)注册...它会有个很大的缺点:
每注册个字符设备,还会连续注册0~255个次设备号,使它们绑定在同一个file_operations操作方法结构体上,在大多数情况下,都只用极少的次设备号,所以会浪费很多资源.
2....所以在2.4版本后,内核里就加入了以下几个函数也可以来实现注册字符设备:
分为了静态注册(指定设备编号来注册)、动态分配(不指定设备编号来注册),以及有连续注册的次设备编号范围区间,避免了register_chrdev...0,count=100,表示0~99的次设备号都要绑定在同一个file_operations操作方法结构体上
*name:字符设备名称
当返回值小于0,表示注册失败
2.2:
/*动态分配一个字符设备,