こんにちは、
私は R685-AUD-EVK で実行されるオーディオ プロセッシング デモに取り組んでいます。私は入門リソースに従いました。MCU と DSP FW は主に SDKs の「audio_demo_bm」に基づいています。
MCU FW は、シンプルなユーザーインターフェースのために GPIOS の基本的な初期化のみを実行します。
DSP FW はオーディオ入出力用の I2S と DMA を初期化し、NXP アプリケーション ノートの 1 つで提案されている「トリプル バッファ」アプローチを使用してデータをバッファリングします。
実際のオーディオ プロセッシング関数は、1msのオーディオデータ(つまり、左48個、右48個のサンプルが受信されました。
オーディオ データのプロセッシングには、natureDSP ライブラリ関数が使用されます。
これまでのところ、MCU FW と DSP FW がビルドされ、デバッグ モードで実行されるとすべてが期待どおりに実行されますが、DSP FW が MCU からロードされるときに問題が発生しています (リリース ビルド、 DSP_IMAGE_COPY_TO_RAM = 1)。
オーディオ プロセッシング関数(ISRから呼び出される)が「.iram0.text」に配置されている場合(命令 TCM メモリ) DSP FW で例外が発生します。
xt-ocd プリント:
エラー: 例外の詳細: exccause:0x0、excvaddr:0xff0042、epc:0x240205bc、epcdbg:20e022
関数が TCM 以外のメモリに配置されている場合、または DSP FW がデバッグ モードでロードされている場合、この問題は発生しません。
観察された問題を説明するために探すべきものはありますか?
これはメモリの配置に関係しているのでしょうか?
@Omar_Anguiano返信ありがとうございます。
post_buildスクリプトは「.iram0.text」をコピーしないことがわかりました。セクションは MCU コードに含まれるバイナリ ファイルに含まれていたSO、実際の機能コードはメモリ内に存在しませんでした。
現時点では「デバッグ」モードで作業を継続CANため、アライメントの問題についてはこれ以上調べていません。
BRウィタリ
アライメントの問題が潜在的な問題となる可能性がありますが、デバッグ用にビルドされている場合はこの問題は発生しないことがわかります。
リリース用にビルディングする場合、コンパイラによっていくつかの最適化レベルが追加されるCANがあり、それが例の動作に影響を与える可能性があります。
MCUが.iram0.textを適切にコピーしない場合または整列させないと、DSP は無効な命令をフェッチし、結果として 0x0 (不正な命令) が発生する可能性があります。
よろしくお願いします、
オマール