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 StrubelGDBproxy 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 (以下略)