Linux的设备驱动程序需要完成如下功能:
(1)对设备初始化和释放
(2)把数据从内核传送到硬件和从硬件读取数据
(3)读取应用程序传送给设备文件的数据和回送应用程序请求的数据
(4)检测和处理设备出现的错误
通过函数使Linux的设备操作变得简单
open ()、close ()、read ()、write () 等;
Linux设备驱动的大致流程:
(1)查看原理图,理解设备的工作原理
(2)定义主设备号
(3)在驱动程序中实现驱动的初始化。如果驱动程序采用模块的方式,则要实现模块初始化。
(4)设计所要实现的文件操作,定义file_operations结构。 (file_operations中存储着内核模块中执行这项操作的函数的地址)
(5)实现中断服务(中断并不是每个设备驱动所必须的)
(6)编译该驱动程序到内核中,或者用insmod命令加载 (insmod命令用于将给定的模块加载到内核中)
(7)测试该设备