RDI

J-Rink RDIはJ-Link用RDIインターフェースです。このソフトによりJ-LinkをすべてのRDI準拠デバッガと一緒に使用できます。ソフトウェアパッケージには2つのDLLがあり、2つとも同じフォルダにコピーする必要があります。これらのDLLを使用するに、デバッガーから選択する必要があります。これは独立したソフトになっており、J-Linkソフトウェアパッケージに含まれていません。

 

対応ARMデバッガー

次のRDI準拠デバッガに対応しています。

  • ARM® Developer Suite™ (ADS)
  • ARM® RealView® Development Suite (RVDS) V3.0 (Since RVDS 3.1 removed RDI support, J-Link RDI will not work with RVDS 3.1)
  • IAR Embedded Workbench for ARM (EWARM)
  • RealView® Microcontroller Development Kit (Keil MDK)
  • Greenhills (GHS) MULTI

 

無制限フラッシュブレークポイント

RDI DLLはフラッシュメモリ上でソフトウェアのブレークポイントを自由に設定できます。次からこれをフラッシュブレークポイントとします。これによりICEが2箇所のハードウェアブレークポイントを設定できないのに対して、RDI DLLでは無制限でフラッシュブレークポイントが設定できます。非常に高速にフラッシュブレークポイントが設定できるように設計されているので、ブレークポイントの設定によりプログラムの挙動に影響を与えません。

j-link rdi iar flashbps 625

 

設定

j-link rdi config

  • RDIでは次のようなたくさんの項目を設定変更できます。
  • セットアップファイルを用いたターゲットシステムの初期化
  • JTAGスピードとスキャンチェインの設定
  • フラッシュプログラミングの有効/無効
  • ブレークポイント設定(ソフトウェアブレークポイントorフラッシュブレークポイント)
  • CPU詳細設定
  • ログファイル有効/無効

 

セットファイル用コマンド

コマンド説明
SetJTAGSpeed(x);  JTAG スピードの設定, x = スピード(kHz) (0=自動設定)
Delay(x); 待機時間の設定,
x = 待機時間(ms) 
Reset(x); ターゲットのリセット,
x = リセットまでの時間(ms)
Go(); ARM コア動作開始
Halt(); ARM コア一時停止
Read8(Addr); 8/16/32 ビット値の読み込み,
Addr = 読み込むアドレス (16進数)
Read16(Addr);
Read32(Addr);
Verify8(Addr, Data); 8/16/32 ビット値の確認,
Addr = 確認するアドレス (16進数)
Data = 確認するデータ (16進数)
Verify16(Addr, Data);
Verify32(Addr, Data);
Write8(Addr, Data); 8/16/32 ビット値の書き込み,
Addr = 書き込むアドレス (16進数)
Data = 書き込むデータ (16進数)
Write16(Addr, Data);
Write32(Addr, Data);
WriteVerify8(Addr, Data); 8/16/32 ビット値の書き込みと確認,
Addr = 書き込むアドレス (16進数)
Data = 買い込むデータ (16進数)
WriteVerify16(Addr, Data);
WriteVerify32(Addr, Data);
WriteRegister(Reg, Data); レジスタ書き込み
WriteJTAG_IR(Cmd); JTAG インストラクションレジスタの書き込み
WriteJTAG_DR(nBits, Data); JTAG データレジスタの書き込み

セットアップファイルサンプル

/*********************************************************************
*
*    Setup file for J-LINK RDI
*
**********************************************************************
* File:    LPC2294.setup
* Purpose: Setup for Philips LPC2294 chip
**********************************************************************
*/
SetJTAGSpeed(1000);
Reset(0);
Write32(0xE01FC040, 0x00000001); // Map User Flash into Vector area at (0-3f)
Write32(0xFFE00000, 0x20003CE3); // Setup CS0
Write32(0xE002C014, 0x0E6001E4); // Setup  PINSEL2 Register
SetJTAGSpeed(2000);