zoukankan      html  css  js  c++  java
  • android下调试声卡驱动之概述

          在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的代码,与平台无关。

     

     

  • 相关阅读:
    你人生中的那口井挖了没有?
    Stream接口
    console (控制台)
    assert.fail()
    assert.strictEqual()
    assert.equal()
    assert.ifError()
    assert.ok()
    nodejs assert 模块
    闭包
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5067900.html
Copyright © 2011-2022 走看看