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では無制限でフラッシュブレークポイントが設定できます。非常に高速にフラッシュブレークポイントが設定できるように設計されているので、ブレークポイントの設定によりプログラムの挙動に影響を与えません。
設定
- 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);