[Armadillo:03204] Re: Armadillo-500の音声出力について

nakai email@hidden
2008年 7月 29日 (火) 20:32:49 JST


nakaiです。

> 現在、Armadillo-500を使用して
> 「マイク入力→入力データをそのまま出力」という動作をさせたく、
> /dev/dspをアプリ起動時にRONLYとWONLYでオープンし、
> read()→write()→read()→write()と繰り返していると
> 以下のような現象が発生します。

codecをBypassモードにしてあげると入力→出力ということもできますね。
# linuxではノータッチ

cat /dev/dsp > /dev/dsp
でもできますね。(ノイズがのるかもしれませんが。)

> 「DMA Config failed」のエラーを回避する方法は
> 何かありますでしょうか?
> それとも、エラーが発生するのは、書き込みが
> 追いついていないだけなので、printk()の出力箇所を
> コメントアウトする、でも問題がないことなのでしょうか?

コメントアウトでも問題ないですが、
writeが追いつかないとノイズがのると思います。

サンプリングレートを下げるとどうでしょう?


山本 慎二郎 さんは書きました:
> いつもお世話になっております。
> 山本@北都システムです。
> 
> 現在、Armadillo-500を使用して
> 「マイク入力→入力データをそのまま出力」という動作をさせたく、
> /dev/dspをアプリ起動時にRONLYとWONLYでオープンし、
> read()→write()→read()→write()と繰り返していると
> 以下のような現象が発生します。
> 
> ■現象
> 「DMA Config failed」がコンソールに出力される
> 
> ■環境
> ・atmark-dist-20080617
> ・linux-2.6.18-at8
>     ※特にデフォルトから手を入れていません。
> 
> 
> 調査してみたところ、
>   ●linux-2.6.18-at8/sound/arm/mxc-alsa-i2s.c
>     (L241)mxc_alsa_i2s_dma_playback()
>       mxc_dma_config()の戻り値が-EBUSYのため
>       printk出力されている。
>         →linux-2.6.18-at8/arch/arm/plat-mxc/sdma/dma_sdma.c
>             (L295)で-EBUSY
> 
> というところまでは追えましたが、
> 回避方法は不明です。
> 
> 上記を見る限りwrite()によるデータ転送が追いついて
> いないように見えるのですが、ユーザーアプリ側で出力可能な
> タイミングを知ることができないため、
> 回避できないように思えます。
> (write()はwaitせずに正常にreturnしてきます。
>  また、pollも「書き込み可」と返ってきます)
> 
> 以下のように、WONLY側のwrite()後、close()→open()して
> 再度write()をするように繰り返した場合は
> エラー出力の現象が発生しませんが、
> プツプツというノイズが入ってしまうため、
> 実用に耐えません。
> 
>   read()→write()→close()→read()→open()→write()→close()→…
> 
> 「DMA Config failed」のエラーを回避する方法は
> 何かありますでしょうか?
> それとも、エラーが発生するのは、書き込みが
> 追いついていないだけなので、printk()の出力箇所を
> コメントアウトする、でも問題がないことなのでしょうか?
> 
> よろしくお願い致します。
> 
> 以上
> 
> =================================================
> 北都システム株式会社
>   第4ユニット ITソリューショングループ所属
> 山本  慎二郎(Shinjiro Yamamoto)
>  TEL: 045-470-2773
>  Mail: email@hidden
> =================================================
> 
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/mailman/listinfo/armadillo



armadillo メーリングリストの案内