gdbproxy / DLC5

ようやくデバッガの接続までいきました。ターゲットはEZ-KIT Lite BF533です。いくつかポイントを。

jtag/bfemu/jtag.c

cable_paramsの設定は以下のようにしました。

char * const cable_params[] = {
        "parallel",
        "0x378",
        "DLC5"
};

PCごとにいろいろ試すべきものかも知れません。上の値はVMWare 5.5上でのものです。試行錯誤しながらだったので、これでなければ動かないとは言いきれません。

DLC5

Xilinxのパラレルポート接続ダウンロードケーブルです。JTAGポッドとして使用できますが、注意がいくつか。

VCC
ボードから供給します。DLC5はVCCをターゲットボードから供給しなければうごきません。しかし、Analog DevicesのJTAGポートには3.3V出力がありません。そこで、ボード上の適当なところにピンを立てて、3.3VをDLC5に供給してやります。
/TRST
プルアップします。EZ-KIT Lite BF533のJTAGポートの/TRSTはプルダウンされています。これがHになるまでは、プロセッサのJTAG回路はリセット状態にあり、制御を受け付けません。しかし、DLC5には/TRSTピンがありませんので、ソフトで制御することが出来ません。なんらかの方法でJTAGポートの/TRSTをプルアップします。
pin 1
GNDに落とします。EZ-KIT Lite BF533のJTAGポートのpin 1は、抵抗経由でVCCにプルアップされています。JTAGポートの設計リファレンスであるEE-68では、このピンはGNDに落とすことになっています。EZ-KIT Liteがそうなっていないのは、このピンをICEの検出に使っているからです。pin1 をプルダウンしない場合、EZ-KIT liteはJTAGポートをプロセッサから切り離して、ボード上のUSBデバッガを接続します。そのため、gdbproxyを使うには、pin 1をGNDに落とします。ボードの設計がEE-68に沿っていれば、この処理は不要です。

操作結果

とりあえず、オブジェクトを食わせずに動かしたときのトランザクションを示します。太字はユーザー入力です。

suikan@linux-5u15:~> sudo gdbproxy bfin &
[1] 9370
suikan@linux-5u15:~>
Remote proxy for GDB, v0.7.2, Copyright (C) 1999 Quality Quorum Inc.
MSP430 adaption Copyright (C) 2002 Chris Liechti and Steve Underwood
Blackfin adaption Copyright (C) 2005 Martin Strubel 

GDBproxy comes with ABSOLUTELY NO WARRANTY; for details
use `--warranty' option. This is Open Source software. You are
welcome to redistribute it under certain conditions. Use the
'--copying' option for details.

Initializing Xilinx DLC5 JTAG Parallel Cable III on parallel port at 0x378
IR length: 5
Chain length: 1
Device Id: 227a50cb
Active: 0
notice:    gdbproxy: waiting on TCP port 2000

suikan@linux-5u15:~> bfin-elf-gdb
GNU gdb 6.3.50_2004-11-25-cvs
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "--host=i686-pc-linux-gnu --target=bfin-elf".
(gdb) target remote :2000
Remote debugging using :2000
notice:    gdbproxy: connected
0xffa00038 in ?? ()
(gdb) info registers
r0             0x55     85
r1             0xe      14
r2             0x3e     62
r3             0xffffffff       -1
r4             0xdb1b0083       -618987389
r5             0x8002   32770

(以下略)