JTAG チェーンの最初にないARMコアのデバッグ
テクニカル・ノート 17681
アーキテクチャ:
ARM
コンポーネント:
debugger
更新日:
2018/08/08 4:41
はじめに
本テクニカルノートでは、JTAGチェーン上で先頭にないARMデバイスに、(J-Linkデバッグプローブを使用して)アクセスできるように、JTAG接続を設定する方法について説明します。
背景
この状況に当てはまるドキュメントが2つ用意されています。
- arm\doc\JLink_J-TraceARM.pdfの「マルチコアデバッグ」と「スキャンチェーン内の複数のデバイス」の章に、設定に関する基本情報が記載されています。
- \arm\doc\infocenter\csarmjlink.ENU.htmの図(「その他」の見出しの下)に、デバイスをデバッグするのに必要なJTAGチェーンの構築方法が示されています。
問題を解決するための詳細設定
正しいTAP番号と先行ビット数が使用されるように、オプションを設定する必要があります。
ステップごとの説明
- ボードをJ-Linkに接続し、J-Linkをコンピュータに接続します。
- ユーティリティ(arm\bin\jlink.exe)を起動し、JTAGデバイスの情報が表示されるまでスクロールします。
以下に例を示します(このボードにはSTM32が2つ実装されています)。Found 4 JTAG devices, Total IRLen = 18: #0 Id: 0x3BA00477, IRLen: 4, IRPrint: 0x1 Cortex-M3 Core #1 Id: 0x06412041, IRLen: 5, IRPrint: 0x1 STM32 Boundary Scan #2 Id: 0x3BA00477, IRLen: 4, IRPrint: 0x1 Cortex-M3 Core #3 Id: 0x06412041, IRLen: 5, IRPrint: 0x1 STM32 Boundary Scan Cortex-M3 identified.
- 接続したいユニットは、「2番目にあるCoresight JTAG-DP」です。先行ビットを調べるには、その前にあるビット数を数えます。先行ビットは、1番目(1番目のデバイスのCoreSight JTAG-DP)の場合は4、2番目(最初のデバイスのSTM32境界スキャン)の場合は5になります。
- プロジェクト(Project) > オプション(Options) > J-Link/J-Trace > 接続(Connection)でオプションを設定します。
- JTAGスキャンチェーン(マルチターゲット)(JTAG scan chain with multiple targets)オプションを有効にします。
- TAP番号(TAP number)オプションで2を指定します。
- スキャンチェーンにArmでないデバイスが含まれる(Scan chain contains non-ARM devices)オプションを有効にします。
- 先行ビット(Preceding bits)テキストフィールドで、ARMデバイスに先行するIRビットの数に9を指定します(このうち4ビットはTAP 0にリストされ、5ビットはTAP 1にリストされます)。
JTAGデバイスの番号、TAP番号、先行ビットの例
以下に、4つの例を示します。各例では、単一のARMデバイス上で動作するJTAGデバイスのスキャンが示されています。このARMデバイスには、ARMコアが1つ含まれており、また、同じくJTAGデバイスである他の部品(この例では0~2)が含まれています。
Found 3 JTAG devices, Total IRLen = 17:
#0 Id: 0x04570041, IRLen: 08, IRPrint: 0x29, STR9 Flash
#1 Id: 0x25966041, IRLen: 04, IRPrint: 0x1, ARM966E-S Core
#2 Id: 0x1457F041, IRLen: 05, IRPrint: 0x1, STR9 Boundary Scan
Found ARM with core Id 0x25966041 (ARM9)
Found 1 JTAG device, Total IRLen = 4:
#0 Id: 0x4BA00477, IRLen: 04, IRPrint: 0x1, CoreSight JTAG-DP (ARM)
Cortex-M3 identified.
Found 2 JTAG devices, Total IRLen = 9:
#0 Id: 0x3BA00477, IRLen: 04, IRPrint: 0x1, CoreSight JTAG-DP (ARM)
#1 Id: 0x06418041, IRLen: 05, IRPrint: 0x1, STM32 Boundary Scan
Cortex-M3 identified.
Found 1 JTAG device, Total IRLen = 4:
#0 Id: 0x3F0F0F0F, IRLen: 04, IRPrint: 0x1, ARM7TDMI Core
Found ARM with core Id 0x3F0F0F0F (ARM7)
トラブルシューティング
TRSTを使用しないリセット方式を選択してください(TRSTを使用すると、全てのコアがリセットされます)。
コア | 推奨するリセット | 禁止するリセット |
Cortex | コアのリセット | 通常のリセット |
ARM 7/9 | ソフトウェア | TRSTが関係する全てのリセット |
全ての製品名は、それぞれの所有者の商標または登録商標です。