標籤:
蜂鳴器是 S3C6410 開發板上帶的一個硬體裝置。可以通過向寄存器寫入特定的值來控制蜂鳴器 發出尖叫聲。PWM驅動的實現方式不同於 LED 驅動, PWM 驅動將由多個檔案組成。這也是大多數 Linux 驅動的標準實現方式. 也就是說-個複雜的驅動不太可能將所有的代碼都放在一個檔案中。
本節講介紹把linux驅動分成多個檔案的方式。這些檔案中的資料結構、函數的代碼也可以被多個不同的驅動使用,所以這也是代碼重用 的重要方法。
Linux驅動代碼重用:
編譯是由多個檔案組成的 Linu x 驅動
Linux 驅動模組的依賴(匯出符號)
(1)代碼重用分為靜態和動態兩種。
(2)在 Linux 驅動中可以使用如下兩個宏匯出函數。
(3)輸入命令可以從/proc/kallsyms 檔案中查看 symbol_producer 驅動匯出的符號。(cat /proc/kallsyms I grep symbol_producer)
(4)depmod 和 modprobe 命令。
在Linux驅動的代碼重用中,舉個例子涉及的C語言原始碼檔案有main.c,fun.c,product.c和product.h。其中main.c是Linux驅動的主程式。在fun.c和product.c中定義和實現了在main.c中使用的函數。在main.c中通過extern關鍵字使用fun.c中的函數,接下來學習了強行卸載linux驅動,只能卸載由於卸載異常情況而導致的linux驅動模組無法卸載的情況。
情況1:初始化函數崩潰
情況2:卸載函數被阻塞
蜂鳴器驅動是一個重點,通過相應的寄存器來控制蜂鳴器的開啟和關閉,並且在實驗蜂鳴器驅動時,將開啟和關閉蜂蜜器的函數放到另外的C原始碼檔案中。PWM驅動由三個檔案組成:PWM.C、PWM—fun.h、pwm-fun.c、其中pwm.c是驅動主程式。
蜂鳴器驅動
原理:蜂鳴器也稱為 PWM (脈衝寬度調製〉,基本原理是通過脈衝來控制蜂鳴器的開啟和停止。
本章我學習到了:
1.Linux驅動常用的代碼重用方式以及強行卸載liunx驅動的方法。
2.蜂鳴控制電路:靠改變脈衝寬度來控制輸出電壓,通過改變周期來控制其輸出頻率中斷實驗。
Android探索與驅動開發學與思(8)