設定
Windows環境ではRoboShellWin.cfgを使い、Unix環境ではRoboShellUnix.cfgを使います。これらは微妙な差異しかありませんが、慣れるまではそれぞれのファイルを使ったほうが良いでしょう。
こちらのほうもTeamKNOxのサイトにおいてありますので利用してみてください。
仕組み
コンフィグファイルの設定
OpenOCD を動作させるためには、ハードウェア毎の特性を記述したコンフィグレーションファイルの設定が必要になります。
今回使うコンフィグレーションファイルもTeamKNOxのサイトからダウンロード可能です。RoboShellWin.cfg, RoboShellUnix.cfgの違いはディスクリプション部分を有効化してあるかコメントアウトしているかどうかだけです。
ここでは RoboShellWin.cfg を見ていくことにします。
リスト:RoboShellWin.cfg
#daemon configuration telnet_port 4444 gdb_port 3333 #interface interface ft2232 # You have to comment out ft2232_device_desc in Windows environment ft2232_device_desc "RoboShell debugger A" ft2232_layout "jtagkey" ft2232_vid_pid 0x0403 0x6010 jtag_speed 40 #use combined on interfaces or targets that can't set TRST/SRST separately #reset_config trst_and_srst srst_pulls_trst reset_config trst_and_srst #jtag scan chain #format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE) jtag_device 4 0x1 0xf 0xe jtag_nsrst_delay 10000 jtag_ntrst_delay 10000 #target #target arm7tdmi target arm7tdmi little reset_run 0 arm7tdmi-s_r4 run_and_halt_time 0 30 #target configuration daemon_startup reset working_area 0x0 0x40000000 0x40000 nobackup #flash configuration flash bank lpc2000 0x0 0x7D000 0 0 lpc2000_v2 0 14765 calc_checksum # For more information about the configuration files, take a look at: # http://openfacts.berlios.de/index-en.phtml?title=Open+On-Chip+Debugger
この中で重要なのは、
telnet_port 4444
gdb_port 3333
この設定で、telnetのポートとデバッグで使うtcpのポートが設定されます。
この部分は、前回の記事で説明したMProgで設定するEEPROMのディスクリプションと同じになるようにします。FTDI社のFT2232をベースにしたJTAGデバッガは各社からリリースされています。そのピン配置は概ね同じですが細かい違いがあります。今回の場合はjtagkeyとほぼ同一になっているので、jtagkeyを設定したわけです。
FT2232のUSBのベンダーIDとプロダクトIDを設定します。この設定もEEPROMの設定値と同じになるようにします。JTAGの動作スピードです。今回のターゲットであるLPC2138のメモリマップに対応させます。フラッシュ時に必要な情報です。これが正確に書かれていないと、フラッシュできません。