第八章
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第八章相关的知识,希望对你有一定的参考价值。
驱动蜂鸣器
介绍蜂鸣器的实现原理,实现一个完整的蜂呜器驱动,通过驱动控制蜂鸣器的打关。
蜂鸣器也称为PWM脉冲宽度调制,基本原理就是通过脉冲来控制蜂鸣器的打开和停止。蜂鸣器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出的声音
linux驱动的代码重用,代码重用分为静态重用和动态重用,将要重用的代码放在头文件中声明,这种是静态重用,linux驱动可以使用另一个linux驱动中的资源,这是动态重用。
还有一种代码共享的方式:模块依赖,也称为导出符号,就是在一个驱动模块里使用另一个驱动模块里的被导出的符号。
在某些情况下,linux驱动无法正常卸载,需要强行卸载,但是本章的方法不能强行卸载所有的linux驱动模块,只能卸载由于异常情况而导致的linux驱动模块无法卸载情况。比如:
初始化函数崩溃,这种情况的表现是当前linux驱动模块没有被任何其他的linux驱动模块使用,但却显示已经被引用了一次。解决方法把是当前的linux驱动模块的引用计数器清零即可。
卸载函数被阻塞,这种情况的表现是一执行rmmod命令就会停在那里不动,永远也不会返回到系统的操作提示符,这种情况的解决方法是将原来的卸载函数替换成一个空的卸载函数即可。
以上是关于第八章的主要内容,如果未能解决你的问题,请参考以下文章