赞
踩
【软件框架】
在对要做的事情一无所知的时候,从全局看看系统的拓扑图对我们认识新事物有很大的帮助。Audio 部分的驱动程序框架如下图所示:
这幅图明显地分为 3 级。
上方蓝色系的 ALSA Kernel 整体属于Linux Kernel,是原生Linux 操作系统的一部分,其中又分出 ASoC Core 和 PCM Core 两级,和她们相关的代码都可以直接在 Linux 源码中找到。
中间淡红色的部分看名字就知道和驱动相关,分为左右 2 条支线。需要注意的是左侧支线由 ASoC 派生而来,而 ASoC 虽本质上属于 ALSA,但在代码上将各部分驱动进行分离设计,也就是这里看到的 Platform Driver、Machine Driver、Codec Driver,分别对应 CPU 驱动、板驱动、编解码芯片驱动。这种架构增强了 CPU 芯片驱动和编解码芯片驱动的可移植性,让我们在开发音频驱动时只需要重新编写电路板相关的板驱动即可。进一步分析,紧接 Platform Driver 后面是 SST Driver,这个 SST 即 Smart Sound Technology,是 Intel 自研的技术,所以这部分结构不一定适用于其它 CPU 芯片,但一旁的 DMA Driver 却是所有 CPU 驱动都必须包含的,因为音频的实质是数据;Codec Driver 之后是 I2C 驱动,对于编解码芯片寄存器的读写都是通过 I2C 总线实现。右侧支线从 PCM
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。