让开发板发出声音:蜂鸣器驱动
让开发板发出声音:蜂鸣器驱动
蜂鸣器是开发板上带的一个硬件设备。可以通过向寄存器写入特定的值来控制蜂鸣器发出尖叫声。本节将介绍蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动。PWM驱动的实现方式不同于LED驱动,PWM驱动将由多个文件组成。
Linux驱动的代码重写有很多种方法。可以采用标准C程序的方式。代码重用分为静态和动态两种,静态重用这种方式是代码级的重用,也就是将需要重用的代码和使用这些代码的使用者放在一起进行编译,最终生成一个可执行文件或程序库。在本节介绍一种代码共享的方式:模块依赖,也称为导出符号。如果利用一句话解释如何利用导出符号实现代码共享,这句话就是“在一个驱动模块里使用另一个驱动模块里的被导出的符号(常量、变量、函数等)”。
本节介绍如何处理无法正常卸载的Linux驱动。但本节的方法只能卸载由于异常情况而导致的Linux驱动模块无法卸载的情况。这些情况有:初始化函数崩溃;卸载函数被阻塞。
蜂鸣器驱动的原理:蜂鸣器也称PWM(脉冲宽度调制),基本原理是通过脉冲来控制蜂鸣器的打开和停止。