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

  • 相关阅读:
    在zend framework框架中try{}catch(Exception e){}的跳转问题
    【上】安全HTTPS-全面具体解释对称加密,非对称加密,数字签名,数字证书和HTTPS
    iOS 图像处理-剪裁图像
    Delphi DBGrid记录全选和反选拖动处理
    在DbGrid中,不按下Ctrl,单击鼠标如何实现多选?谢谢
    在DBGrid中实现多选功能
    回车跳到下一个EDIT
    远程控制篇:用Delphi模拟键盘输入/鼠标点击
    SQL的拼接语句在DELPHI中怎么写
    Delphi DbGridEh实现表格没有内容的渐变效果
  • 原文地址:https://www.cnblogs.com/wstone/p/5650993.html
Copyright © 2011-2022 走看看