Linux驱动程序
一 LInux驱动概念
字符设备驱动 程序简介
第一个驱动程序
字符设备驱 动程序注册函数
1.unsigned int major:主设备号,这里就不得不提一下linux中的 设备号了。一个字符设备或者块设备都有一个主设备号和次 设备号。主设备号和次设备号统称为设备号。主设备号用来 表示一个特定的驱动程序。次设备号用来表示使用该驱动程 序的设备。简单来说,linux需要一个数来管理某个驱动程序 和使用这个驱动程序的设备。很明显,这个设备号具有唯一 性。我们可以使用cat /proc/devices命令即可查看当前系统中 所有已经使用了的主设备号。在接下来的程序中,我们可以 设置一个静态的主设备号,比如200。设置时一定要注意不能 使用已经用了的主设备号。
2.const char *name:为你的驱动程序起一个名字
3. struct file_operations *fops:这是一个指向file_operations结构 体变量的指针,这个结构体里面的成员绝大多数都是函数的 指针。
struct file_operations *fops结构体
1.open 函数用于打开设备文件
② release 函数用于释放(关闭)设备文件,与应用程序中的 close 函数对应
③ read 函数用于读取设备文件
④ write 函数用于向设备文件写入(发送)数据
⑤ poll 是个轮询函数,用于查询设备是否可以进行非阻塞的读写
⑥ owner 拥有该结构体的模块的指针,一般设置为 THIS_MODULE
程序编译的方法
第一种方法
第二种方法
设备号的获取
自动添加设备结点
混杂设备驱动
Linux内核的中断