PCM原始数据到用户空间

Posted

技术标签:

【中文标题】PCM原始数据到用户空间【英文标题】:PCM raw data into user space 【发布时间】:2012-07-08 16:01:21 【问题描述】:

我有以下设置:运行 2.6.34 内核的 imx28。 SAIF 接口连接到 Cinterion 调制解调器的 PCM 输出。我想以字符驱动程序之类的方式将 PCM 原始数据导出到用户空间。您对实施有什么想法吗?

【问题讨论】:

“您对实现有什么想法吗?” 有点含糊。也许您应该更详细地了解您遇到的问题? 所以,mxs-dai.c是SAIF接口的驱动。在内核实现中,saif 驱动程序连接到 sgtl5000 音频编解码器。我的想法是在 mxs-dai 之上构建一个字符驱动程序,并使用 struct snd_soc_dai_ops mxs_saif_dai_ops 与 SAIF 接口进行通信。这是正确的方法吗? 【参考方案1】:

“正确的做法”大概是制作一个ALSA驱动,通过ALSA驱动访问PCM数据。然后该设备显示为一个声音设备,并且 PCM 数据可以被任何 ALSA 音频程序访问,例如 arecord。

优点:

您正在使用标准 API 来处理声音数据,因此许多现有的音频工具都可以访问您的设备。相反,您编写的用户空间程序将适用于其他音频设备。 驱动程序应提供有关 PCM 采样率和数据格式的相关详细信息,以便它可以轻松地用于音频程序。

i.MX28 ALSA 驱动程序使用 ASoC 架构。请参阅 Linux 源代码中的 Documentation/sound/alsa/soc 目录。

P.S.:我看到你问过 follow-on question,这表明你正朝着 ALSA ASoC 方向前进。

【讨论】:

我能否修改 ALSA 文件以支持 Voice IC Si3228x 的 PCM 通信,因为我无法在任何地方找到任何支持。

以上是关于PCM原始数据到用户空间的主要内容,如果未能解决你的问题,请参考以下文章

undo表空间

[Oracle]理解undo表空间

如何把dmp导入到指定用户指定的表空间 [转]

Oracle11g 数据泵导入数据库dmp文件时,表空间和用户名与我的表空间和用户名不一样怎么处理?

Qt:将数据库存储/创建到用户空间

Laravel 5 应用命名空间