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

  • 相关阅读:
    Linux 学习 step by step (1)
    ubuntu server nginx 安装与配置
    ubuntu server samba服务器配置
    iOS app集成支付宝支付流程及后台php订单签名处理
    mac 连接windows 共享内容
    linux 文件查找,which,whereis,locate,find
    ubuntu server vsftpd 虚拟用户及目录
    ubuntu server 安装 mantis bug tracker 中文配置
    ubuntu server vsftpd 匿名用户上传下载及目录设置
    linux 用户管理,用户权限管理,用户组管理
  • 原文地址:https://www.cnblogs.com/wstone/p/5650993.html
Copyright © 2011-2022 走看看