2322326_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2322326_ja-JP

2322326_ja-JP

RT1170 USB CDC は、実行されていないコードにブレークポイントを設定しても kStatus_USB_Busy で停止します。

こんにちは、

私は i.MX RT1170 (M7 コア) で以下の作業を行っています:

SDKバージョン25.09

FreeRTOS

USB CDC (仮想COM)

CAN-FDの並列実行

初期化は正常です。
USB 列挙が正常に完了しました。
通常実行中は、CAN-FD と USB 通信は両方とも正常に動作します。

通常の状態でのシステムの動作:

CAN-FDはデータを正しく受信します

USB CDCはPC(Tera Term)にデータを正常に送信します

USB_DeviceCdcAcmSend() は期待通りに動作します

USBコールバックが実行され、ビジーフラグが適切にクリアされます

問題:

プロジェクトの任意の場所にブレークポイントを配置すると、現在実行されていないコード内であっても (たとえば、初期化後の main() 内や関連のない関数内)、システムは実行を継続しますが、USB CDC は最終的に停止してしまいます。

重要な観察事項:

ブレークポイントはヒットしていません。

コードは正常に実行され続けます。

FreeRTOS タスクは実行を継続します。

CAN-FD は正常に動作し続けます。

USB CDC のみが機能を停止します。

この現象が発生すると、次のようになります。

USB_DeviceCdcAcmSend() は kStatus_USB_Busy を返します

USB転送コールバックが呼び出されない

ビジーフラグが消えない

ボードをリセットするまでUSB通信は永久に停止します

実行時に printf() を使用した場合でも、同様の動作が引き起こされることがあります。

構成:

#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 2
#USB_DEVICE_INTERRUPT_PRIORITY (6U) を定義します。

USBタスクスタックサイズ:

#APP_TASK_STACK_SIZE を 8000L と定義します

スタックオーバーフローは発生しません。
システムはクラッシュしません。
USB CDC 通信のみが停止します。

質問:

実行されていないコードにブレークポイントが設定されている場合でも、USB CDC が停止するのはなぜですか?

デバッガーは、USB HS タイミングに影響を与えるような方法で M7 コアを一時的に停止しますか?

USB 割り込みの遅延サービスにより、CDC ドライバが永続的に kStatus_USB_Busy 状態のままになる可能性はありますか?

これは、CPU が停止したときの USB HS コントローラ (EHCI) の予想される動作ですか?

転送の破損を起こさずに RT1170 上の USB CDC をデバッグするための推奨方法は何ですか?

どのようなご指導でもいただければ幸いです。

よろしくお願いします。

USBRe: RT1170 USB CDC stuck in kStatus_USB_Busy even when breakpoint is placed in non-executing code

こんにちは@Harisha

弊社の製品にご興味をお持ちいただき、またコミュニティをご利用いただき誠にありがとうございます。

問題に関しては、次の調整を試すことをお勧めします。

1:USB がタイムリーな割り込みサービスを確実に受信できるように、USB 割り込み優先度を FreeRTOS が管理できる最高の優先度に設定します。

2:他のモジュール(アプリケーション内の CAN-FD など)の割り込み優先度を下げて、USB プロセッシングが停止しないようにします。

これらの変更を試して、もう一度テストしてください。

 
よろしくお願いいたします。
メイリュー
 
Tags (1)
No ratings
Version history
Last update:
‎03-06-2026 03:31 AM
Updated by: