个人感觉还是有模板可借用,比如说字符设备的驱动:
像正常来说
module_init()
module_exit()
这个是固定模式,在INIT中
| | 1.构建cdev的数据结构 | 2.init初始化加载模块 申请主次设备号 dev_t devno = MKDEV(major,minor) 注册此设备号 register_chrdev_region() alloc_chrdev_region() 包含register_chrdev_region()动态分配主设备号 //填充file_operations结构体中的操作函数,初始化cdev_init时与设备结构体绑定 初始化字符设备 cdev_init() 添加一个字符设备 cdev_add() 注册中断函数 requset_irq()
在exit中:
free_irq()对应于request_irq() cdev_del()对应于cdev_del() unrgister_chrdev_region()对应register_chrdev_region()
没有捷径,只能慢慢学习,慢慢摸索,书山有路勤为径。
需要资料可以帮你找。