字符设备开发步骤
确定主次设备号
实现字符驱动程序
file_operations结构体
初始化函数,注册字符设备
销毁函数,释放字符设备(卸载)
创建设备文件节点(次设备号)
主设备号与驱动一一对应(内核识别设备的标识)
次设备号对应具体的设备
手工分配主设备号(人工指定主设备号,次设备号则分配连续多个):
int register_chrdev_region(dev_t first,unsigned int count,char *name);
动态分配主设备号
int alloc_chrdev_resion(dev_t *dev,unsigned int firstminor,unsigned int count,char *name) //返回0成功,1失败
释放设备号
void unregister_chrdev_region(dev_t first,unsigned int count);
cdev结构体:描述字符设备,将设备号和fileoperating联系起来
创建设备文件节点:
mknod /dev/nodename c major minor
确定主次设备号
实现字符驱动程序
file_operations结构体
初始化函数,注册字符设备
销毁函数,释放字符设备(卸载)
创建设备文件节点(次设备号)
主设备号与驱动一一对应(内核识别设备的标识)
次设备号对应具体的设备
手工分配主设备号(人工指定主设备号,次设备号则分配连续多个):
int register_chrdev_region(dev_t first,unsigned int count,char *name);
动态分配主设备号
int alloc_chrdev_resion(dev_t *dev,unsigned int firstminor,unsigned int count,char *name) //返回0成功,1失败
释放设备号
void unregister_chrdev_region(dev_t first,unsigned int count);
cdev结构体:描述字符设备,将设备号和fileoperating联系起来
创建设备文件节点:
mknod /dev/nodename c major minor