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

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

             编写Linux驱动程序的步骤:

    一、建立Linux驱动骨架(装载和卸载Linux驱动);

    Linux内核在使用驱动时首先需要装载驱动。在装载过程中需要进行一些初始化工作。当 Linux系统退出时需要卸载Linux驱动,在卸载的过程中需要释放Linux驱动占用的资源。

                      二、注册和注销设备文件:

    任何一个Linux驱动都需要有一个设备文件,否则应用程序将无法与驱动程序交互。可以分别使用misc_register和misc_deregister函数创建和移除设备文件。

                      三、指定与驱动相关的信息:

                              驱动程序是白描述的。可以通过modinfo命令获取驱动程序的相关信息。

                      四、指定回调函数:

    一个驱动程序并不一定要指定所有的回调函数。回调函数会通过相关机制进行注册。

    五、编写业务逻辑:

             这一步是Linux驱动的核心部分。光有骨架和回调函数的Linux驱动是没有任何意义的。具体的业务逻辑与驱动的功能有关。业务逻辑可能由多个函数、多个文件甚至是多个Linux驱动模块组成。

    六、编写Makefile文件:

             Linux内核源代码的编译规则是通过Makefile文件定义的。因此编写一个新的 Linux驱动程序必须要有一个Makefile文件。

    七、编译 Linux 驱动程序:

             Linux驱动程序可以直接编译进内核,也可以作为模块单独编译。

    八、安装和卸载 Linux 驱动:

             将Linux驱动编译进内核,只要Linux使用该内核,驱动程序会自动装载。如果Linux驱动程序以模块单独存在,需使用insmod或modprobe命令装载Linux驱动模块,使用rmmod命令卸载Linux驱动模块。

  • 相关阅读:
    BZOJ4416 [Shoi2013]阶乘字符串 【序列自动机 + 状压dp】
    BZOJ2159 Crash 的文明世界 【第二类斯特林数 + 树形dp】
    快速求原根
    BZOJ2530 [Poi2011]Party 【贪心】
    BZOJ2213 [Poi2011]Difference 【乱搞】
    BZOJ2276 [Poi2011]Temperature 【单调队列】
    多项式除法
    loj2538 「PKUWC2018」Slay the Spire 【dp】
    loj2537 「PKUWC2018」Minimax 【概率 + 线段树合并】
    Java多线程之线程的暂停
  • 原文地址:https://www.cnblogs.com/homwok/p/5561511.html
Copyright © 2011-2022 走看看