Openocd
Openocd is a free JTAG debugger for ARM cores written by
Dominic Rath (dominic dot rath at gmx dot de). Please go to http://openocd.berlios.de to read
more about the project.
Here is an OpenOCD Quick Reference (for rev. 211, 2007-11-14):
oocd-quickref.pdf (4 pages) and
oocd-quickref-compact.pdf (2
pages). The Latex source code is stored at the
repository.
Also the GDB Quick Reference (Version 5)
might be of interest because OpenOCD needs the GNU Debugger as front-end.
To debug a specific board with OpenOCD quite a few parameters have to
be adapted. Therefore demonstration code is very welcome. Here is
a demo:
- sam7uart
This code demonstrates UART communications and blinking LED on an Atmel
SAM7S64. It runs on an Olimex SAM7-P64 board connected to a "USBJTAG" debug
interface (see below). Please read the README file.
JTAG Interfaces
OpenOCD can talk to nearly any hardware which is able to drive the
JTAG signals. Currently the sourcecode supports the following interfaces:
Parallel Port Interfaces
- Wiggler
The Wiggler is a cheap parallel port JTAG interface originally developed by
Macraigor. On a write or read access to/from the parallel port a single bit is
sent to TCK, TMS, TDI and a bit is read from TDO. Write/read accesses at the
parallel port (in legacy mode) can be at a maximum rate of 200.000 to 400.000
per second. This is the reason why the Wiggler is a rather slow JTAG interface.
Meanwhile the schematic is free. Be aware that different versions of the
schematic exist. Following is the schematic from Dominic Rath's OpenOCD thesis:
Here is another schematic found at the homepage of the H-JTAG project: WIGGLER.pdf (added on 2006-12-13)
- JTAG Accelerator
The JTAG Accelerator is a more clever implementation of a JTAG interface using
shift registers. It does also support the RTCK feature for adaptive clocking
("return clock"). The programming interface to the Accelerator is open and well
described. The Accelerator is implemented in the "Chameleon" parallel port
adaptor by Amontec (www.amontec.com).
The Chameleon dongle contains a reconfigurable CPLD. The idea behind this
dongle is to buy one adaptor and to change its identity by reconfiguring the
CPLD. Amontec's homepage offers many different configurations from CPLD/FPGA
download cables to BDM and JTAG interfaces. Besides the Accelerator configuration there is also a free configuration for the Wiggler.
USB
- The USB to JTAG interfaces based on the FT2232 chip are described on this
page: http://www.fh-augsburg.de/~hhoegl/proj/usbjtag/usbjtag.html
- USBprog - since 2007 there is another USB-to-JTAG interface
which does not use an FT2232. Instead, it is based on a National Semiconductor USB bridge
USBN9604 and an Atmel AVR Mega32 microcontroller. Beside its use as a
JTAG adaptor for OpenOCD it can also be used for other purposes by
reprogramming the AVR flash memory from a pool of ready to use
firmwares. For example the device can also act as a AVRISP mkII or as
an AVR JTAG debugger (JTAGICE mkI) or as a programmer for 8051
controllers. USBprog is a project of Benedikt Sauter, one of my
diploma students. It was presented at Embedded World 2007 trade fair
in Nuremberg (here are some fotos).
Please go to
http://www.embedded-projects.net to read more about this nice adaptor.
A foto of USBprog, revision 3.
Photographs
- I shot these photographs at Dominic Rath's diploma thesis talk in
autumn 2005.
Dominic starting to talk about his
thesis.
|
Cogent CSB337 (with Atmel AT91RM9200) controlled
by Openocd and a USB-to-JTAG interface.
|
A board based on an ARM720T connected to the
Chameleon POD "Wiggler".
|
Dominic Rath mit Arkadius Nowakowski
|
- Embedded World 2006 (14-16 Feb), Nürnberg
Find all photographs here:
http://www.fh-augsburg.de/~hhoegl/tmp/eworld/embedded-world-2006/fotos/
Author: Hubert.Hoegl@fh-augsburg.de
Last modified: Thu Nov 15 00:16:40 2007