|
|
||
|
|
||
|
平成22年5月13日
このページで紹介するJTAG ICEは、CQ出版の雑誌「Interface」誌の 2010年6月号に付録のSH2A基板(FRK-SH2A)でのみ動作するものです。 まだ多機能ではありませんがこれから発展させていくつもりです。だから、未来があります。
このソフトウェアは、当社のお客様への日ごろの感謝をこめて無償で提供します。 ※MITOUJTAG 2.x 、Spartan-6評価ボード、J-Writerをご利用のお客様を対象とさせていただきます。 ※Pocket JTAG Cableのみご購入のお客様やMITOUJTAGの旧バージョンをご利用のお客様も無償でお使いいただけるようなプランを開発中です。
このデバッガは、CQ出版様とは無関係に当社独自で開発しております。 お問い合わせなさらないようにしてください。 ■更新情報 ・対応JTAGケーブルに、「Spartan-6で作るUSB-JTAG」を追加しました(平成21年5月13日) ・対応JTAGケーブルに、「万能JTAGプログラマ J-Writer」を追加しました(平成21年5月12日) 次の更新ではV850ES、SH-2への対応を行います。ご期待ください。 SH2用JTAG ICEとはJTAG ICE(ジェイタグアイス)とは、JTAGという通信を使ってCPUの中のコアにアクセスし、レジスタやメモリの読み書きをしたり、ステップ実行をさせるといった、強力なデバッグツールです。 自分で作ったプログラムをデバッグするには、モニタプログラムという方法もありますが、モニタプログラムは常にROMかRAMのどこかに常駐していなければなりませんし、本来ユーザが使えるはずのメモリの多くを使ってしまいます。また、オンチップのUSBでは、マイコンが暴走したときにも使えるかどうかは定かでありません。 それに対してJTAG ICEを使ったデバッグ方法では、SH2AのRAMといったユーザリソースを全く必要としないのが大きな特徴です。また、USBやRS232ではなくJTAGという専用の通信線を使いますので、USBやRS232Cのポートはユーザが自由に使えるように残されています。 そのため、最終的なリリースをする状態に近い状態でのデバッグができるようになります。 ここで紹介するSH2用JTAG ICEを使うと、XILINXやALTERAのパラレルケーブル、または当社製のPocket JTAG Cabke、またはSpartan-6評価ボードを用いて、SH2A付録基板のJTAGデバッグができるようになります。
JTAGデバッグとは、JTAGといわれている4本の配線を使ってCPUとパソコンの間で通信をし、CPUのレジスタやメモリの読み書きをしたり、ステップ実行をさせることができる技術です。JTAGデバッグをさせるシステムをJTAGデバッガといいます。 JTAGデバッガを使うと、CPUの動作を任意の場所で止めたり、レジスタやメモリの内容を読み書きすることができるようになります。 RS232Cのシリアル通信を使うモニタ方式と比べて、次のようなメリットがあります。 ■ モニタプログラムが裏で常駐しない ■ 全メモリ空間(ROM、RAM)が、ユーザ用に使える ■ COMポートを、ユーザアプリケーションで自由に使用できる ■ ハードウェアブレークポイントが4つまで設定できる SH2用JTAGデバッガの機能現在のところ、Interface2010年付録基板のCPU(SH7262)に対して、以下の操作を行うことができます。 ■ CPUの停止と再開(リスタート) ■ メモリの読み書き ■ レジスタの読み書き ■ シングルステップ実行 ■ ハードウェアブレークポイント設定
また、本デバッガは、上記の機能を組み合わせることで以下の機能を実現しています。
■ 実行しているプログラムの逆アセンブル ■ 任意のアドレスへのジャンプ ■ メモリダンプ
■ ELFファイル(GCCで作成した実行形式ファイル)のダウンロード ■ GDBとの接続(GDB Stub機能)受け付けによるリモート操作。
本デバッガは、上記の機能だけを備えたシンプルなものですが、Windowsのネイティブプログラムで動作しますので、非常に機敏かつ快適に動作します。C言語のソースコードレベルでのデバッグが行いたい場合には、Insightというデバッガと接続して行うこともできます。
入手方法ダウンロード
インストール 上のURLからダウンロードしたexeファイルをクリックしてください。
使用期限について 使用期限は平成22年6月1日までです。それまでには、次のバージョンをリリースするでしょう。
使い方ハードウェアの準備 本ソフトウェアを使用するためには、以下のいずれかのJTAGケーブルをご用意ください。 ■ 特殊電子回路叶サ Spartan-6 FPGA評価ボードを使って作るUSB-JTAGケーブル ■ XILINX製 Parallel Cable IIIまたはParallel Cable IV ■ ALTERA製 ByteBlasterMVまたはByteBlasterII SH2A基板(FRK-SH2A)とJTAGケーブルの接続方法 以下、特殊電子回路製のPocket JTAG Cableを使用する場合で話を進めます。(J-Writerの場合も同じです。) FRK-SH2AのH-UDI用コネクタ「CN1」にはJTAGの信号線が出力されています。この信号線の配置は下の図のようになっています。Pocket JTAG CableにはVCC、GND、TCK、TDI、TDO、TMS、INIT、SRSTと記された8本の線がありますので、SH2基板の対応する場所に接続してください。注意すべき点は以下の点です。 ○ SH基板のASEMD(9番ピン)は、GNDに落とす。 ○ SH基板のnASEBはどこにもつながない。 ○ SH基板のnTSRTはPocket JTAG CableのINIT端子につなぐ。 ○ SH基板のnRSTはPocket JTAG CableのSRST端子につなぐ。
接続を行うと次の写真のようになります。SH2A基板上のコネクタに、ちらっと赤くみえているのが、ASEMDと隣のGND接続するジャンパです。これを接続しないとデバッガが使用できるモードになりません。
一本一本接続するのが面倒な場合は、下の写真のようなXILINX14pin↔H-UDI変換ケーブルを使うと便利です。
XILINX互換ケーブルの作り方 XILINXのParallel Cable IIIは比較的簡単に自作することができます。 Parallel Cable III (DLC 5) Schematic
もし、XILINXやALTERAのパラレルケーブルなど、nTRSTやnRST用の信号が用意されていないJTAGケーブルを使用する場合は、TRSTとRSTに押しボタンスイッチを接続し、電源投入後、JTAG ICEを起動する前に両方の端子をGNDに落としてください。
JTAGコネクタを接続し終えたら、SH2Aボードに電源を入れる準備をしてください。 これで、JTAGデバッグのためのハードウェアの準備は完了です。
起動方法 デスクトップにある下の図のアイコンをクリックしてください。
(アイコンの絵が7144のままですね。いずれ直します・・) 次の図に示した画面が開きますので、Pocket JTAG Cableを使う場合は、そのままデフォルトの状態で「OK」ボタンを押します。「ビッグエンディアン」と書かれたチェックボックスはチェックしたままにしてください。 ※ 「内蔵ROM上のプログラムをデバッグする」のチェックボックスは、どちらでも構いません。(動作に影響ありません) ※ SH7262以外にもいくつかのCPUの名前が出ていますが、本デバッガではSH7262しか使えません。
操作方法 上の起動操作を行って、SH2がJTAGで認識されると、下の図のような画面になります。
上のような画面にならない場合は、JTAGコネクタの接続や、ターゲットボードの電源を確認してください。
CPUとの接続に成功すると、SH2AのCPUコアにはリセットがかかり、JTAGを通じて強制的に停止させられた状態になります。 SH2AのCPUコアが停止した状態では、各種のデバッグコマンドを発行させることができます。
各ボタンの機能を以下に簡単に説明します。
リセット 本来はCPUをリセットさせるためのボタンですが、本ICEでは実装されていません。
CPUの動作再開 JTAG ICEでメモリの内容を読み書きなどする場合は、CPUは一旦停止した状態になります。 その停止状態を解除して、再度スタートさせるためのボタンです。ファンクションキーのF9でも同様の動作が行えます。
CPUの動作停止 任意のタイミングでCPUの動作を停止させることができます。
シングルステップ実行 CPUのコアを、アセンブラの命令単位で1命令ずつ実行させ、プログラムカウンタやレジスタの値を調べることができます。 ファンクションキーのF8でも同様の動作が行えます。
メモリダンプ StartADDRに指定したアドレスから、指定した長さだけ、メモリの内容をダンプします。
レジスタウィンドウ表示
ADDRに指定した番地へジャンプ StartADDRと書かれたボックスに指定された番地へプログラムカウンタを移動させます。
GDBスタブを起動する
画面の見方本デバッガの画面は次の図のように構成されています。
逆アセンブルウィンドウ このデバッガはSH-4AやSH2のものを改良して作られていますので、 SH2Aで登場した命令のいくつかのものは解読できない可能性があります。 いずれSH-2A専用の命令にも対応します。
レジスタウィンドウ 前回調べた値から変化している場合は、赤い色で表示されます。 なお、このウィンドウの値を編集すると、レジスタの値を変更できます。
メッセージウィンドウ
スタックウィンドウ
ハードウェアブレークポイントウィンドウ ハードウェアブレークポイントに設定されたアドレスと、有効無効を表示します。 各ウィンドウは不必要ならば閉じてしまっても構いません。
GDBとの接続方法本デバッガは、GNUデバッガ(GDB)から接続を受けることができます。 この様子を図で表すと、下の図のようになります。
GDBやInsightは、C言語のソースコードを用いた比較的高度なデバッグを行うことができますが、JTAGシーケンスを出力することはできません。GDBやInsightはGDBプロトコルと呼ばれるコマンド群を出力します。 一方、SH2AはGDBプロトコルを解釈することができません。 そこで、本デバッガが間に入って、そのGDBプロトコルを解釈してSH2Aが理解できるJTAGシーケンスに変換し、SH2Aへ送ります。 このようにして、GDBからSH2をJTAGでデバッグすることができるようになります。 GDBと本デバッガの接続はTCP/IPを使用します。相手先のアドレスはlocalhostとしてください。ポートは2159番に固定されています。
ご意見・ご質問はJTAGひろばにて承ります。
Copyright(C) 2010 TokushuDenshiKairo Inc. All rights reserved. |