Android探索與驅動開發學與思(8)

來源:互聯網
上載者:User

標籤:

蜂鳴器是 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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.