第六章

Linux系统将每个驱动都映射成一个文件,这些文件称为设备文件或驱动文件,都保存在/dev目录中。

         编写Linux驱动程序的步骤:

一、建立Linux驱动骨架(装载和卸载Linux驱动);

Linux内核在使用驱动时首先需要装载驱动。在装载过程中需要进行一些初始化工作。当 Linux系统退出时需要卸载Linux驱动,在卸载的过程中需要释放Linux驱动占用的资源。

                  二、注册和注销设备文件:

任何一个Linux驱动都需要有一个设备文件,否则应用程序将无法与驱动程序交互。可以分别使用misc_register和misc_deregister函数创建和移除设备文件。

                  三、指定与驱动相关的信息:

                          驱动程序是白描述的。可以通过modinfo命令获取驱动程序的相关信息。

                  四、指定回调函数:

一个驱动程序并不一定要指定所有的回调函数。回调函数会通过相关机制进行注册。

五、编写业务逻辑:

         这一步是Linux驱动的核心部分。光有骨架和回调函数的Linux驱动是没有任何意义的。具体的业务逻辑与驱动的功能有关。业务逻辑可能由多个函数、多个文件甚至是多个Linux驱动模块组成。

六、编写Makefile文件:

         Linux内核源代码的编译规则是通过Makefile文件定义的。因此编写一个新的 Linux驱动程序必须要有一个Makefile文件。

七、编译 Linux 驱动程序:

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

八、安装和卸载 Linux 驱动:

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

原文地址:https://www.cnblogs.com/homwok/p/5561511.html