第六章

第六章 Linux驱动程序

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

(1)建立Linux驱动骨架(装载和卸载Linux驱动)

Linux内核在使用驱动时首先需装载驱动,在装载过程中需要进行一些初始化的工作,例如建立设备文件,分配内存地址空间等。退出Linux系统是,需要卸载Linux驱动。卸载的过程中就是释放Linux驱动占用的资源。两个函数分别为module_init和module_exit宏指定。

(2)注销和注册设备文件

分别用misc_register和misc_deregister函数创建和移除设备文件

(3)指定与驱动相关的信息

通过modinfo命令获取驱动程序的作者姓名、使用的开源协议、别名、驱动描述等信息

Modinfo word_count.ko

(4)指定回调函数

Linux驱动包含了很多动作,也可以成为事件。例如,向设备文件写入数据会触发“写”事件。Linux系统会调用对应驱动程序的write回调函数,从设备文件读数据会处罚“读”事件,调用read回调函数。

(5)编写业务逻辑

具体的业务逻辑与驱动的功能有关。业务逻辑可能由多个函数、多个文件甚至是多个Linux驱动模块组成。具体根据实际情况而定。例如打印机发送打印指令等

(6)编写Makefile文件

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

(7)编译Linux驱动程序

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

(8)安装和卸载Linux驱动

安装

Insmod word_count.ko

查看word_count是否安装成功

Lsmod | grep word_count

查看Linux驱动输出的日志信息

Demesg | grep word_count | tail –n 2

http://www.cnblogs.com/BJBLOG/

原文地址:https://www.cnblogs.com/BJBLOG/p/5561308.html