美文网首页
字符设备驱动

字符设备驱动

作者: 4c6ed2800025 | 来源:发表于2019-11-16 21:07 被阅读0次
  1. 初始化时首先向内核申请主、次设备号,包括动态分配或者静态分配,register_chrdev_region()
  2. 对设备需要使用的资源进行分配以及初始化,比如内存、同步原语等;
  3. 初始化cdev结构,将包含openreleasereadwrite等函数的file_operation结构赋值给cdev->dev, 然后使用函数cdev_add()函数向系统注册字符设备,此时完成字符设备与设备号、操作函数的关联;
  4. file_operate包含的函数接口为struct inode*和/或struct file *,那怎样才能找到我们的scull_dev结构体?所以需要在open函数中通过inode结构体的i_cdev获取字符设备指针,然后利用container_of获取scull_dev结构体指针,并赋值给filp->private_data,这样, 我们便可以在readwriteioctl等函数中通过struct file * 获取自定义字符设备的指针,即scull_dev啦。
image
image

参考

1.字符设备驱动中cdev与inode、file_operations的关系

相关文章

网友评论

      本文标题:字符设备驱动

      本文链接:https://www.haomeiwen.com/subject/dphuictx.html