Android深度探索(卷1)HAL与驱动开发算法
第六章 第一个Linux驱动程序:统计单词个数数组
统计单词个数的功能是封装在Linux驱动中的。函数
Linux驱动的工做和访问方式是Linux亮点之一,同时受到了业界大防范好评。Linux系统将每个驱动都映射成一个文件。这些文件称为设备文件或者驱动文件,都保存在 /dev 目录中。这种设计理念使得与Linux驱动进行交互就像与普通文件进行交互同样容易。固然,也比访问Linux API 更容易。因为大多数Linux驱动都有与其对应的设备文件,所以与Linux驱动交换数据就变成了与文件交换数据。测试
编写Linux驱动程序的步骤设计
一、创建Linux驱动骨架(装载和卸载Linux驱动)ip
Linux内核在使用驱动时首先须要进行装载驱动。在装载过程当中须要进行一些初始化操做。当系统退出时须要进行卸载Linux驱动,在卸载过程当中须要释放由Linux驱动占用的资源。在Linux驱动程序中须要提供两个函数来分别处理驱动初始化和退出的工做。这两个函数分别用module和moddule_exit宏指定。资源
二、注册和注销设备文件开发
三、指定与驱动相关的信息字符串
四、指定回调函数get
五、编写业务逻辑
六、编写Makefile文件
Linux内核源代码的编译规则是经过Makefile文件定义的。所以编写一个新的Linux驱动程序必须有一个Makefile文件
七、编译Linux驱动程序
八、安装和卸载Linux驱动
第一个Linux驱动:统计单词个数
一、#mkdir创建目录文件夹
二、编写Makefile文件
Obj-m : = vord count.o
Word_count-y : = process.o data.o
编写Linux驱动程序的骨架(初始化和退出驱动)
指定与驱动相关的信息
指定回调函数
实现统计单词数的算法
编写word_count驱动程序:
一、get_word_count 函数将mem数组中的第一个为“\0”的字符做为字符串的结尾符,所以在word_count_write 函数中将mem[count]的值设成“\0”,不然get_word_count 函数没法知道要统计单词书的字符串到哪里结束。
二、单词数使用int类型变量存储,在word_count_write函数中统计出单词数(word_count变量的值),在word_count_read 函数中将word_count 整型变量值分解成4个字符存储在buf中,所以,在应用程序中须要将这四个字节组合成Int类型的值
编译、安装、卸载Linux驱动程序
使用多种方式测试Linux驱动
使用Exlipse开发和测试Linux驱动程序
统计单词数的word_count驱动是本书实现的第一个完整的Linux驱动。