目录
系列型的教程
https://blog.csdn.net/daocaokafei/article/details/108071589
https://www.cnblogs.com/yinsedeyinse/?page=4
1.驱动基础
https://blog.csdn.net/daocaokafei/article/details/113861011
设备类型
字符设备、块设备、网络接口
主设备号、从设备号
1)主设备号
用于标识驱动程序,相同的主设备号使用相同的驱动程序
2)从设备号
用于标识同一驱动程序的不同硬件
驱动程序与应用程序的区别
1)
应用程序以main开始
驱动程序没有main,它以一个模块初始化函数作为入口
2)
应用程序从头到尾执行一个任务
驱动程序完成初始化之后不再运行,等待系统调用
3)
应用程序可以使用glibc等标准C函数库
驱动程序不能使用标准C库
用户态与内核态
1)
驱动程序是内核的一部分,工作在内核态应用程序工作在用户态
2)数据空间访问问题
无法通过指针直接将二者的数据地址进行传递
系统提供一系列函数帮助完成数据空间转换
get_user
put_user
copy_from_user
copy_to_user
驱动程序的功能
对设备初始化和释放资源
把数据从内核传送到硬件和从硬件读取数据
读取应用程序传送给设备文件的数据和回送应用程序请求的数据
检测和处理设备出现的错误(底层协议)
用于区分具体设备的实例
0 条评论