|
|
||
|
|
||
|
平成22年3月19日 ここはSH2用JTAG ICEのサポートページです。 このページで紹介するJTAG ICEは、CQ出版の雑誌「Interface」誌の2006年6月号に付録のSH2基板でのみ動作するものです。
JTAG ICE(ジェイタグアイス)とは、JTAGという通信を使ってCPUの中のコアにアクセスし、レジスタやメモリの読み書きをしたり、ステップ実行をさせるといった、強力なデバッグツールです。 自分で作ったプログラムをデバッグするには、モニタプログラムという方法もありますが、モニタプログラムは常にROMのどこかに常駐していなければなりませんし、本来ユーザが使えるはずのメモリの多くを使ってしまいます。 それに対してJTAG ICEを使ったデバッグ方法では、SH2のROMやRAMといったユーザリソースを全く必要としないのが大きな特徴です。また、RS232ではなくJTAGという専用の通信線を使いますので、RS232Cのポートはユーザが自由に使えるように残されています。 そのため、最終的なリリースをする状態に近い状態でのデバッグができるようになります。 ここで紹介するSH2用JTAG ICEを使うと、XILINXやALTERAのパラレルケーブルを用いて、SH2付録基板のJTAGデバッグができるようになります。
JTAGデバッグとは、JTAGといわれている4本の配線を使ってCPUとパソコンの間で通信をし、CPUのレジスタやメモリの読み書きをしたり、ステップ実行をさせることができる技術です。JTAGデバッグをさせるシステムをJTAGデバッガといいます。 JTAGデバッガを使うと、CPUの動作を任意の場所で止めたり、レジスタやメモリの内容を読み書きすることができるようになります。
RS232Cのシリアル通信を使うモニタ方式と比べて、次のようなメリットがあります。 ■ モニタプログラムが裏で常駐しない ■ 全メモリ空間(ROM、RAM)が、ユーザ用に使える ■ COMポートを、ユーザアプリケーションで自由に使用できる ■ ハードウェアブレークポイントが4つまで設定できる 現在のところ、Interface2006年付録基板のCPU(SH7144)に対して、以下の操作を行うことができます。
また、本デバッガは、上記の機能を組み合わせることで以下の機能を実現しています。
本デバッガは、上記の機能だけを備えたシンプルなものですが、Windowsのネイティブプログラムで動作しますので、非常に機敏かつ快適に動作します。C言語のソースコードレベルでのデバッグが行いたい場合には、Insightというデバッガと接続して行うこともできます。
Interface誌9月号(平成18年7月26日発売)にも収録されていますので、是非ともInterface誌をお求め下さい。
使用期限について バージョン1.1ならびにバージョン1.2には試用期限はありません。
本ソフトウェアを使用するためには、以下のいずれかのJTAGケーブルをご用意ください。
XILINXのParallel Cable IIIは比較的簡単に自作することができます。 Parallel Cable III (DLC 5) Schematic 最近のノートパソコンなどはパラレルポートを備えていないものが多くなっています。そのようなPCではパラレルケーブルを使用することができませんので、USBを使うことになります。 廉価なUSB-JTAG変換アダプタとして、当社のPocketJTAGがご利用いただけます。なお、このUSB-JTAGアダプタはSH2用JTAG ICE専用ではなく、「包括的JTAGサポートソフトウェア MITOUJTAG」の付属品です。
PocketJTAG
以下、XILINXのParallel Cable IVを使用する場合で話を進めます。 SH2ボードのコネクタJ3にJTAGの信号線が出力されています。この信号線の配置は下の図のようになっています。XILINXのParallel CableにはVCC、GND、TCK、TDI、TDO、TMSと記された6本の線がありますので、SH2基板の対応する場所に接続していきます。ASEBREAKやRESETなどは接続しなくても構いません。
※なお、上の図はInterface誌付録の基板におけるピン配置図です。明らかにH-UDIのピン番号を間違えたとしか思えないような並びになっています。しかし、その後、某社から発売された基板ではいつのまにか直っているそうです(ただし付録の回路図は間違ったままだそうです)のでお気をつけください。DBGMDもいつの間にかプルダウンになっているようです。詳しく調べてくださった方がいらっしゃいました。詳しくはこちらの方のブログをご覧下さい。→http://d.hatena.ne.jp/s_meika/20100615
接続を行うと次の写真のようになります。 なおInterface付録のSH2ボードは、DBGMD端子がデフォルトでプルアップされていますので、JTAGデバッグ可能な状態になっています。もしDBGMDを改造してプルダウンにしている場合は元に戻すようにしてください。 JTAGコネクタを接続し終えたら、SH2ボードに電源を入れる準備をしてください。 これで、JTAGデバッグのためのハードウェアの準備は完了です。
SH2デバッガを使用するには、原則としてキーコードというものを設定しなければいけません。 キーコードはSH2 7144FのH'00000020番地に書き込まれた32ビットの値です。 キーコードを設定するというのは、H'FFFFFFFF以外の値を設定することを意味します。 キーコードを書き込むには、FDT(Flash Development Tool)というツールを使って、RS232C経由でフラッシュROMに書き込まなければなりません。
なお、このSH2デバッガはキーコードが未設定の状態でも起動することができます。ただし未設定の場合は起動時にフラッシュROMを消去してしまいます。 なお、本デバッガは評価用に作られているため、キーコードはH'C91F0606に固定されています。この値を変更することはできません。詳細はInterface誌をご覧下さい。
SH2の7144は、アドレス0番地の付近はジャンプテーブルとして使用されています。その中で、アドレス0x20番地の場所は「(システム予約)」とされています。本デバッガを用いてJTAGデバッグを行うには、この場所に0xC91F0606という、マジックワードを書き込む必要があります。
その中にあるvecttbl.cを編集します。右の図のようにvecttbl.cを開いてください。
GCCの場合も同様に、スタートアップルーチンなどで定義しているベクタテーブルの8番を設定してください。
Interface誌9月号付録のCD-ROM、または上記のURLからダウンロードしたexeファイルをクリックしてください。
デスクトップにある下の図のアイコンをクリックしてください。
次の図に示した画面が開きますので、XILINXのケーブルを使う場合は、そのままデフォルトの状態で「OK」ボタンを押します。「ビッグエンディアン」と書かれたチェックボックスはチェックしたままにしてください。 FDT(Flash Development Tool)などを用いてROM上にプログラムをダウンロードしている場合は、「内蔵ROM上のプログラムをデバッグする」のチェックボックスをONにしてください。 内蔵ROMが空の場合は、「内蔵ROM上のプログラムをデバッグする」のチェックボックスはOFFにしてください。
上の起動操作を行って、SH2がJTAGで認識されると、下の図のような画面になります。
もし上のような画面にならない場合は、JTAGコネクタの接続や、ターゲットボードの電源、そしてアドレス0x20番地のキーコードを確認してください。 成功すると、SH2のCPUコアにはリセットがかかり、JTAGを通じて強制的に停止させられた状態になっています。 SH2のCPUコアが停止した状態では、各種のデバッグコマンドを発行させることができます。
各ボタンの機能を以下に簡単に説明します。
本デバッガの画面は次の図のように構成されています。
各ウィンドウは不必要ならば閉じてしまっても構いません。
本デバッガは、GNUデバッガ(GDB)から接続を受けることができます。 この様子を図で表すと、下の図のようになります。
GDBやInsightは、C言語のソースコードを用いた比較的高度なデバッグを行うことができますが、JTAGプロトコルを出力することはできません。GDBやInsightはGDBプロトコルと呼ばれるコマンド群を出力します。 一方、SH2はGDBプロトコルを解釈することができません。 そこで、本デバッガが間に入って、そのGDBプロトコルを解釈してSH2が理解できるJTAGプロトコルに変換し、SH2へ送ります。 このようにして、GDBからSH2をJTAGでデバッグすることができるようになります。 GDBと本デバッガの接続はTCP/IPを使用します。相手先のアドレスはlocalhostとしてください。ポートは2159番に固定されています。
ご意見・ご質問はこちら。
Copyright(C) 2009 TokushuDenshiKairo Inc. All rights reserved. |