Android深度探索(卷1)HAL與驅動開發linux
心得體會函數
第八章 讓開發板發出聲音:蜂鳴器驅動開發
蜂鳴器是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驅動的方法,從而免去不斷重啓機器的痛苦。