適用先: ULINK USB-JTAG Debugger
この記事に含まれている情報の適用先:
- Cortex-M3 ベースのデバイスでのSerial-Wire Debugとリアルタイム トレース
現象
Cortex-M3 ベースのデバイスでSerial-Wire リアルタイム トレース機能を使用していると、トレース データが失われるか不正になります。また、µVision のステータス バーに Trace: Communication Errorが表示されます。
原因
トレース データが失われる / 不正になる現象および Trace Communication Error の主な原因として、Cortex-M Target Driver Setup で Core Clock が不適切に設定されていることが挙げられます。µVision のステータス バーとレジスタ ウィンドウで正確な時間値を表示するには、Core Clock に CPU クロックと同じ値を設定する必要があります。Trace Enable を選択した場合、Serial-Wire Output(SWO)で正確なトレース情報を取得することも重要です。
解決策
Cortex-M Target Driver Setup で Core Clock に適切な値を設定します。この値は、CPU クロックと関連しています。たとえば、CPU が 72MHz で動作している場合、Core Clock にも 72MHz を設定する必要があります。トレースの設定が適切であれば、ターゲットのデバッグ セッション中に Trace: Running ..." が µVision のステータス バーに表示されます。
Core Clock は、VTReg CORE_CLK に対応しています。ターゲットのデバッグ セッションでは、VTReg CORE_CLK の値を変更することで、Core Clock を調整できます。同様の処理は、デバッガ スクリプトでも実行できます。
詳細
- ULINK®2 User's Guide の Trace Configuration を参照してください。
- Application Note 197: Serial-Wire Debug and Realtime Trace on STM32 Devices.