• Android深度探索笔记-第八章


    遇到无法卸载Linux驱动时通过直接修改Linux驱动相应的内存地址删除Linux驱动。

    书中介绍了2种驱动代码重用的方法,一种是:将要重用的代码放在其他的文件(在头文件中声明)中。如果要使用某些功能,include 相应的头文件即可(这种方式称为静态重用)。也可以使用另外一种动态重用的方式,也就是一个 Linux 驱动可以使用另外一个Linux驱动中的资源(函数、变量、宏等)。

    _init,_exit这两个宏实际上是编译指令,如果用这两个宏标识main__init和main_exit函数,可以达到提高运行效率的目的。

    extern的作用就是告诉编译器该函数的函数名、参数个数、参数类型和返回值类型。

    如果 Linux: 驱动包含多个文件现 就;需要使用 moudule-y或module-objs)来指定所在的目标文件。

    模块依赖:在一个驱动模块里使用另一个驱动模块里的被导出的符号(常章、变量、函数等)。

    depmod命令用于分析Linux 模块之间的依赖性,这一功能在多个Linux模块之间拥有复杂的依赖关系方面非常有用。使用 depmod 分析完Linux模块的依赖关系后,就可以使用 modprobe 命令装载linux模块。modprobe 命令会根据depmod 命令生成的Linux模块依赖关系来装载Linux 模块,并不需要像使用 insmod 命令那样挨个装载 Linux 模块。

    Linux 驱动模块无法卸载的情况:1:初始化函数崩溃2: 卸载函数被阻塞.

    蜂鸣器的基本原理是通过脉冲来控制蜂鸣器的打开和停止。也可以通过调整占空比来控制音量大小。在驱动开发实验课上练习过蜂鸣器的各种使用方法。

  • 相关阅读:
    遥控按键上报键值映射问题
    AutoLock类
    Mutex互斥锁
    c++ 字符串和数字转换时的特殊处理
    pytorch实现MLP并在MNIST数据集上验证
    python实现直方图均衡化,理想高通滤波与高斯低通滤波
    python实现贝叶斯网络的概率推导(Probabilistic Inference)
    python+opencv实现车牌定位
    python添加高斯噪声和椒盐噪声,实现中值滤波和均值滤波,实现Roberts算子和Sobel算子
    c++学习笔记_6
  • 原文地址:https://www.cnblogs.com/bbly02/p/5653709.html
Copyright © 2020-2023  润新知