zoukankan      html  css  js  c++  java
  • 读《Android深度探索(卷1)HAL与驱动开发》的一些思考06

    统计单词数的word_count 驱动是本书实现的第一个完整的Linux 驱动。本章不仅是介绍一个示例,还介绍了如何使用不同的方法测试Linux 驱动。

    编写Linux驱动程序步骤:

    1:建立Linu x 驱动骨架(装载和卸载Linu x 驱动)

    2:注册和注销设备文件

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

    4:指定回调函数

    5:编写业务逻辑

    6:编写Makefile文件

    7:编译Linux 驱动程序

    8:安装和卸载Linux驱动程序

    源程序目录:<光盘根目录>/sources/word_count

    1.主要原理:利用设备文件作为介质与应用程序进行交互。应用程序通过向设备文件传递一个自空格分隔的字符串(每一个被空格隔开的子字符串称为,然后从设备文件读出来的是该字符串包含的单词数。本例的驱动程序使用C语言实现,源代码文件路径如下。

    随书光盘: <光盘根目录>/sources/ch06/word count/word count.c

    虚拟环境:/root/drivers/ch06/word count/word count.c

    2.准备工作:首先使用下面的命令建立存放Linux 驱动程序的目录。

    # mkdir -p /root/drivers/ch06/word _count

    #cd /root/drivers/ch06/word count

    然后,使用下面的命令建立驱动源代码文件(word count.c)

        #echo  ‘’> word_count . C

    最后编写一个Makefile 文件

    #echo ‘obj-m :=word_count . o’ > Makefile

    3.编写Linux 驱动程序的骨架(初始化和退出驱动):骨架部分主要是Linux驱动的初始化和退出函数。

     

    一个完整的Linux驱动程序都会指定这些与驱动相关的信息。一般需要如下信息:

    模块作者:使用MODULE AUTHOR 宏指

    模块描述:使用MODULE

    模块别名:使用MODULE ALIAS 宏指定。

    开源协议:使用MODULE_LICENSE 宏指定。

    除了这些信息外, Linux驱动模块自己还会包含一些信息。我们可以用下面的命令查看word_count.ko的信息。

    #modinfo word_count.ko

    4.注册和注销设备文件:一般需要在初始化Linux驱动时建立设备文件,在卸载linux驱动时删除设备文件。而且设备文件还需要一个结构体(miscdevice)来描述与其相关的信息。

    5.指定回调函数:最常用的交互方式就是读写设备文件。通过file_operations.read 和file_operations. write 成员变量可以分别指定读写设备文件要调用的回调函数指针。用word count read 和l word count write函数做一个读写设备文件数据的实验。

    6.实现统计单词数的算法:。本节实现的算法将由空格、制表符、回东符和换行符分隔的字符串算做一个单词,该算法同时考虑了有多个分隔符(空格符、制表:符、回车符和换行符)的情况。

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

  • 相关阅读:
    springmvc
    POJ 3683 Priest John's Busiest Day
    POJ 3678 Katu Puzzle
    HDU 1815 Building roads
    CDOJ UESTC 1220 The Battle of Guandu
    HDU 3715 Go Deeper
    HDU 3622 Bomb Game
    POJ 3207 Ikki's Story IV
    POJ 3648 Wedding
    HDU 1814 Peaceful Commission
  • 原文地址:https://www.cnblogs.com/limomo/p/5559134.html
Copyright © 2011-2022 走看看