当前位置:嗨网首页>书籍在线阅读

25-总结

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

17.7 总结

音频设备接口包括PCM、IIS和AC97等,分别适用于不同的应用场合。针对音频设备,Linux内核中包含了3类音频设备驱动框架,OSS、ALSA和ASoC,OSS包含dsp和mixer字符设备接口,在用户空间的编程中,完全使用文件操作;ALSA后者以card和组件(PCM、mixer等)为主线,在用户空间的编程中不使用文件接口而使用alsalib;ASoC则是ALSA在SoC方面的演变,它建立在ALSA之上,将ALSA驱动中CPU相关的代码和Codec相关的代码进行了分离。

在音频设备驱动中,几乎必须使用DMA,而DMA的缓冲区会被分割成一个一个的段,每次DMA操作进行其中的一段。OSS驱动的阻塞读写具有流控能力,在用户空间不需要进行流量方面的定时工作,但是它需要及时地写(播放)和读(录音),以免出现缓冲区的underflow 或overflow。ALSA和ASoC的流控则由ALSA的核心层处理,底层驱动仅以trigger()、pointer()等方法进行配合。