カスタマーサポートセンター

FAQ~よくある質問~ | FAQマスタ詳細表示

FAQ詳細情報

ID 10810673
FAQカテゴリ(大) C-SPYデバッガ
最終更新日 2014-02-20

質問内容

TN63427: J-Link が、リセット後デバイスを停止しません

回答内容

EWのターゲット : ARM
EWのコンポーネント : C-SPY デバッガ
キーワード : J-Link、J-Trace
更新日 : June 7, 2007

問題
ARM デバイスをリセットするとそのまま走ってしまい停止しません。

解決策
2つの異なる解決策があります。
• A -- J-Link オプションを Hardware, halt at 0 に設定します。
• B -- J-Link オプションを Hardware, halt after delay(ms) に設定し、 delay を 0 に設定します。

A の詳細 - Hardware, halt at 0
これはブレークポイントを、0番地に設定し nRESETを使用してARM コアをリセットします。 重要なことは、この動作は nTRSTを制御しないことです。nTRSTは ICEのブレーク機構をリセットしてしまうので、ブレークポイントもクリアされてしまうからです。

言い方を変えると、ARM コアは、RESETとTRSTが分離されていると、命令を1つ実行する前に止めることができます。

B の詳細 - Hardware, halt after ...
2つの理由で、上のリセット・ストラテジーは全てのシステムで機能しません。
• nRESET と nTRST が、ボードまたはCPU自身で束ねられているシステムで、リセットすると、ブレークポイントがクリアされるので、最初にセットしたブレークポイントもリセットされます。
• MCUs によっては、内蔵しているブートローダープログラムを走らせて、JTAGアクセスを許可する必要があります。

以下、MCU をできる限り早く止めるための助言です。
• delay を 0にセットしします。これは、JTAG 通信確立後すぐということです。
• JTAG speed を fixed に設定し、スピードを一番速い値に設定します。(J-Link ハードウェア v. 5.4 と v. 6.0 はおよそ 8000 kHz、 J-Link v.3 と v.4 はおよそ 3000 kHzです)

B の例 - Hardware, halt after ...
このサンプルは、 IAR 製 STR712 評価ボード用です。J-Link を8000 kHz で MCU に接続すると 20 命令以内に停止することができます。サンプルは、ボード上のLEDを点滅させるプログラムが__low_level_initにあり、MCU が停止するまで、プログラム実行はこの場所まで来ません。

参考資料URL