こんにちは、皆さん
私たちは、[IMXRT-1176-EVKB]とイーサネット通信用のWhitebeet Codicoボードを使用してデュアルコアアプリケーションを開発しています。
特定のボトルネックが発生しました。ファームウェアは、Cortex-M7 コアで実行すると完璧に動作します。ただし、同じロジックを Cortex-M4 コアで実行すると、アプリケーションはハングする前に短時間動作します。このハングは最終的にノード側で配列バッファ オーバーフローを引き起こします。
トラブルシューティングに関する詳細:
時計: 時計の設定を確認しました。CM4 で部分的/初期通信が実現できたため、基本的なクロック設定エラーは除外されました。
症状: ハングはタイミングが一貫していませんが、結果は一貫しており、通信フローが停止し、ノードのバッファがオーバーフローします。
Whitebeet モジュールとインターフェイスする際に、CM7 と CM4 の間でパフォーマンスまたはタイミングの不一致に遭遇した人はいますか?
次にどこを探せばよいかについての洞察や提案があれば、ぜひお聞かせください。
こんにちは@techexplorer_139さん、
情報ありがとうございます!M4 コードが SDRAM で実行されていることに気づきましたが、M4 のみを SRAM に再配置することは可能ですか?そうすればパフォーマンスが大幅に向上します。
すてきな一日を、
カン
---------------------------------------------------------------------------------
注記:
- この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう!
- スレッドは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。
後ほど関連する質問がある場合は、新しいスレッドを開いて、閉じたスレッドを参照してください。
---------------------------------------------------------------------------------
CM4 でアプリケーションを実行すると、CM7 には、helloworld_cm7 の例に示されているように、CM4 の起動を開始する小さなコードのみが含まれます。
データ セクションの配置については、メモリ マップとリンカー GUI のスクリーンショットを共有しました。
現在、CM4 のコードを最適化して CM7 と同じように動作するように取り組んでいます。
こんにちは@techexplorer_139 、
M4 でアプリケーションを実行すると、M7 でも実行するコードがありましたか?M4のデータセクションはどこに配置しましたか?M7とM4で共有されている場所ですか?それともM4だけが所有している場所ですか?M4コードの最適化オプションを強化しましたか?何か違いはあるのでしょうか?ご説明をよろしくお願いいたします。
すてきな一日を、
カン
---------------------------------------------------------------------------------
注記:
- この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう!
- スレッドは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。
後ほど関連する質問がある場合は、新しいスレッドを開いて、閉じたスレッドを参照してください。
---------------------------------------------------------------------------------
こんにちは@techexplorer_139さん、
M4 のデータセクションのみを SRAM に再配置してみましたか?何か違いはありましたか?
すてきな一日を、
カン
---------------------------------------------------------------------------------
注記:
- この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう!
- スレッドは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。
後ほど関連する質問がある場合は、新しいスレッドを開いて、閉じたスレッドを参照してください。
---------------------------------------------------------------------------------
こんにちは@techexplorer_139さん、
M4 コードをフラッシュで実行し、データ セクションをSRAM_ITC_cm4 などの RAM スペースに割り当てるのはどうでしょうか?
すてきな一日を、
カン
---------------------------------------------------------------------------------
注記:
- この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう!
- スレッドは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。
後ほど関連する質問がある場合は、新しいスレッドを開いて、閉じたスレッドを参照してください。
---------------------------------------------------------------------------------
あなたの提案どおりに実行してみましたが、CM7 コアは起動しますが、CM4 コアはメインで停止せず、スクリーンショットに記載されているようにコードでエラーが発生します。また、CM7 メイン関数で CM4 のブート アドレスを board_flash アドレスに変更しました。
こんにちは、 @techexplorer_139 さん。
スレーブコアプロジェクトをXIPターゲットとして実行する方法に関するドキュメントを提供しています。詳細については、 https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs-Knowledge/RT1170-How-to-make-a-slave-core-projec...を参照してください。
お役に立てれば幸いです。
すてきな一日を、
カン
---------------------------------------------------------------------------------
注記:
- この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう!
- スレッドは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。
後ほど関連する質問がある場合は、新しいスレッドを開いて、閉じたスレッドを参照してください。
---------------------------------------------------------------------------------