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が関係する全てのリセット                               

全ての製品名は、それぞれの所有者の商標または登録商標です。

 

申し訳ございませんが、弊社サイトではInternet Explorerをサポートしていません。サイトをより快適にご利用いただくために、Chrome、Edge、Firefoxなどの最新ブラウザをお使いいただきますようお願いいたします。