第六章第一个Linux驱动程序:统计单词个数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第六章第一个Linux驱动程序:统计单词个数相关的知识,希望对你有一定的参考价值。

1.Linux驱动到底是个什么东西:

     Linux系统将每一个驱动都映射成一个文件,称之为设备文件或驱动文件。与Linux驱动交换数据相当于与设备文件交换数据。编写Linux驱动最重要的一步就是编写回调函数,否则与设备文件交互的数据将无法得到处理。

2.编写Linux驱动程序的步骤:

     建立Linux驱动骨架(装载和下载Linux驱动),注册和注销设备文件,指定与驱动相关的信息,指定回调函数,编写业务逻辑,编写makefile文件,编译Linux驱动程序,安装和卸载Linux驱动。

3.第一个Linux驱动(统计单词个数):

     利用设备文件作为介质与应用程序交互,应用程序通过向设备文件传递一个由空格分隔的字符串,然后从设备文件读出来的是字符串的单词数。       

编写Linux驱动程序前的准备工作(建立存放Linux驱动程序的目录,建立驱动源代码文件,最后编写一个Makefile文件)。

编写Linux驱动程序的骨架即初始化和退出驱动(printk函数用于输出日志信息,printf函数运行在用户空间,Linux驱动程序无法直接访问运行在用户空间的程序,malloc函数动态分配内存空间;安装Linux驱动:#insmod word_count.ko,查看word_count是否安装成功:# lsmod |grep word_count;卸载Linux驱动: # rmmod word_count;查看有Linux驱动输出的日志信息:#dmesg|grep word_count |tail -n 2)。

指定与驱动相关的信息(一般需要为Linux驱动程序制定如下信息:模块作者,模块描述,模块别名,开源协议)。

注册和注销设备文件(设备文件和普通文件不同,不能使用IO函数建立,需要使用misc_register函数建立设备文件,使用misc_deregister函数注销设备文件)。

指定回调函数(通过file_oerations.readfile_operations.write成员变量可以分别指定读写设备文件要调用的回调函数指针)。

实现统计单词数的算法(单词数使用int类型的变量存储)。

编译、安装、卸载Linux驱动程序(insmod命令和modprobe命令都可以安装Linux驱动,区别是modprobe命令可以检查驱动模块的依赖性,在使用modprobe命令装载驱动模块之前,需要先使用depmod命令检测Linux驱动模块的依赖关系)。

4.使用多种方式测试Linux驱动:

>>使用Ubuntu Linux测试Linux驱动(#sh build.sh,#echo ‘I love you. > /dev/wordcount’,#dmesg)。

android模拟器上通过原生(Native)C程序测试Linux驱动(编译可在Android模拟器上运行的Linux驱动模块要使用goldfish内核)。

>>使用Android NDK测试Linux驱动(在Android系统中Linux驱动主要的使用者是APK程序,所以Linux驱动做完后必须要用APK程序进行测试才能说明Linux驱动可以正常使用)。

>>使用Java代码直接操作设备文件来测试Linux驱动(如果Android拥有root权限,完全可以直接使用Java代码操作设备文件,没有root权限,Linux驱动模块是无法安装的)。

>>使用S3C6410开发板测试Linux驱动(在S3C6410开发板上使用可执行程序测试Linux驱动,在S3C6410开发板上使用Android NDK测试Linux驱动,在S3C6410开发板上使用Java代码测试Linux驱动)。

>>将驱动编译进Linux内核进行测试(对于嵌入式系统一般都采用将Linux驱动编译进内核的方式,这样做虽然没有动态装载灵活,但Linux驱动会随着Android的启动而自动装载)。

5.使用Eclipse开发和测试Linux驱动程序:

>>在Eclipse中开发Linux驱动程序(建立C工程,建立C 源代码文件链接,设置include路径,编译Linux驱动)。

>>在Eclipse中测试Linux驱动(导入test_word_count.c文件,设置include路径,建立TargetBuild工程,运行测试程序)。

 

地址:http://www.cnblogs.com/zpm123123

 

以上是关于第六章第一个Linux驱动程序:统计单词个数的主要内容,如果未能解决你的问题,请参考以下文章

第六章第一个Linux驱动程序:统计单词个数

第六章第一个Linux驱动程序:统计单词个数

第六章第一个Linux驱动程序:统计单词个数

Android深度探索(卷1)HAL与驱动开发 第六章 第一个Linux驱动程序:统计单词个数

第六章 第一个Linux驱动程序:统计单词个数

第六章 第一个Linux驱动程序:统计单词个数