2012-07-09 53 views
0

我有以下設置:一個運行2.6.34內核的imx28。 SAIF接口連接到Cinterion調制解調器的PCM輸出。我想將PCM原始數據導出到用戶空間,像字符驅動程序。你對實施有什麼想法嗎?PCM原始數據進入用戶空間

+0

*「你對實施有什麼想法嗎?」*有點模糊。也許你應該詳細談談你遇到什麼問題? – ArjunShankar 2012-07-09 09:12:40

+0

因此,mxs-dai.c是SAIF接口的驅動程序。在內核實現中,saif驅動程序連接到sgtl5000音頻編解碼器。我的想法是在mxs-dai之上構建一個字符驅動程序,並使用struct snd_soc_dai_ops mxs_saif_dai_ops與SAIF接口進行通信。這是正確的方法嗎? – 2012-07-09 09:21:01

回答

0

「正確的做法」可能是製作一個ALSA驅動程序,並通過ALSA驅動程序訪問PCM數據。然後該設備將顯示爲聲音設備,PCM數據可以通過任何ALSA音頻程序(如arecord)訪問。

優點:

  • 您正在使用聲音數據的標準API,讓您的設備可以通過許多現有的音頻工具進行訪問。相反,您編寫的用戶空間程序將與其他音頻設備一起使用。
  • 驅動程序應該提供有關PCM採樣率和數據格式的相關細節,因此它可以輕鬆用於音頻程序。

i.MX28 ALSA驅動程序使用ASoC架構。請參閱Linux源中的Documentation/sound/alsa/soc目錄。

P.S .:我看到你問了一個follow-on question這表明你正在進入ALSA ASoC方向。