Android深度探索HAL與驅動開發-——第8章

來源:互聯網
上載者:User

標籤:

第8章:

  本章主要講了蜂鳴器的實現原理,實現完整的蜂鳴器驅動。主要用到的是pwm驅動,pwm由多個檔案組成。          
  首要介紹的是Linux驅動代碼的重用。編譯是由多個檔案組成的Linux驅動。兩個完整的linux驅動是word_count和led驅動,都是由一個原始碼檔案組成(.c)。但對於複雜的linux驅動需要使用多個原始碼檔案存放不同功能代碼,最終產生ko檔案或linux核心。
   接著是Linux驅動模組依賴。代碼重用分為靜態和動態,在該節中介紹了模組依賴即為匯出符號:在一個驅動模組裡使用另一個驅動模組裡的被匯出的符號。在Linux驅動中使用到兩個宏匯出函數,分別為export_symbol和export_symbol_gpl。由於存在兩個Linux驅動所以需要在makefile檔案中指定兩個linux模組,在卸載兩個linux驅動順序時要先卸載symbol_consumer再卸載symbol_producer。
  再者是在出現異常情況下卸載Linux驅動。初始化函數崩潰、卸載函數被阻塞。蜂鳴器驅動原理是通過脈衝來控制蜂鳴器開啟和停止。(pwm)pwm使用連接埠F的GPFCON寄存器進行控制。該寄存器在linux核心中對應的宏是S3C64XX_GPFCON。該宏表示GPFCON寄存器的虛擬位址。測試蜂鳴器:使用到ioctl,先進入/root/drivers/ioctl目錄,執行build.sh指令檔編譯和上傳ioctl檔案。在測試pwm驅動之前先要編譯和安裝pwm驅動,然後進入開發板終端的/data/local目錄,開啟pwm。

 

Android深度探索HAL與驅動開發-——第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.