android下調試音效卡驅動之概述

來源:互聯網
上載者:User

標籤:android   linux   音效卡   alsa   驅動   

      在Android中音頻系統使用的是ALSA系統架構。ASoC--ALSA System on Chip ,是建立在標準ALSA驅動層上,為了更好地支援

嵌入式處理器和行動裝置中的音頻Codec的一套軟體體系,在音訊裝置驅動中ASoC被分為Machine、Platform和Codec三大部分。

      Codec部分:負責音頻解碼,這部分代碼完全無平台無關(裝置原廠提供),它包含了一些音訊控制項(Controls),音頻接

                           口,DAMP(動態音頻電源管理)的定義和Codec IO功能。為了保證硬體無關性,任何特定於平台的代碼都要移

                           到Platform和Machine驅動中。

      Platform部分:包含了平台的音頻DMA和音頻介面的配置和控制(I2S,PCM,AC97等);與處理器晶片相關的代碼。

      Machine部分:是耦合Platform和Codec驅動,同時與上層互動的代碼。由於上層是標準的alsa架構,所以下層介面肯定要做了

                           統一,這部分由Machine本身的Platform驅動和Platform裝置群組成(請跟上面的Platform驅動區別開),Platform驅動

                           核心已經完成了,所以無須過多的關心怎麼跟上層ALSA怎麼衍接的問題,我們只需要註冊一個Machine的Platform

                           裝置以及完成Platform和Codec耦合。

1、ALSA裝置檔案結構

      controlC0     用於音效卡的控制,例如通道選擇,混音,麥克風的控制等;

      pcmC0D0c   用於錄音的pcm裝置;

      pcmC0D0p   用於播放的pcm裝置;

      timer       定時器。

            其中,C0D0代表的是音效卡0中的裝置0,pcmC0D0c最後一個c代表capture,pcmC0D0p最後一個p代表playback,這些都是

      alsa-driver中的命名規則。

2、ALSA檔案目錄結構概述

      sound/core:該目錄包含了中介層,ALSA的核心驅動。那些本地ALSA模組保持在這個目錄裡。一些子目錄包含那些與核心配置

                           相關的不同的模組。

      sound/core/oss :關於PCM和mixer的OSS類比的模組儲存在這個目錄裡面。

      sound/core/seq :有關音序器相關的代碼。

      kernel /include/sound :ALSA驅動的公用標頭檔目錄,該目錄的標頭檔需要匯出給使用者空間的應用程式使用,通常驅動模組私

                          有的標頭檔不應放置在這裡。

      sound/drivers :該目錄包含了在不同架構的系統中的不同驅動共用的檔案部分。與CPU、BUS架構無關的公用代碼。

      sound/i2c :該目錄包含了ALSA自己的I2C控制碼。雖然Linux有個i2c的標準協議層,ALSA還是擁有它關於一些card的專用

                         i2c代碼,因為一些音效卡僅僅需要一些簡單的操作,而標準的i2c的API函數對此顯得太過複雜了。

      sound/pci :該目錄檔案負責PCI音效卡和一些PCI BUS的上層card模組。在pci目錄下面儲存著一些簡單的驅動檔案,而一些比較

                        複雜的,同時包含多個程式檔案的驅動會被放置在pci目錄下面一個單獨的子目錄裡面(如:emu10k1,ice1712)。

      sound/isa  該目錄檔案是處理ISA音效卡的上層card模組。

      sound/arm,sound/ppc,和sound/sparc  這裡目錄放置一些和晶片架構相關的一些上層的card模組。

      sound/usb  該目錄包含一些USB-AUDIO驅動。

      sound/pcmcia    PCCard驅動會放到這裡。CardBus驅動將會放到pci目錄裡面,因為API函數和標準PCI卡上統一的。

      sound/soc 針對system-on-chip體系的中介層代碼。

      sound/soc/codecs 針對soc體系的各種codec的代碼,與平台無關。

 

 

android下調試音效卡驅動之概述

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.