2020年3月26日木曜日

[Linux] 音がなる時にノイズがなる。

こんにちは

ソフトな道をほのぼのと今日も歩きます。


今回は、音が鳴る時に瞬間的にノイズのようなものが入ることについて記載します。


鳴っていたのを調べてみました。


linux-x.xx.xx/sound/soc/codecs/tlv320aic31xx.c


{TIMER_CLOCK_MCLK_DIVIDER , 0x00},*/


これをいじるとpop音の対応ができるとあったのですができませんでした。


試行錯誤した挙句、初期化を行うとどうやらパツパツ音が鳴るようです。


なので、起動時に一度だけ初期化を行うようにしました。


結果としてpop音はこの対策によってならなくなりました。


[環境]

私の使用環境は VMware 上でUbuntu14.04を使用しています。

コンパイラ: arm-linux-gnueabihf-gcc


商品券を12000円を国民に給付する案があるようです。


安倍総理の顔入りなら記念にとっておこう。


麻生元総理ならすぐに使おうかな。


2020年3月14日土曜日

[Linux] エージングで逝ってしまう調査2

こんにちは

ソフトな道をほのぼのと今日も歩きます。


今回は、前回の逝ってしまう原因調査の続きです。


スレッドがsnd_pcm_writei()実行中に”-EBADFD”が入ってくると、

   

    そのエラーに対する処理は入っていない為


    リトライ発生という無限ループに入っていました。


https://www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m.html#gabc748a500743713eafa960c7d104ca6f


    こちらを見ると、”-EBADFD自体はPWMが正しくない状態になっているようです。


    手探りですが、snd_pcm_recover()を行って、復帰しなければ

   

    あきらめて、全体的にリトライを行うようにしようと思います。

           

今回は以上です。


[環境]

私の使用環境は VMware 上でUbuntu14.04を使用しています。

コンパイラ: arm-linux-gnueabihf-gcc



2020年3月6日金曜日

[Linux] エージングで逝ってしまう調査

こんにちは

ソフトな道をほのぼのと今日も歩きます。


今回は、linux 上で自作したアプリを実行中に何のエラーもなくどこかに逝ってしまったかのような現象について考えてみたいと思います。


2020-03-05時点ではまだ分かっていません。


  1. デバッカで強制ブレークすると、ソース情報にはないアドレスで止まりました。

→何かしらの処理でメインに戻れなくなったか?スレッドが入ってはいけない処理でスレッドが入ってしまったか

  1. "/etc/rc.local"から本アプリを登録していたが辞めてみたところ、現象発生時に"ctrl+c"で強制的に抜けることができた。

→DDRメモリが辺という訳ではない。

  1. いたるところでデバッグ用にprintf文を出力させてみた。

          →音再生開始してから終了するまでの間にスレッドが入っているような気がします。

スレッドは確かにクリエイトして動かしているだけなので、

動作としてラウンドロビンだとアウトかもしれません。

まずは、スレッドの動作仕様を見直してみることにします。

int pthread_getschedparam(pthread_t thread, int *policy,

                         struct sched_param *param);

で見ていきます!

           

今回は以上です。


[環境]

私の使用環境は VMware 上でUbuntu14.04を使用しています。

コンパイラ: arm-linux-gnueabihf-gcc