第六章
第一个Linux驱动程序:
统计单词个数
Linux驱动到底是个什么东西.
Linux系统将每一个驱动都映射成一个文件,称之为设备文件或驱动文件。与Linux驱动交换数据相当于与设备文件交换数据。编写Linux驱动最重要的一步就是编写回调函数,否则与设备文件交互的数据将无法得到处理。
编写Linux驱动程序的步骤
建立Linux驱动骨架(装载和下载Linux驱动),注册和注销设备文件,指定与驱动相关的信息,指定回调函数,编写业务逻辑,编写makefile文件,编译Linux驱动程序,安装和卸载Linux驱动。
统计单词个数:
1.编写linux驱动程序前的准备工作:建立并进入存放linux驱动程序的目录,编写Makefile文件。2.编写linux驱动程序的骨架:printf函数运行在用户空间,printk函数运行在内核空间。安装linux驱动、查看word_count是否成功安装、卸载linux驱动、查看日志信息。3.指定与驱动相关的信息:modinfo word_count.ko查看word_count.ko的信息。4.注册和注销设备文件:
# define DEVICE_NAME “wordcount” 定义设备文件
Static struct miscdevice misc = {}; 描述设备文件的信息
ret = misc_register(&misc); 建立设备文件
misc_deregister(&misc); 移除设备文件
5.指定回调函数:word_count_read和word_count_write函数分别处理从设备文件读数据和向设备文件写数据的操作。两函数中的copy_to_user和copy_from_user函数是将数据从内核空间复制到用户空间或从用户空间复制到内核空间。6.实现统计单词数的算法。7.编译、安装、卸载linux驱动程序。
使用Eclipse开发和测试Linux驱动程序:
>>在Eclipse中开发Linux驱动程序(建立C工程,建立C 源代码文件链接,设置include路径,编译Linux驱动)。
>>在Eclipse中测试Linux驱动(导入test_word_count.c文件,设置include路径,建立Target,Build工程,运行测试程序)。