Android深度探索(卷1)HAL与驱动开发
心得体会
第八章 让开发板发出声音:蜂鸣器驱动
蜂鸣器是s3c6410开发板上带的一个硬件设备,可以通过向寄存器写入特定的值来控制蜂鸣器发出尖叫声。
在前面的章节编写了两个完整的linux驱动:word_count驱动和led驱动,两个有一共同点就是都有一个源代码文件组成。
代码重用分为静态和动态两种。即将需要重要的代码使用者放在一起进行编译,最终生成一个可执行的文件或程序库。
蜂鸣器与led类似,也是s3c6410开发板上自带的一个简单的硬件。如果打开蜂鸣器,开发板会发出类似蜂鸣的尖叫声,关闭蜂鸣器则会停止尖叫声。
如果编写的linux驱动程序在逻辑上是正确的,那么可以正常装载和卸载,但在某种情况下,可能某些程序会出现异常情况。这时linux驱动可能会无法正常卸载。
蜂鸣器也称pwm,基本原理是通过脉冲来控制蜂鸣器的打开和停止。
Pwm驱动由三个文件组成:pwm_c.pwm_fun.h、pwm_fun.c。其中pwm.c是驱动主程序。pwm_fun.h引用了相应的头文件,以及定义了一些宏。pwm_fun.c文件则包含了打开和停止pwm的两个函数。
Linux 驱动常用的代码重用方式。以及强行卸载Linux驱动的方法,从而免去不断重启机器的痛苦。