让开发板发出声音:蜂鸣器驱动
第八章介绍了一个个实验:蜂鸣器驱动,让开发板发出声音。
将介绍蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动,通过该驱动可以控制蜂鸣器的打开与关闭。
蜂鸣器也称为PWM脉冲宽度调制,基本原理就是通过脉冲来控制蜂鸣器的打开和停止。蜂鸣器是开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出的声音。本节介绍了蜂鸣器的实现原理,并实现一个完整的蜂鸣器驱动,可以打开和关闭。PWM驱动的实现方式不同于LED驱动,PWM驱动由多个文件组成,这也是大多数Linux驱动的标准实现方式。
Linux驱动的代码重用有很多种方法。分为静态重用和动态重用,静态重用是代码级的重用,就是将需要重用的代码和使用这些代码的文档放在一起编译,最终生成一个可执行的文件或程序库(.ko和.so等)。代码共享就是在一个驱动模块里使用另一个驱动模块里被导出的符号(常量、变量、函数等)。
如果编写的Linux驱动程序是正确的,那么就可以正常装载和卸载,但是在某些情况下,可能某些程序会出现异常情况,这时Linux驱动可能会无法 正常卸载。如果在模拟器或开发板上采用动态装载.ko文件的方式测试Linux驱动,就算无法正常卸载Linux驱动,只要重启模拟器或开发板,动态 Linux模块就会从内存中卸载。