Linux 驱动的工作方式:Linux系统将每一个驱动都映射成一个文件.这些文件称为设备文件或驱动文件,都保存在/dev目录中。对于驱动来说,需要接收这些被写入的数据,并将它们通进PC 的井口、USB 等端口发送给设备。要实现这一过程就需要Linux 驱动可以响应应用程序传递过来的数据。这就是Linux 驱动的事件,这就是回调( callback )函数。

  1. 编写Linux驱动程序的步骤:

1)         建立Linu x 驱动骨架(装载和卸载Linu x 驱动):。Linux 内核在使用驱动时首先需要装载驱动。在装载过程中需要进行一些初始化工作。

2)         注册和注销设备文件:任何一个Linux 驱动都需要有←个设备文件,否则应用程序将无法与驱动程序交互。

3)         将指定与驱动相关的信息:驱动程序是自描述的。

4)         指定回调函数:Linux 驱动包含了多种动作, 也可称为事件。一个驱动程序并不一定要指定所有的困调函数。回调函数会通过相关机制进行注册。

5)         编写业务逻辑:任何一个完整的Linux 驱动都会做一些与其功能相关的工作,COM 驱动会根据传输数率进行数据交互。具体的业务逻辑与驱动的功能有关。业务逻辑可能由多个函数、多个文件甚至是多个Linux 驱动模块组成。具体的实现读者可以根据实际情况而定。

6)         编写Makefile 文件:Linux内核源代码的编译规则是通过Makefile 文件定义的。

7)         编译Linux 驱动程序:Linux 驱动程序,可以直接编译内核,也可以作为模块单独编译。

8)         安装和卸载Linux驱动:如果将Linux 驱动编译进内核,只要Linux 使用该内核,驱动程序就会自动装载。如果Linux驱动程序以模块单独存在, 需要使用insmod 或modprobe 命令装载Linux 驱动模块,使用rmmod命令卸载Linux 驱动模块。