zoukankan      html  css  js  c++  java
  • 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.蜂鸣控制电路:靠改变脉冲宽度来控制输出电压,通过改变周期来控制其输出频率中断实验。

  • 相关阅读:
    dayjs:js时间插件
    IE:IE请求路径带中文报错
    layui:下载表格为excel文件
    VUE:导出表格为excel文件
    报错:unexpected trailing comma
    node.js报错address not available 192.168.1.4
    js防抖和节流
    mongodb的常用基础命令及操作
    mongodb下载安装及环境搭建
    vue页面缓存
  • 原文地址:https://www.cnblogs.com/wstone/p/5650993.html
Copyright © 2011-2022 走看看