HowTo:使用方法・手順説明

更新日:2021-05-03

J-Link Commanderツールの使用方法


【回答】

J-Link Commanderツールを使用してJ-Link / J-Traceのコマンドライン操作(ターゲット接続確認、メモリダンプ、レジスタビュー、イメージデータのダウンロード、実行など)ができます。

事前準備・ツール設定:

J-Link CommanderツールはJ-Link ソフトウェアパッケージに含まれています。事前にJ-Link ソフトウェアをインストールしてください。

J-Link Softwareのダウンロード及びインストール手順


実行手順:

STEP表示

J-Link Commanderツールの起動:

J-Link/J-Trace本体のUSBポートをパソコンに接続します。J-Link付属の20-Pinリボンケーブルを使用して本体のTargetポートをマイコン基板のデバッグポートに接続します。
※ ターゲットボード側のコネクタ仕様が異なる場合は変換アダプタを使ってください。

Connect Target

ターゲットボードに電源を入れて、パソコンのスタートメニューから「J-Link Commander」プログラムを実行します。実行後にJ-Linkコマンドプロンプトコンソールが表示されます。

Start Commander
Commander Shell

ターゲットマイコンデバイスに接続:

J-Linkプロンプトコンソールに「connect」コマンドを入力します。

Type "connect" to establish a target connection, '?' for help
J-Link>connect
Please specify device / core. : MK66FN2M0XXX18
Type '?' for selection dialog
Device>

「?」を入力してマイコン選択ダイアログを開きます。

Type '?' for selection dialog
Device>?
Device Selection

RXマイコン環境での設定事例:

以下、RX71Mマイコンデバイスの接続事例を解説します。テストボードではJTAGポート接続ケーブルは「J-Link RX Adapter」を使用しています。

ターゲット基板のマイコン型番を確認して、マイコン選択ダイアログから「RX71M」デバイスを選択します。
Manufacturer: Renesas、Device: R5F571ML

CPU Selection
Device>?
Please specify target interface:
  J) JTAG (Default)
  F) FINE
TIF>

接続モードを選択します。 以下、「J」を入力してJTAGモードを選びます。「JTAGConf>」プロンプトからENTERキーを押してデフォルト設定のまま進みます。

TIF>J
Device position in JTAG chain (IRPre,DRPre) : -1,-1 => Auto-detect
JTAGConf>
Specify target interface speed [kHz]. : 4000 kHz
Speed>

ターゲットボード接続で安定して使用可能なクロック値(単位:kHz)を設定します。デフォルトクロックの4000kHzで問題なければEnterキーを入力します。

ハードウェア関連の問題がなくデバッグポート接続に成功する場合は、マイコンデバイス設定完了後に「J-Link>」コマンドプロンプトに戻ります。

Specify target interface speed [kHz]. : 4000 kHz
Speed>2000
Device "R5F571ML" selected.

Connecting to target via JTAG
TotalIRLen = 8, IRPrint = 0x00C1
JTAG chain detection found 1 devices:
 #0 Id: 0x0D020447, IRLen: 08, RX71M Core
Found Renesas RX71M device
Debugger authenticated successfully.
Endian: little
RX71M identified.
J-Link>

Cortex-Mマイコン環境での設定事例:

以下、nRF52832マイコンデバイスの接続事例を解説します。テストボードではデバッグポート接続ケーブルは「J-Link Cortex-M 9-Pin Adapter」を使用しています。

ターゲット基板のマイコン型番を確認し、マイコン選択ダイアログから「nRF52832」デバイスを選択して、「OK」ボタンをクリックします。
Manufacturer: Nordic Semi、Device: nRF52832_xxAA

CPU Selection
Device>?
Please specify target interface:
  J) JTAG (Default)
  S) SWD
  T) cJTAG
TIF>

接続モードを選択します。 以下の事例では、「S」を入力してSWDモードを選びます。

TIF>S
Specify target interface speed [kHz]. : 4000 kHz
Speed>

ターゲットボード接続で安定して使用可能なクロック値(単位:kHz)を設定します。デフォルトクロックの4000kHzで問題なければEnterキーを入力します。

ハードウェア関連の問題がなくデバッグポート接続に成功する場合は、マイコンデバイス設定完了後に「J-Link>」コマンドプロンプトに戻ります。

Speed>
Device "NRF52832_XXAA" selected.

Connecting to target via SWD
InitTarget() start
InitTarget() end
Found SW-DP with ID 0x2BA01477
DPIDR: 0x2BA01477
Scanning AP map to find all available APs
AP[2]: Stopped AP scan as end of AP map has been reached
AP[0]: AHB-AP (IDR: 0x24770011)
AP[1]: JTAG-AP (IDR: 0x02880000)
Iterating through AP map to find AHB-AP to use
AP[0]: Core found
AP[0]: AHB-AP ROM base: 0xE00FF000
CPUID register: 0x410FC241. Implementer code: 0x41 (ARM)
Found Cortex-M4 r0p1, Little endian.
FPUnit: 6 code (BP) slots and 2 literal slots
CoreSight components:
ROMTbl[0] @ E00FF000
ROMTbl[0][0]: E000E000, CID: B105E00D, PID: 000BB00C SCS-M7
ROMTbl[0][1]: E0001000, CID: B105E00D, PID: 003BB002 DWT
ROMTbl[0][2]: E0002000, CID: B105E00D, PID: 002BB003 FPB
ROMTbl[0][3]: E0000000, CID: B105E00D, PID: 003BB001 ITM
ROMTbl[0][4]: E0040000, CID: B105900D, PID: 000BB9A1 TPIU
ROMTbl[0][5]: E0041000, CID: B105900D, PID: 000BB925 ETM
Cortex-M4 identified.
J-Link>

デバッグポート接続にエラーが発生する場合は、以下の点を確認ください。

  • JTAGケーブルを逆に挿していませんか?
  • デバッグインターフェースモード設定(JTAG、SWD、cJTAG、FINE等)は合っていますでしょうか?
  • 対象インターフェースモードに合わせてボード側のデバッグコネクタのPIN仕様を確認ください。
  • J-LinkデバッグコネクタのPIN1(VTref信号)はターゲットボードのVCCに接続されていますでしょうか?
  • マイコンデバイスによりましてCPU接続の時にハードウェアリセット処理が必要の場合があります。J-LinkコネクタのPIN15(RESET信号)をマイコン側のリセット線に接続して確認ください。
  • J-Link本体のファームウエアは古いバージョンを使用されている場合は、最新版のファームウエアにアップグレードして確認ください。

J-Linkプロンプトから操作コマンドを実行:

デバッグポート経由でターゲットマイコンCPUに接続できましたら、J-Linkプロンプトからコマンドを実行してメモリアクセス、ファームウエアダウンロード、CPU実行、ステップ実行など可能です。

コマンド一覧:

コマンド一覧はJ-Linkコンソールから「?」コマンドを実行して確認できます。

  • connect:ターゲットマイコンに接続します。
  • device:デバイスを選択・指定します。
  • erase:選択したデバイスの内蔵フラッシュを消去します。
  • exec:J-Linkコマンド文字列を実行します。
    対応J-Linkコマンド文字列一覧は以下のURLから確認ください。
    https://wiki.segger.com/J-Link_Command_Strings
  • exit / qc / q:J-Linkコマンダーを終了します。
  • exitonerror / eoe:J-Linkコマンダーをエラー後に終了します。
  • f:本体のファームウエアの情報を出力します。
  • go / g:CPUコアを開始します。
  • halt / h:CPUコアを停止します。
  • hwinfo:ハードウェア情報を表示します。
  • is:チェーン選択レジスタの長さを表示します。
  • jtagconf:JTAGスキャンチェーンのコンフィグレーション
  • loadfile:データファイルをターゲットメモリにロードします。
  • log:ログを有効にします(ファイルに保存)。
  • mem / mem8 / mem16 / mem32 / mem64:メモリデータ(8/16/32/64-bit)を読み出します。
  • w1 / w2 / w4:メモリデータ(8/16/32-bit)を書き込みます。
  • mr:RTCKピンの応答時間を計測します。
  • ms:スキャンチェーンの長さを計測します。
  • power:ターゲットの電源を切り替えます。
  • r:ターゲットをリセットし、CPUを停止します。
  • readAP:CoreSight APレジスタを読み出します。
  • writeAP:CoreSight APレジスタに指定データを書き込みます。
  • readcsr:RISC-VマイコンのCSRレジスタを読み出します。
  • writecsr:RISC-VマイコンのCSRレジスタに指定データを書き込みます。
  • readDP:CoreSight DPレジスタを読み出します。
  • writeDP:CoreSight DPレジスタに指定データを書き込みます。
  • regs:現在のレジスタ値すべてを表示します。
  • wreg:レジスタを書き込みます。
  • mh:ターゲットをリセットします。CPUを停止しません。
  • rreg:特定のレジストリ値を表示します。
  • rx:ターゲットをリセットし、指定待ち時間(ミリ秒単位)後にCPUを停止します。
  • savebin:ターゲットメモリを読み出してバイナリファイルとして保存します。
  • verifybin:データファイルとターゲットメモリデータを比較します。
  • clrBP:ブレイクポイントをクリアにします。
  • clrWP:ウォッチポイントをクリアにします。
  • setBP:ブレイクポイントを設定します。
  • setPC:指定された値にPC(実行ポインター)を設定します。
  • SetTimeoutCmd:ステップ実行コマンドにタイムアウトを設定します。
  • setWP:ウォッチポイントを設定します。
  • si:ターゲットデバッグポート接続モード(JTAG/SWD/FINE等)を設定します。
  • speed:デバッグポートのインターフェースクロックを設定します。
  • st:ターゲットハードウェアの状態を表示します。
  • step / s:ターゲット側のプログラムを1ステップ進めます。
  • stepover / so:ターゲット側のプログラムに対してステップオバーを実行します。
  • ip:TCP/IPインターフェース経由でJ-Link PROに接続します。
  • VCOM:VCOMポートインターフェースを設定(有無)します。
  • VTREF:ターゲットから読み出すVTref信号を固定値(1.2V~3.3V)に設定します。
  • WebUSBDisable:J-LinkのWebUSB機能を無効に設定します。
  • WebUSBEnable:J-LinkのWebUSB機能を有効に設定します。

※最新版の情報はJ-Linkユーザマニュアルをご確認ください。


コマンド事例:CPUレジスタアクセス

「regs」コマンドを入力してCPUレジスタ内容を確認します。CPUが実行中の場合は「h」コマンドでCPUを停止します。

● RXマイコンアクセス事例:

J-Link>regs
CPU is not halted !
J-Link>h
R0 = 0000B420, R1 = FFFFFFFF, R2 = 0008720A, R3 = 00000001
R4 = 00007C18, R5 = 0000B3DC, R6 = 00000000, R7 = 00000000
R8 = 00000000, R9 = 00000000, R10= 00000000, R11= 00000000
R12= 00000000, R13= 00000000, R14= 000000C0, R15= FFC00146
ISP 0000B838, USP 0000B420, INTB FFC00720, PC FFC01FEA,
PSW 00030005, BPC 00000000, BPSW 80000000, FINTV 00000000, FPSW 40000100
J-Link>rreg 2
R2 = 0x0008720A
J-Link>wreg R2 12345678
R2 = 0x12345678
J-Link>rreg 2
R2 = 0x12345678
J-Link>

● Cortex-Mマイコンアクセス事例:

J-Link>regs
CPU is not halted !
J-Link>h
PC = 0000105A, CycleCnt = E1F5C1FC
R0 = 00000001, R1 = 2000FF98, R2 = 00000009, R3 = FFFFFC09
R4 = 00001238, R5 = 00000605, R6 = 00000000, R7 = 00000000
R8 = 00000000, R9 = 00000000, R10= 00000000, R11= 00000000
R12= 00000000
SP(R13)= 2000FFF0, MSP= 2000FFF0, PSP= 00000000, R14(LR) = 00001053
XPSR = 21000000: APSR = nzCvq, EPSR = 01000000, IPSR = 000 (NoException)
CFBP = 00000000, CONTROL = 00, FAULTMASK = 00, BASEPRI = 00, PRIMASK = 00

FPS0 = 00000000, FPS1 = 00000000, FPS2 = 00000000, FPS3 = 00000000
FPS4 = 00000000, FPS5 = 00000000, FPS6 = 00000000, FPS7 = 00000000
FPS8 = 00000000, FPS9 = 00000000, FPS10= 00000000, FPS11= 00000000
FPS12= 00000000, FPS13= 00000000, FPS14= 00000000, FPS15= 00000000
FPS16= 00000000, FPS17= 00000000, FPS18= 00000000, FPS19= 00000000
FPS20= 00000000, FPS21= 00000000, FPS22= 00000000, FPS23= 00000000
FPS24= 00000000, FPS25= 00000000, FPS26= 00000000, FPS27= 00000000
FPS28= 00000000, FPS29= 00000000, FPS30= 00000000, FPS31= 00000000
FPSCR= 00000000
J-Link>rreg 8
R8 = 0x00000000
J-Link>wreg R8 12345678
R8 = 0x12345678
J-Link>rreg 8
R8 = 0x12345678
J-Link>

コマンド事例:メモリアクセス

● RXマイコンアクセス事例:

J-Link>mem32 00001000, 8
00001000 = 00000000 00000000 00000000 00000000
00001010 = 00000000 00000000 00000000 00000000
J-Link>w4 00001010, 12345678
Writing 12345678 -> 00001010
J-Link>mem32 00001000, 8
00001000 = 00000000 00000000 00000000 00000000
00001010 = 12345678 00000000 00000000 00000000
J-Link>

● Cortex-Mマイコンアクセス事例:

J-Link>mem32 20000000, 8
20000000 = 03D09000 47474553 52205245 00005454
20000010 = 00000000 00000002 00000002 000011A0
J-Link>w4 20000010, 87654321
Writing 87654321 -> 20000010
J-Link>mem32 20000000, 8
20000000 = 03D09000 47474553 52205245 00005454
20000010 = 87654321 00000002 00000002 000011A0
J-Link>

コマンド事例:ファームウエア書き込み

● RXマイコンアクセス事例:

J-Link>erase
Without any give address range, Erase Chip will be executed
Erasing device...
J-Link: Flash download: Total time needed: 1.279s (Prepare: 0.654s, Compare: 0.000s, Erase: 0.546s, Program: 0.000s, Verify: 0.000s, Restore: 0.077s)
J-Link: Flash download: Total time needed: 12.029s (Prepare: 0.485s, Compare: 0.000s, Erase: 11.467s, Program: 0.000s, Verify: 0.000s, Restore: 0.076s)
J-Link: Flash download: Total time needed: 0.672s (Prepare: 0.479s, Compare: 0.000s, Erase: 0.118s, Program: 0.000s, Verify: 0.000s, Restore: 0.075s)
Erasing done.
J-Link>loadfile C:\Workspace\RX\rx71m_fw.mot
Downloading file [C:\Workspace\RX\rx71m_fw.mot]...
J-Link: Flash download: Bank 1 @ 0xFFC00000: 2 ranges affected (73728 bytes)
J-Link: Flash download: Total: 1.935s (Prepare: 0.519s, Compare: 0.350s, Erase: 0.250s, Program & Verify: 0.694s, Restore: 0.120s)
J-Link: Flash download: Program & Verify speed: 104 KB/s
J-Link: Flash download: Bank 2 @ 0x00120040: Skipped. Contents already match
O.K.
J-Link>

● Cortex-Mマイコンアクセス事例:

J-Link>erase
Without any give address range, Erase Chip will be executed
Erasing device...
J-Link: Flash download: Total time needed: 0.065s (Prepare: 0.024s, Compare: 0.000s, Erase: 0.036s, Program: 0.000s, Verify: 0.000s, Restore: 0.004s)
Erasing done.J-Link>loadfile
Syntax: loadfile  []
J-Link>loadfile C:\Workspace\nrf51_fw.bin 00000000
Downloading file [C:\Workspace\nrf51_fw.bin]...
J-Link: Flash download: Bank 0 @ 0x00000000: 1 range affected (122880 bytes)
J-Link: Flash download: Total: 2.249s (Prepare: 0.050s, Compare: 0.029s, Erase: 0.000s, Program & Verify: 2.142s, Restore: 0.026s)
J-Link: Flash download: Program & Verify speed: 56 KB/s
O.K.
J-Link>verifybin C:\Workspace\nrf51_fw.bin, 00000000
Loading binary file C:\Workspace\nrf51_fw.bin
Reading 122880 bytes data from target memory @ 0x00000000.
Verify successful.
J-Link>

コマンド事例:実行

「r」コマンドを入力しCPUをリセットして、「go」コマンドで実行します。

● RXマイコンアクセス事例:

J-Link>r
Reset delay: 0 ms
Reset type NORMAL: Reset CPU via CPURST bit
J-Link>go
J-Link>

● Cortex-Mマイコンアクセス事例:

J-Link>r
Reset delay: 0 ms
Reset type NORMAL: Resets core & peripherals via SYSRESETREQ & VECTRESET bit.
Reset: Halt core after reset via DEMCR.VC_CORERESET.
Reset: Reset device via AIRCR.SYSRESETREQ.
T-bit of XPSR is 0 but should be 1. Changed to 1.
J-Link>go
J-Link>

「exit」又は「q」コマンドを入力してツールを終了します。

J-Link>exit

前の質問

J-Linkソフトウェアのインストール手順

次の質問

J-Link/J-Trace本体から基板に電源を共有する設定手順