NXPコミュニティの皆様、こんにちは。
私は、MCXA156 コントローラとその開発ボードのデバッグ機能の実験を行ってきました。
私の設定:
( FRDM-MCXA156 ) およびカスタム ボード内の MCXA156。
MCUXpresso IDE v25.6 [ビルド 136] [2025-06-27]
MCU Link pro デバッガ
これまで、NXP Expresso SDK のさまざまな例を使用して、デバッグのニーズのほとんどをカバーすることができました。(ブレークポイント、データウォッチ ポイント、ITM printf リダイレクト、割り込みトレースなど)
どういうわけか、SWO 経由の Data Watch Trace/Stream の使用に行き詰まっています。MXCA156 デバッグ機能の機能を誤解しているのではないかと考えています。
私の理解では、MCXA156 は ITM と DWT をサポートしています。
これにより、読み取り/書き込みデータコンペレータを追加し、SWO ピンを介して適切なデータをストリーミング/トレース出力できるようになります。私の設定では、他のすべてのトレース機能が正常に動作しているように見えても、「SWO データ」ウィンドウを動作させることができないようです。
私のセットアップは正しいですか、それともMCUXpresso IDE が私のユースCASEをまだサポートしていないだけでしょうか?
よろしくお願いいたします。
アレックス
こんにちは@AlexRu
SWO を使用するには、提供されている手順ガイドに従ってください。
ハードウェア要件:
チップの SWO ピンがデバッガーの SWO インターフェースに接続されていることを確認します。
(これはFRDM-MCXN947ボードです)
Alice_Yang_0-1764234995466.png
ソフトウェア構成:
Alice_Yang_1-1764235038209.png
2. トレースクロックを設定します。
Alice_Yang_2-1764235054451.png
CLOCK_AttachClk(kTRACE_DIV_to_TRACE); /*! TRACEをTRACE_DIVにスイッチ */
/*! 区切り線を設定します */
CLOCK_SetClkDiv(kCLOCK_DivTraceClk, 3U); /*! TRACECLKDIV分周器の値を3に設定する */
3. MCUXpresso IDEでITMコンソールビューを設定します。
Alice_Yang_9-1764235228270.png
SWO および DWT の使用に関する詳細は、 MCUXpresso_IDE_25.06_Instruction_Trace_Guide.pdfを参照してください。このガイドは、MCUXpresso IDE インストール パスの下にあります。
BR
アリス
こんにちは、アリス。
SWO トレースの設定方法に関する詳細な視覚化をありがとうございます。
私のCASE、SWO ピン (MXCA-156 PCB) と MCU-Link Pro デバッグ プローブの電気的接続はすでに確認済みです。あなたが言及した PDF には確かにより詳細な情報が含まれており、私の知識が広がります。しかし、これは DWT の使用に関する私の仮定を実際に説明/反証するものではありません。
私のセットアップでは、割り込みリターンと割り込みエントリポイントからのデータが「SWO 割り込み」ウィンドウにすでに表示されています。(これは私の SW からのライブデータです。意味のあるデータと正しいタイミング情報です。)
AlexRu_0-1764332623019.png
この情報により、SWO ピン経由の電気接続が機能していること、トレース クロックが有効になっていること、および周波数が SWO トレース構成で期待どおりであることを確認しました。
私が見逃しているのは (あるいは私の側に誤解があるのでしょうか?)、データ ウォッチ コンパレータ (DWT) を介してデータを「SWO データ」ウィンドウの SWO トレース ピンにトレースする機能です。
「再生」ボタンを有効にした後、トレース情報が受信されません。
AlexRu_1-1764333027216.png
MXCA156 の設定では、データ ウォッチポイントが 2 つのコンパレータに制限されていることを確認しました。SO、IDEs はそれらを設定できるようで、設定されたデータ ウォッチ ポイントが多すぎると警告が表示されます (妥当性を確認するために意図的に行いました)。
AlexRu_2-1764333135738.png
SO 私の質問は、IDEs はこのデバッグ方法をサポートしているのか、それとも私の側の誤解で DWT はこの種のデータ トレース機能をまったく提供していないのか、ということです。
こんにちは@AlexRu
ご返信ありがとうございます。
DWT を使用して監視したいデータを教えてください。
また、問題を再現できるプロジェクトを共有し、実行したすべての手順を示すビデオを提供してください。
この情報を使用して、自分の側で問題を再現して確認します。
ご回答をお待ちしています。
BR
アリス
こんにちは@Alice_Yangさん、
私は、FRDM-MCXN236デモボード用のSDKサンプル(LED点滅)に基づいた最小限のプロジェクトを準備しました。(デモアプリ -> LED_BLINKY_PERIPHERAL )
MCXN236 ボードのセットアップは、以前使用した MCXA156 ボードと同じ効果を示しているようです。別のボードでこの動作を確認したかっただけです。
ピン設定をP0_2 -> 出力SWOに設定(この例ではデフォルト)
この例ではBOARD_BootClockFRO12M()を使用しているため、TRACECLKとTRACECLKDIV(1)を有効にします。
glocal ram 変数に対するアクションを確認するために次のコードを追加しました。
volatile uint32_t debug_cnt = 0;
void SysTick_Handler(void)
{
/* Toggle pin connected to LED */
GPIO_PortToggle(BOARD_LED_GPIO, 1u << BOARD_LED_GPIO_PIN);
debug_cnt++; //<- added for demonstration purpose
}添付ファイル: デモ プロジェクトが含まれた Zip ファイル、デバッグ セッションのビデオ。
「SWO データ」にはトレースデータが表示されないことがCANで確認できます。グローバル変数ウィンドウには、SysTick_Handler サイクル内の debug_cnt の増分 (約 1 秒) が表示されます。また、「SWO 割り込み」は SysTick_Handler() のエントリと終了を確実に表示するため、SWO トレースの電気接続は正しく機能しているようです。
この問題を絞り込むためにさらに情報を提供CAN場合はお知らせください。
また、DWT を使用してグローバル/静的 RAM 変数をトレースするという私の期待が実現可能かどうかを確認していただければ幸いです。あるいは私が誤解しているのかもしれません。
こんにちは@AlexRu
BR
アリス
こんにちは@AlexRu
BR
アリス
こんにちは@Alice_Yang @AlexRu
現在、 FRDM-MCXA156 の開発ボードを使っていて、デバッグ中に SWO(シリアルワイヤー出力) で問題が発生しています。
アプリケーションは正常にデバッグされましたが、 SWOトレースウィンドウには以下のようなデータが一切届きません。
問題のトラブルシューティングのため、以下の点を既に確認しました。
これらの設定にもかかわらず、デバッグ中はすべてのSWOトレースウィンドウが空のままです。
参考までに、 SWOトレース構成、 SWOデータ、 SWOプロファイル、およびSWO割り込みトレースウィンドウのスクリーンショットを添付しました。
この問題の原因について、またはFRDM-MCXA156でSWOトレースを有効にするために必要な追加の設定手順があるかどうかについて、ご助言やご提案をいただければ大変ありがたいです。
お時間とご協力に感謝いたします。