ALSA驱动框架简介

kernel/sound:core 该目录包含了ALSA驱动的中间层,它是整个ALSA驱动的核心部分core/oss 包含模拟旧的OSS架构的PCM和Mixer模块core/seq 有关音序器相关的代码include ALSA驱动的公共头文件目录,该目录的头文件需要导出给用户空间的应用程序使用,通常,驱动模块私有的头...
摘要由CSDN通过智能技术生成

因为音频的播放和管理很复杂,涉及到不同的编解码芯片和不同平台对音频的支持功能(可支持哪些设备、几路输入、输出、采样率范围…),所以我们需要一个统一的思路或者说框架方法来组织管理音频设备,控制输入输出,同时又要求芯片端(soc)和编解码芯片端的牵连(耦合)尽量少,提高兼容性和可移植性。
我们大概介绍一下:
1、相关文件目录及功能介绍
kernel/sound:

core 该目录包含了ALSA驱动的中间层,它是整个ALSA驱动的核心部分
core/oss 包含模拟旧的OSS架构的PCM和Mixer模块
core/seq 有关音序器相关的代码
include ALSA驱动的公共头文件目录,该目录的头文件需要导出给用户空间的应用程序使用,通常,驱动模块私有的头文件不应放置在这里
drivers 放置一些与CPU、BUS架构无关的公用代码
i2c ALSA自己的I2C控制代码
pci pci声卡的顶层目录,子目录包含各种pci声卡的代码
isa isa声卡的顶层目录,子目录包含各种isa声卡的代码
soc 针对system-on-chip体系的中间层代码
soc/codecs 针对soc体系的各种codec的代码,与平台无关

2、alsa驱动框架
alsa驱动是由Machine(板载硬件)、platform(soc,可以理解为即cpu的audio模块部分)、codec(音频编解码模块)三部分组成,其中platform和codec通过DAI相连接,构建了音频数据通路。
连接示意图如下:
在这里插入图片描述
Machine:是一款含有音频模块的产品,例如手机、开发板等,不同的设备可能由不同型号的cpu、codec、不同的输入输出设备组成,Machine为音频的输入输出提供了支持,所以Machine包含的信息基本是不可重用的,这部分是由芯片方案商和开发者根据板子的具体信息来制定的。

platform:一般指某个SOC平台,比如三星、mtk、展讯等等,虽然他们是不同的生产商的芯片,但是在音频模块有一些共同的特点,比如DMA、IIS/PCM、音频时钟的设置和操作方法,但是不同系列的SOC之间涉及具体的操作及参数设置是由差异的,所以不同厂商的pla

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值