zoukankan      html  css  js  c++  java
  • Android深度探索--第六章读后感

    建立Linux驱动骨架:Linux内核在使用驱动时需要装载与卸载驱动,装载驱动:建立设备文件、分配内存地址空间等;module_init 函数处理驱动初始化,卸载驱动:删除设备文件、释放内存地址空间等;module_exit函数处理退出,包含这两个函数的两个宏的C程序文件也可看做是Linux驱动的骨架,注册和注销设备文件:任何一个Linux驱动都需要有一个设备文件,否则应用程序将无法与驱动程序交互。建立设备文件:在第一步编写的处理Linux初始化工作的函数中完成。misc_register函数,删除设备文件:在第一步编写的处理Linux退出工作的函数中完成。misc_deregister函数

    指定与驱动相关的信息:驱动程序是自描述的,驱动程序的作者姓名、使用的开源协议、别名、驱动描述等信息。这些信息都需要在驱动源代码中指定。

      MODULE_AUTHOR、MODULE_LICENSE、MODULE_ALLS、MODULE_DESCRIPION等宏可以指定与驱动相关的信息

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

    编写业务逻辑:具体的业务逻辑与驱动的功能有关,业务逻辑可能由多个函数、多个文件甚至是多个Linux驱动模块组成

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

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

    安装和卸载Linux驱动:若将Linux驱动编译进内核,只要Linux使用该内核,驱动程序就会自动转载,若Linux驱动程序以模块单独存在,需使用insmod或modprode命令装载Linux驱动模块,rmmod命令卸载Linux驱动模块

  • 相关阅读:
    【BZOJ4621】Tc605 DP
    【BZOJ4624】农场种植 FFT
    【BZOJ4627】[BeiJing2016]回转寿司 SBT
    【BZOJ4631】踩气球 链表+线段树+堆
    Excel error 64-bit version of SSIS
    (转) bicabo Visual Studio 2012自动添加注释(如版权信息等)
    Integration Services 变量
    (转)SSIS_数据流转换(Union All&合并联接&合并)
    (转)SSIS处理导入数据时, 存在的更新, 不存在的插入
    (转)WPF学习资源整理
  • 原文地址:https://www.cnblogs.com/alancnn/p/5561187.html
Copyright © 2011-2022 走看看