適用先: ULINK USB-JTAG Debugger
この記事に含まれている情報の適用先:
- ULINK USB-JTAG Adapter
- ULINK2 USB-JTAG Adapter
質問
Philips/NXP LPC2000 ターゲット ハードウェアに対して Keil ULINK を使用しています。 デバッグ セッションを開始したとき( 'Run to main()' をオフにした状態)や、CPU をリセットしたときには、プログラム カウンタにリセット アドレスが格納されています。
この状態から、シングルステップ実行で、STARTUP.S ファイルを処理していきます。ところが、システムは 0xFFFFxxxx 領域に移行せず、リセット アドレスに留まったままです。
この動作の原因は何でしょうか?
回答
NXP LPC2000 デバイスには、CPU のリセット後に実行される内蔵ブート ファームウェアが搭載されています。ユーザが実際に目にしているのは、このブート ファームウェアの実行です。ブート ファームウェアは最初のいずれかの命令で JTAG インターフェースを無効にするので、ステップ実行はできなくなります。プログラム カウンタにリセット アドレス(オンチップ Flash の使用時は 0x0000)が格納されている場合、次の 2 種類の方法で起動コードに移行できます。
- ブレークポイントをアドレス 0 またはラベル Reset_Handler に設定します。 次に、Run ボタンまたは 'G' コマンドを使用して、デバッガからプログラムの実行を開始します。
- Peripheral→System Control Block→Memory Mapping Control ダイアログを開いて、User Flash Mode を選択します。
これで、起動コードをシングルステップ実行できます。
詳細
- NXP LPC2000 User's Manuals
関連項目
- PHILIPS LPC2000 デバイスに対する RESET の動作について
- PHILIPS LPC2000 ARM デバイスが応答しない現象について