EMBEDDED PROJECTS JOURNAL
100% frei und kostenlos,
als PDF und in gedruckter Form,
per Open Source Lizenz
AVR-RISC (Infos)
Embedded Software selbst entwickeln
(inkl. Absatz über USBprog)
AVR-Starterkit für 61,90 EUR
Quicklinks: Home | Online Firmware Pool | Shop
     

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.

Status

Getestet mit dem Telnet-Interface und dem Konsolen GDB unter Linux und Windows.

Download

Beschreibung
 Download
 Hex-Firmware
 openocd.hex
 Bin-Firmware  openocd.bin
 Quelltextarchiv-Firmware  SVN Repository
 Treiberdateien für Windows
 Download
 OpenOCD Windowsversion mit USBprog Unterstützung inkl. Treiber (YAGARTO)
 Download
 OpenOCD Debian Paket
 Download
 OpenOCD Quelltextarchiv
 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 

Anschlussbelegung

10-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 Linux

Debian (Sarge Testing)

  1. apt-get install openocd 

Aus dem Quelltext installieren

  1. Quelltextarchiv herunterladen mit Subversion:
     svn checkout http://svn.berlios.de/svnroot/repos/openocd/trunk
  2. Kompilierung vorbereiten: ./configure --enable-usbprog
  3. Kompilieren: make
  4. Installieren in das Dateisystem: make install
  5. 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 Debugger

GNU/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

 

 © 2007 by Embedded Projects, Benedikt Sauter