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


    本章是一个具体的例子,来详细的介绍开发和测试Linux驱动程序的完整过程。尤其是测试Linux驱动。在这个统计单词个数的实例中,重点是该算法的实现技术:即Linux驱动,而不是如何统计的。

    6.1Linux驱到底是什么

    Linux驱动的工作方式和访问方式是Linux的特点之一。Linux系统将每一个驱动都映射成一个文件,这些文件被称为驱动文件或设备文件,保存在dev目录中。由于大多数Linux驱动都有与其对应的设备文件,因此与Linux驱动交换数据就变成了与设备文件交换数据。事实上,编写Linux驱动程序还需要更高级的功能,如向打印机驱动写入数据时,打印机驱动需要接受这些被写入的数据,病通过并口或者USB等串口发送给打印机。要实现这一过程就需要Linux驱动可以响应应用程序传递过来的数据。就是Linux驱动的事件,就是回调函数。

    6.2编写Linux驱动程序的步骤

    Linux驱动程序与其他类型的Linux程序一样,也有自己的规则。

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

    任何类型都有一个基本的结构,如C语言就需要一个入口函数mainLinux内核在使用驱动时首先需要装载驱动,在装载的过程中需要进行一些初始化工作如建立设备文件和分配内存地址空间等。当Linux系统需要退出时需要卸载Linux驱动,要释放Linux驱动占用的资源如删除设备文件,释放内存地址空间等。则在Linux驱动中需要2个函数来分别处理驱动初始化和退出的工作。分别是module_initmodule_exit

    1. 注册和注销设备文件

    任何一个Linux驱动都需要有一个设备文件,否则应用程序将无法与驱动程序交互。

    1. 指定与驱动相关的信息

    驱动程序是自描述的。

    1. 指定回调函数

    Linux驱动包含的多种动作也可称为事件。回调函数通过相关机制进行注册。

    1. 编写业务逻辑
    2. 编写Makefile文件
    3. 编译Linux驱动程序
    4. 安装和卸载Linux驱动

    以上前5步是关于如何编写Linux驱动程序的 后三步可以使Linux驱动正常工作。

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

    1.首先建立存放Linux驱动程序的目录,然后建立源代码文件。最后编写一个makefile文件

    2.编写Linux驱动程序的骨架

    安装Linux驱动:insmod word_count.ko

    查看word_count是否安装成功: lsmod | grep word_count

    卸载Linux驱动:rmmod word_count

    查看由Linux驱动输出的日志信息:dmesg | grep word_count | tail –n 2

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

    4.注册和注销设备文件

    5.指定回调函数

    6.实现算法

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

    本章还介绍了许多种测试Linux驱动。

    软件1308班31号 张帆 博客园地址: http://home.cnblogs.com/u/sxauzzz/

  • 相关阅读:
    使用存储过程查询并按每页10条记录分页显示图书借阅纪录
    两个div并排 左边div宽固定 右边自适应
    java比较时间及时间的转换
    java使用commons.io的FileUtils进行文件拷贝
    实现image宽度100%,高度与宽度一致
    vue请求前的loading动画效果
    vue项目加载前空白的动画过渡效果
    element-ui和semantic-ui冲突的解决方法--局部引入semantic-ui的css
    vue使用formdata上传多个图片,springboot以文件数组的形式接受
    快速创建vuepress项目(使用vuepress写文档)
  • 原文地址:https://www.cnblogs.com/sxauzzz/p/5638347.html
Copyright © 2020-2023  润新知