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驱动

  • 相关阅读:
    SQLI DUMB SERIES-12
    SQLI DUMB SERIES-11
    SQLI DUMB SERIES-9&&10
    SQLI DUMB SERIES-8
    SQLI DUMB SERIES-7
    XXS level10
    XXS level9
    XXS level8
    XXS level7
    XXS level6
  • 原文地址:https://www.cnblogs.com/yqing/p/5561652.html
Copyright © 2011-2022 走看看