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 驱动程序。

  • 相关阅读:
    __attribute__ 总结
    linux文件夹打包命令
    学习ARM的一些基本知识,个人整理
    备忘录之 —— .bashrc(IC工具篇)
    GitHub的基本使用
    02: SocketServer服务
    01: socket模块
    08: python基础练习题
    07: 高阶函数&异常处理
    06: 面向对象
  • 原文地址:https://www.cnblogs.com/limomo/p/5559134.html
Copyright © 2011-2022 走看看