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

Android深度探索(卷1)HAL与驱动开发

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

    统计单词个数的功能是封装在Linux驱动中的。

    Linux驱动的工作和访问方式是Linux亮点之一,同时受到了业界大防范好评。Linux系统将每一个驱动都映射成一个文件。这些文件称为设备文件或者驱动文件,都保存在 /dev 目录中。这种设计理念使得与Linux驱动进行交互就像与普通文件进行交互一样容易。当然,也比访问Linux API 更容易。由于大多数Linux驱动都有与其对应的设备文件,因此与Linux驱动交换数据就变成了与文件交换数据。

      编写Linux驱动程序的步骤

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

Linux内核在使用驱动时首先需要进行装载驱动。在装载过程中需要进行一些初始化操作。当系统退出时需要进行卸载Linux驱动,在卸载过程中需要释放由Linux驱动占用的资源。在Linux驱动程序中需要提供两个函数来分别处理驱动初始化和退出的工作。这两个函数分别用module和moddule_exit宏指定。

2、注册和注销设备文件

3、指定与驱动相关的信息

4、指定回调函数

5、编写业务逻辑

6、编写Makefile文件

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

7、编译Linux驱动程序

8、安装和卸载Linux驱动

    第一个Linux驱动:统计单词个数

1、#mkdir建立目录文件夹

2、编写Makefile文件

Obj-m : = vord count.o

Word_count-y : = process.o data.o

编写Linux驱动程序的骨架(初始化和退出驱动)

指定与驱动相关的信息

指定回调函数

    实现统计单词数的算法

    编写word_count驱动程序:

1、get_word_count 函数将mem数组中的第一个为“”的字符作为字符串的结尾符,因此在word_count_write 函数中将mem[count]的值设成“”,否则get_word_count 函数无法知道要统计单词书的字符串到哪里结束。

2、单词数使用int类型变量存储,在word_count_write函数中统计出单词数(word_count变量的值),在word_count_read 函数中将word_count 整型变量值分解成4个字符存储在buf中,因此,在应用程序中需要将这四个字节组合成Int类型的值

编译、安装、卸载Linux驱动程序

      使用多种方式测试Linux驱动

使用Exlipse开发和测试Linux驱动程序

统计单词数的word_count驱动是本书实现的第一个完整的Linux驱动。

 

原文地址:https://www.cnblogs.com/xl9313/p/5560502.html