• Android探索与驱动开发学与思(8)


    蜂鸣器是 S3C6410 开发板上带的一个硬件设备。可以通过向寄存器写入特定的值来控制蜂鸣器 发出尖叫声。PWM驱动的实现方式不同于 LED 驱动, PWM 驱动将由多个文件组成。这也是大多数 Linux 驱动的标准实现方式. 也就是说-个复杂的驱动不太可能将所有的代码都放在一个文件中。

    本节讲介绍把linux驱动分成多个文件的方式。这些文件中的数据结构、函数的代码也可以被多个不同的驱动使用,所以这也是代码重用 的重要方法。

    Linux驱动代码重用

    编译是由多个文件组成的 Linu x 驱动

    Linux 驱动模块的依赖(导出符号)

    (1)代码重用分为静态和动态两种。

    (2)在 Linux 驱动中可以使用如下两个宏导出函数。

    (3)输入命令可以从/proc/kallsyms 文件中查看 symbol_producer 驱动导出的符号。(cat /proc/kallsyms I grep symbol_producer)

    (4)depmod modprobe 命令。

    Linux驱动的代码重用中,举个例子涉及的C语言源代码文件有main.c,fun.c,product.cproduct.h。其中main.cLinux驱动的主程序。在fun.cproduct.c中定义和实现了在main.c中使用的函数。在main.c中通过extern关键字使用fun.c中的函数,接下来学习了强行卸载linux驱动,只能卸载由于卸载异常情况而导致的linux驱动模块无法卸载的情况。

    情况1:初始化函数崩溃

    情况2:卸载函数被阻塞

    蜂鸣器驱动是一个重点,通过相应的寄存器来控制蜂鸣器的打开和关闭,并且在实验蜂鸣器驱动时,将打开和关闭蜂蜜器的函数放到另外的C源代码文件中。PWM驱动由三个文件组成:PWM.CPWMfun.hpwm-fun.c、其中pwm.c是驱动主程序。

    蜂鸣器驱动

    原理:蜂鸣器也称为 PWM (脉冲宽度调制〉,基本原理是通过脉冲来控制蜂鸣器的打开和停止。

    本章我学习到了:

    1.Linux驱动常用的代码重用方式以及强行卸载liunx驱动的方法。

    2.蜂鸣控制电路:靠改变脉冲宽度来控制输出电压,通过改变周期来控制其输出频率中断实验。

  • 相关阅读:
    这个Pandas函数可以自动爬取Web图表
    /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /usr/local/python3.6/lib/python3.6/site-packages/paddle/fluid/core_avx.so)
    kubernetes yaml详解
    centos 安装kubernetes
    初识kafka-connect
    Docker1:本地连接Docker中的mysql,实现数据同步
    git分支管理规范
    cat 配置告警规则
    Java的即时编译(Just In Time, JIT)及其优化
    java自定义实现一个缓存器
  • 原文地址:https://www.cnblogs.com/wstone/p/5650993.html
Copyright © 2020-2023  润新知