第8章 蜂鸣器

   三星开发板再带蜂鸣器,所以我们可以通过向寄存器写入特定的值来控制蜂鸣器发出声响。开发一个驱动时可能会在init、exit等函数中发生错误这是驱动可能会安装失败,更糟的是无法使用rmmod驱动,这也就会造成无法再次安装的窘境。linux驱动的代码重用有很多种方法。可以采用标准C程序方式。将要重用代码放在其他的文件中。如果试用某些功能,include的相应的头文件就行。编译是由多个文件组成的linux驱动,代码重用分为静态和动态两种,静态重用这种方式是低级的重用,在本节将介绍另外一种diamante共享的方式:模块依赖,也称之为导出符号。强行卸载驱动,就是当驱动程序出现异常情况是,linux驱动可能会无法正常卸载。比如初始化数据崩溃,由于驱动模块的初始化函数进行了默写操作而崩溃,从而导致初始化无法正常返回。这种情况的表现是当前linux驱动模块没有任何其他模块使用,我们可以使用rmmod  bad_driver命令来卸载。蜂鸣器驱动也称之为pwn脉冲宽度调制,基本原理是通过脉冲来控制蜂鸣器的打开和停止。pwn驱动与LED驱动的实现流程类似,可能还要简单一些。

原文地址:https://www.cnblogs.com/1310-09/p/5561130.html