zoukankan      html  css  js  c++  java
  • 第六章

    第六章

    1.Linux系统将每一个驱动都映射成 个文件.这些文件称为设备文件或驱动文件,都保存在/dev目录中

    2.编写 Linux 驱动最重要的一步就是编写回调函数 , 否则与设备文件交互 的数据将无法得到处理

    3.编写linux驱动程序的步骤

    (1)建立 Linux驱动骨架。Linux 内核在使用驱动时首先需要装载驱动 ,在装载过程中需要进行一些初始化工 作 ,在 Linux 驱动程序 中需要提供两个函数来分别址理驱动初始化和退出的工作@ 这两个函数分别 用 modu te_init和 moduie_exit 去指定

    (2)注册和注销设备文件.建立设备 文件的 工作一般在第 l 步编写的处理 Linux 初始化工作的面数中完成。删除设备文件一般在第一步 编写的处理 Linux 退出工作的函数中完成。可以分别使用 misc_register 和 misc_deregister 函数创建 和移除设备文件。

    (3)指定与驱动相关的信息

    (4)指定回调函数。一个驱动程序并不一定要指定所有的困调函数.回调函数

    会通过相关机制进行注册。

    (5)编写业务逻辑。这是核心部分。业务 逻辑可能由多个函数、多个文件甚至是个 Linux 驱动模块组成。

    (6)编写makefile文件

    (7)编译 Linux 驱动程序

    (8)安装和卸载 Linu x 驱动。如果将 Linux 驱动编译进内核,只要 Linux 使用该内核,驱动程序就会自动装载

    4.安装 Linux驱动:

    #  insmod word_count.ko

    查看 word_count 是否成功安装

    # lsmod | grep word_count

    卸载 Linux 驱动

    # rmmod word_count

    查看由 Linux 驱动输出的日志信息

    # dmesg |grep word_count |tail -n 2

    5.注册和注销设备文件

    为 word_count 驱动建立一个设备文件,该设备文件的名称是 wordcount ,位于/dev 目录 中。

    extern int misc_register(struct miscdevice * misc);

    extern int misc_deregister(struct miscdevice *misc) ;

    6.设备文件由主设备号和次设备号描述。miscdevice.narne 变量的值就是设备文件的名称。

    如果成功注册了设备文件, misc _ _register 函数返回非 0 的整梦,如果注册设备文件失败,返回 0。

    7.指定回调函数(关键)。

    8.使用 depmod 和 modprobe 命令需要注意如下几点

    depmod命令必须使用Linux 驱动模块的绝对路径

    depmod 命令会将内核模块的依赖信息写入当前正在使用的内核的 modules.dep 文件。modprobe 命令只需使用驱动名称即可,

    9.使用多种方式测试linux驱动

    (1)使用Ubuntu linux测试LINUX驱动,不能使用CAT命令测试驱动程序

    # sh build.sh

    # echo ‘I love you '

    #dmesg

    10.使用 eclipse 开发 Linux驱动程序的步骤

      (1)建立C工程

      (2)建立C源代码文件连接

      (3)设置include路径

      (4)编译linux驱动

    测试linux驱动

    (1)导入 test_word_ count.c 文件

    (2)设置include路径

    (3)建立Target

    (4)build工程

    (5)运行测试程序

    刚看到题目的时候感觉想的有点简单了,统计单词数,它不是真的统计单词数,他其实是一个完整的linux驱动。书里说可以让没有学习过linux的开发人员了解这些东西,其实我觉得理解了是一种,但是我们得结合自己实验一起来学习新东西。书中还介绍了怎样使用不同的方法来测试linux驱动

  • 相关阅读:
    169. Majority Element
    283. Move Zeroes
    1331. Rank Transform of an Array
    566. Reshape the Matrix
    985. Sum of Even Numbers After Queries
    1185. Day of the Week
    867. Transpose Matrix
    1217. Play with Chips
    766. Toeplitz Matrix
    1413. Minimum Value to Get Positive Step by Step Sum
  • 原文地址:https://www.cnblogs.com/yqing/p/5561652.html
Copyright © 2011-2022 走看看