标签:
第六章 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/
标签:
原文地址:http://www.cnblogs.com/BJBLOG/p/5561308.html