系列型的教程

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

驱动程序的功能

对设备初始化和释放资源
把数据从内核传送到硬件和从硬件读取数据
读取应用程序传送给设备文件的数据和回送应用程序请求的数据
检测和处理设备出现的错误(底层协议)
用于区分具体设备的实例

2./dev目录下驱动设备介绍

https://blog.csdn.net/lzh593582987/article/details/14214111


0 条评论

发表回复

您的电子邮箱地址不会被公开。