• 第八章


    驱动蜂鸣器
    介绍蜂鸣器的实现原理,实现一个完整的蜂呜器驱动,通过驱动控制蜂鸣器的打关。

    蜂鸣器也称为PWM脉冲宽度调制,基本原理就是通过脉冲来控制蜂鸣器的打开和停止。蜂鸣器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出的声音

    linux驱动的代码重用,代码重用分为静态重用和动态重用,将要重用的代码放在头文件中声明,这种是静态重用,linux驱动可以使用另一个linux驱动中的资源,这是动态重用。

    还有一种代码共享的方式:模块依赖,也称为导出符号,就是在一个驱动模块里使用另一个驱动模块里的被导出的符号。

    在某些情况下,linux驱动无法正常卸载,需要强行卸载,但是本章的方法不能强行卸载所有的linux驱动模块,只能卸载由于异常情况而导致的linux驱动模块无法卸载情况。比如:

    初始化函数崩溃,这种情况的表现是当前linux驱动模块没有被任何其他的linux驱动模块使用,但却显示已经被引用了一次。解决方法把是当前的linux驱动模块的引用计数器清零即可。

    卸载函数被阻塞,这种情况的表现是一执行rmmod命令就会停在那里不动,永远也不会返回到系统的操作提示符,这种情况的解决方法是将原来的卸载函数替换成一个空的卸载函数即可。

     
  • 相关阅读:
    左式堆
    winsock库
    二叉堆
    关键字explicit
    HDOJ 1012
    HDOJ 1013
    STL priority实例
    二项队列
    ASP.NET Session过期问题揭秘
    RenderControl (asp.net)
  • 原文地址:https://www.cnblogs.com/bentan/p/5638531.html
Copyright © 2020-2023  润新知