学了一阵子的驱动,写点东西,写得不怎么样,或有其他不好的地方请多指正,谢谢
一、linux字符设备驱动框架总结(内核版本2.6.35.5)
1. 包含模块头文件
#include<linux/init.h>
#include<linux/module.h>
2. 模块加载函数
a.静态 注册/申请主设备号(新方法和老方法)
动态注册/申请主设备号(新老方法)
b. 创建设备文件(自动和手动)
c. 初始化(cdev_init())
3. 模块卸载函数(做加载函数反操作)
4. 模块许可声明
5. 构建struct file_operations结构体
6. 实现xxx_open, xxx_read...函数
二、下面附带一张我自己画的一张流程架构图(有些知识是书本上摘抄的)谅解!!!