一 编写Linux驱动程序
1.建立Linux驱动骨架
Linux内核在使用驱动时需要装载与卸载驱动
-
装载驱动:建立设备文件、分配内存地址空间等;module_init 函数处理驱动初始化
-
卸载驱动:删除设备文件、释放内存地址空间等;module_exit函数处理退出
包含这两个函数的两个宏的C程序文件也可看做是Linux驱动的骨架
2.注册和注销设备文件
任何一个Linux驱动都需要有一个设备文件,否则应用程序将无法与驱动程序交互。
-
建立设备文件:在第一步编写的处理Linux初始化工作的函数中完成;misc_register函数
-
删除设备文件:在第一步编写的处理Linux退出工作的函数中完成;misc_deregister函数
3.指定与驱动相关的信息
驱动程序是自描述的,驱动程序的作者姓名、使用的开源协议、别名、驱动描述等信息。这些信息都需要在驱动源代码中指定。
MODULE_AUTHOR、MODULE_LICENSE、MODULE_ALLS、MODULE_DESCRIPION等宏可以指定与驱动相关的信息
4.指定回调函数
一个驱动程序并不一定要指定所有的回调函数,回调函数会通过相关机制进行注册
5.编写业务逻辑
具体的业务逻辑与驱动的功能有关,业务逻辑可能由多个函数、多个文件甚至是多个Linux驱动模块组成