- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I would like to translate KBA229847 into Japanese.
Please confirm to my work.
Thanks,
Kenshow
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello, Kenshow-san
Confirm for your work.
Thanks,
Jenna
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Jenna-san,
Japanese translation was over.
Please check below.
Original KBA:
Segger J-Link Known Issues with FX3/CX3/FX3S - KBA229847
Thanks.
==============================
タイトル: Segger J-LinkのFX3/CX3/FX3Sに関する既知の問題 - KBA229847
バージョン:**
質問:SEGGER J-Linkのデバッガを使用してCypress FX3/CX3/FX3SのUSBスーパースピードデバイスコントローラのデバッグ中に、次のエラーが表示されます。
- ERROR: Bad JTAG communication: Write to IR: Expected 0x1, got 0x3 (TAP Command: 15)
- ERROR: Bad JTAG communication: Write to IR: Expected 0x1, got 0x0 (TAP Command: 2) @ Off 0x5
なぜこれらのエラーが発生するのですか?これらのエラーを修正するにはどうすればよいでしょうか?
回答:
これらのエラーは、Segger J-Linkを使用したJTAGデバッグ中にFX3/CX3/FX3Sで発生する可能性があります。
- ERROR: Bad JTAG communication: Write to IR: Expected 0x1, got 0x3 (TAP Command: 15)
このエラーは、メイン関数のCyU3PKernelEntry() APIにステップインすると発生します。 CyU3PKernelEntry() APIは返されない呼び出しであり、CyU3PKernelEntry() APIにステップインを使用すると、返されない呼び出しとしてファームウェアコントロールが呼び出されます。 これにより、J-Linkデバッガを使用してJTAGデバッグセッションが実行中に中断し、TAPコマンド:15エラーが出力される可能性があります。
TAPコマンド:15エラーの防止
次の手順に従って、TAPコマンドを回避します。15エラー:
- デフォルトでは、デバッガはmain()で停止します。
- CyU3PKernelEntry() API に到達したら、ステップオーバーを実行して、コントロールが次のブレークポイントに到達するようにします。
- ThreadEntry 関数に別のブレークポイントを追加します(たとえば、AN75779で提供されているUVCファームウェアのUVCAppThread_Entry)。
main のデフォルトのブレークポイントから、CyU3PKernelEntry() APIに到達するまで、ステップインまたはステップオーバーを使用してナビゲートできます。コントロールがCyU3PKernelEntry()に到達したら、ステップオーバーを使用して、アプリケーション定義関数の次のブレークポイントに到達します。そこから、ステップインとステップオーバーを使用して関数内を移動するか、再開を使用してThreadEntry 関数の次のブレークポイントに移動できます。
- ERROR: Bad JTAG communication: Write to IR: Expected 0x1, got 0x0 (TAP Command: 2)ERROR: Bad JTAG communication: Write to IR: Expected 0x1, got 0x0 (TAP Command : 2)
このエラーは、メイン関数のCyU3PDeviceInit() API が呼び出されたときのランタイム中のFX3 CPU周波数の変化により、Segger J-Linkを使用したJTAGデバッグ中にFX3ファミリーで発生する可能性があります。この問題の解決策については、KBA229087を参照してください。
UVCファームウェアのデバッグ中にも同じエラーが発生します。UVCドライバーは、デバイスにサスペンドリクエストを送信して、デバイスをサスペンドモードにして電力を節約しようとします。
ホストが中断要求を送信すると、USB_SUSP_EVENT_FLAG が生成されます。このイベントフラグは、CyU3PSysEnterSuspendMode() APIを呼び出すことによってデフォルトのファームウェアで処理され、ウェイクアップソースがトリガーされるまでデバイスをサスペンドモードにします。サスペンドモードでは、CPUは実行を停止し、デバイスは低電力状態になり、Segger J-Linkとデバイス(CPU)間のリンクが切断されます。
TAPコマンド:2エラーの防止
TAPコマンド:15エラーを防止する手順に加えて、ファームウェアはホストからのサスペンド要求を処理するべきではありません。
これは、CyU3PEventGet() 関数のビットマスクからUSB_SUSP_EVENT_FLAG を削除することで実行できます。
==============================
26-May-2020