我是靠谱客的博主 怕孤独电灯胆,最近开发中收集的这篇文章主要介绍Linux audio 驱动架构,audio物理链路+逻辑设备详细描述(codec + platform + machine底层三大块)Linux ALSA 音频系统:物理链路篇,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
两篇写的很好的博文:(作者:https://me.csdn.net/zyuanyun)
一: Linux ALSA 音频系统:物理链路篇
Linux ALSA 音频系统:物理链路篇
硬件平台及软件版本:
- Kernel - 3.4.5
- SoC - Samsung exynos
- CODEC - WM8994
- Machine - goni_wm8994
- Userspace - tinyalsa
Linux ALSA 音频系统架构大致如下:
+--------+ +--------+ +--------+
|tinyplay| |tinycap | |tinymix |
+--------+ +--------+ +--------+
| ^ ^
V | V
+--------------------------------+
| ALSA Library API |
| (tinyalsa, alsa-lib) |
+--------------------------------+
user space ^
-------------------------------|---------------------
kernel space V
+--------------------------------+
| ALSA CORE |
| +-------+ +-------+ +------+ |
| | PCM | |CONTROL| | MIDI |...|
| +-------+ +-------+ +------+ |
+--------------------------------+
|
+--------------------------------+
| ASoC CORE |
+--------------------------------+
|
+--------------------------------+
| hardware driver |
| +-------+ +--------+ +-----+ |
| |Machine| |Platform| |Codec| |
| +-------+ +--------+ +-----+ |
+--------------------------------+
二 : Linux ALSA 音频系统:逻辑设备篇
声卡和 PCM 设备的建立过程
前面几章分析了 Codec、Platform、Machine 驱动的组成部分及其注册过程,这三者都是物理设备相关的,大家应该对音频物理链路有了一定的认知。接着分析音频驱动的中间层,由于这些并不是真正的物理设备,故我们称之为逻辑设备。
PCM 逻辑设备,我们又习惯称之为 PCM 中间层或 pcm native,起着承上启下的作用:往上是与用户态接口的交互,实现音频数据在用户态和内核态之间的拷贝;往下是触发 codec、platform、machine 的操作函数,实现音频数据在 dma_buffer <-> cpu_dai <-> codec 之间的传输。后面章节将会详细分析这个过程,这里还是先从声卡的注册谈起
最后
以上就是怕孤独电灯胆为你收集整理的Linux audio 驱动架构,audio物理链路+逻辑设备详细描述(codec + platform + machine底层三大块)Linux ALSA 音频系统:物理链路篇的全部内容,希望文章能够帮你解决Linux audio 驱动架构,audio物理链路+逻辑设备详细描述(codec + platform + machine底层三大块)Linux ALSA 音频系统:物理链路篇所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复