驱动学习实战一:
编写简单的驱动:
利用:lsmod rmmod insmode这个三个常见命令
驱动学习实战二:
register_chrdev详解(#include <linux/fs.h>) 老接口的函数
static inline int register_chrdev(unsigned int major, const char *name,const struct file_operations *fops)
参数: 1.major主设备号
参数的来源: 1.是0 那么系统会自动给你指定一个主设备号 2.自己利用lsmod的方式来,找一个没人用的主设备号
参数2: 名字 总结: 主次设备号 +name = 人 +名字
参数3: struct file_operations *fops这个是应用和驱动的接口 也就是核心
主要的作用是内核驱动人员向内核提供的接口。
写文件之前先看。
lsmod 查看当前注册的驱动
cat /proc/devices 虚拟文件系统
驱动学习是实战三:
register_chrdev内部将我们要注册的驱动的信息,存储在对应的位置
cat /proc/deviecs 查看内核中已经注册过的字符设备驱动(块设备驱动)
/proc文件系统是内核 利用数据结构虚拟出来的文件系统
驱动学习实战:学驱动的思维
1.在自己的思想中建立整体的框架
2.整体是一个什么样子的 ,谁调用谁,谁被谁调用 谁的作用是什么
3.在内核中找到相应的内核源代码,自己进行修改
4.你写的每一句代码心里必须清楚明白,不能似懂非懂
5.自己写的代码首先会先猜测,到底是那种可能,然后实验来验证这种可能
6.驱动人员的主要工作量:file_operations及其元素填充,注册驱动