我是靠谱客的博主 怕孤独电灯胆,最近开发中收集的这篇文章主要介绍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 音频系统:物理链路篇所遇到的程序开发问题。

    如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

    本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
    点赞(54)

    评论列表共有 0 条评论

    立即
    投稿
    返回
    顶部