USB JTAG Adapter für OpenOCD (ARM Debugger)
von Benedikt Sauter, sauter@ixbat.de, 2007
Mit der OpenOCD-Firmware für den USBprog Adapter lassen sich viele ARM-basierte Mikrocontroller im eingebauten Zustand (in-circuit) programmieren. Der Adapter ermöglicht Echtzeitdebugging, das Setzen von Breakpoints und Ausführen von Einzelschritten, also die ganze Funktionspalette, welche zur erfolgreichen Anwendungsentwicklung und zum effizienten Debugging benötigt werden. Angesteuert wird er über OpenOCD von Dominic Rath. NEU: Im Testing-Zweig von Debian Sarge ist mittlerweile OpenOCD samt USBprog unterstützung integriert! D.h. es kann einfach über die Paketverwaltung alles benötigte installiert werden.

Dieser Adapter ist nicht der Schnellste! Aber die Geschwindigkeit reicht für die meisten einfachen Programmierungen und Debugsessions völlig aus! Ein Singlestep auf der Telnetkonsole geht fast ohne Verzögerung. Es wird aber trotzdem an einer kleinen Platine gearbeitet, die einfach wie die oben gezeigte Lochrasterplatine angesteckt werden kann. Darauf befindet sich dann ein CPLD der die Kommunukation drastisch beschleunigt.
StatusGetestet mit dem Telnet-Interface und dem Konsolen GDB unter Linux und Windows.
Download
Support für OpenOCD
Auf dieser Seite wird nur Support direkt für den Adapter angeboten. Sobald es Probleme mit OpenOCD und einem ARM-Controller gibt, ist man im Support-Forum von OpenOCD gut aufgehoben: http://forum.sparkfun.com/viewforum.php?f=18 USBprog mit OpenOCD im Einsatz: ARM Getting Started with USBprog and OpenOCD Anschlussbelegung10-polige Stecker | | Beschreibung | Pin | Pin | Beschreibung | TDI * | 1 | 2 | VREF | | SRST | 3 | 4 | TRST | TMS * | 5 | 6 | | TCK * | 7 | 8 | | TDO *
| 9 | 10 | GND | * nur diese IOs sind an Version 2.0 verfügbar | JP3 (an 3.0) JP2 (an 2.0)
| | Pin | Beschreibung | | 1 | VCC (gibts an JP2 in der Version 2.0 nicht)
| | 2 | SRST
| | 3 | TRST | | 4 | GND (gibts an JP2 in der Version 2.0 nicht) | ACHTUNG! Es gibt ARM Prozessoren die nicht 5 V kompatibel sind! (z.B. STR710, STR711, STR712) Hier muss eine Schaltung für die Pegelwandlung dazwischen gehängt werden! Zitat von einem Benutzer: Vielleicht noch ein Hinweis: Ich hab hier das Datenblatt des Atmel SAM7XC, Seite 13: JTAG Port Pins sind nicht 5V tolerant, obwohl es der Rest schon ist! OpenOCD unter LinuxDebian (Sarge Testing)
- apt-get install openocd
Aus dem Quelltext installieren - Quelltextarchiv herunterladen mit Subversion:
svn checkout http://svn.berlios.de/svnroot/repos/openocd/trunk - Kompilierung vorbereiten: ./configure --enable-usbprog
- Kompilieren: make
- Installieren in das Dateisystem: make install
- Rechte anpassen: chmod +s /usr/local/bin/openocd (als Root)
OpenOCD unter Windows
Für Windows pflegt Michael Fischer eine Installationversion von OpenOCD. Diese ist über die Homepage http://www.yagarto.de/ erreichbar. Da USBprog noch relativ frisch ist gibt es erstmal hier auf meiner Seite ausschliesslich eine Yagarto OpenOCD USBprog Version. Die Datei muss einfach heruntergeladen und installiert werden. Entweder kann man anschliessend openocd von der Dos-Box aus starten oder in eine Entwicklungsumgebung die aus Eclipse besteht integrieren. Arbeiten mit dem OpenOCD DebuggerGNU/Linux Vor etwas längerer Zeit habe ich mal ein kleines Demo hier zusammengeschrieben. Ich denke mal es sollte als Leitfaden ausreichend sein. LPC2103(ARM7) mit OpenOCD unter Linux entwickeln
Windows Da ich selber aus der Linux Ecke komme verweise ich direk auf die Seiten von Michael Fischer. Hier wird beschrieben wie man unter Windows mit OpenOCD und dem GCC entwickeln kann: http://www.yagarto.de/howto.html Pegelwandler 5V und 3,3 V
Mögliche Spannungswandler: SN74LVC8T245 8-Bit Dual-Supply Bus Transceiver with Configurable Voltage Translation and Three-State Outputs 1.65 5.5 Both 8 Dual Supply TXB0108 8-Bit Bidirectional Voltage-Level Translator with Auto Direction Sensing and +/-15-kV ESD Protect 1.2 |