| OpenOCD USB: ARM-Mikrocontroller Anwendungen entwickeln Benötigt man für eine Anwendung etwas mehr Leistung, kommt man meist an den ARM-Prozessoren nicht vorbei. ARM-Prozessoren sind leistungsstarke 32-Bit Mikrocontroller mit einer Vielfalt an Peripherie. Der Prozessor Kern stammt von der Firma ARM aus England, und wird von vielen Mikrocontrollerherstellern verwendet. Das hat den Vorteil, dass die Compiler und Debugger mit allen sogenannten ARM-Derivaten funktionieren. Die bekanntesten Hersteller von ARM-Prozessoren sind:
- NXP (mit der LPCxxxx Familie)
- Atmel (mit der SAMxx Familie)
- Analog Devices (ADuC Familie)
Neben diesen Herstellern gibt es noch viele andere. Da der Einstieg in die Welt der ARM-Prozessoren nicht so einfach ist, wird mit dem folgendem Text eine Übersicht gegeben, wie ein möglicher Einstieg in die ARM Welt aussehen könnte. Zudem wird der Apdater OpenOCD USB vorgestellt, welcher für die Übertragung der Programme in die Mikrocontroller und zum Debuggen notwendig ist. Entwicklungsumgebung In der folgenden Abbildung ist das typische Zusammenspiel der verschiedenen Software gezeigt, die für die Entwicklung von Mikrocontrolleranwendungen notwendig ist.  Ganz Links in der Grafik fehlt noch der Editor (Eclipse, UltraEdit oder ähnlich) und der GCC Compiler. Compiler Mit dem Compiler werden die C/C++ Quelltexte übersetzt. Hierfür kann der frei verfügbare GCC verwendet werden, da dort ebenfalls die ARM-Architecktur integriert ist. Den Compiler gibt es meist nicht alleine zum Herunterladen, sondern es befinden sich in dem Paket meist zusätzlich der Debugger in die C-Bibliotheken. Für GNU/Linux sind folgende Links zu empfehlen: Für Windows gibt es folgende Möglichkeiten Editor/IDE Hier kann der Lieblingseditor verwendet werden. Etwas größere Editoren wie Eclipse & Co. ermöglichen eine gute Integration der Compiler- und Debuggeraufrufe. Im folgenden ein paar Links, in denen erklärt ist wie man diverse Editoren einrichtet. GDB / Debugger Der Debugger sollte mit dem Compiler installiert worden sein. OpenOCD Server OpenOCD ist das fehlende Bindelied zwischen dem freien Debugger GDB und einer Zielhardware welche über eine JTAG Schnittstelle verfügt. Als Serveranwendung gestartet kann OpenOCD mit Hilfe verschiedener Hardwareschaltungen direkt Kontakt mit einem in einer Schaltung integrierten Zielprozessor On Chip Debugging und die Flashprogrammierung ermöglichen. Downloadmöglichkeiten: JTAG Adapter OpenOCD unterstützt verschiedene JTAG Adapter für die Anbindung an die Hardware. | JTAG Adaptor | Manufacturer | Interface | UART | ca. Price (Euro) | Business Model | | OOCD-Link | [a] | USB (FT2232) | yes | - | Open | | USBJTAG | [b] | USB (FT2232) | yes | - | Open | | USBprog | [f] | USB (USBN9604) | no | 30 | Open | | JTGkey | Amontec [d] | USB (FT2232) | no | 129 | Closed (Commercial) | | JTAGkey-Tiny | Amontec | USB (FT2232) | no | 29 | Closed (Commercial) | | Chameleon | Amontec | Parallelport | no | 119 | Closed (Commercial) | | ARM-USB-OCD | Olimex [e] | USB (FT2232) | yes | 55 | Closed (Commercial) | | ARM-USB-TINY | Olimex [e] | USB (FT2232) | no | 40 | Closed (Commercial) | | Wiggler | [c] | Parallelport | no | 10 | Open | (Liste genommen von http://www.hs-augsburg.de/~hhoegl/tmp/epjournal-1/oocd.html) Ein möglicher Kanditat ist der OpenOCD USB von Embedded Projects:  Mit diesem Adapter kann man per OpenOCD und GDB Programme in den Flash übertragen, und Programme vollständig debuggen (Breakpoints, Speicherdumps, Single-Steps,...). Der OpenOCD braucht als Konfiguration eine Datei in der alle Einstellungen für die aktuelle Umgebung stehen (welcher Mikrocontroller und JTAG-Adapter verwendet wird), welche leider für den Anfänger nicht immer einfach zum erstellen ist. Mit Google, Foren & Co. sollte es aber möglich sein, sich seine passende Datei zu erstellen. Target Das kann ein beliebiges ARM-Board sein. Wichtig ist nur, dass der 20-polige Standard-JTAG Stecker verfügbar ist. Mögliche Board können beispielsweise bei Embedded Projects erworben werden: Für Einseiger ist das ARM-Starterkit von der Shopseite zu empfehlen. OpenOCD USB Unterstützung - On Chip Debugging (ARM7/ARM9/Cortex-M3/XScale)ARM7 (ARM7TDMI and ARM720t), ARM9 (ARM920t, ARM922t, ARM926ej-s, ARM966e-s), XScale (PXA25x, IXP42x) und Cortex-M3 (Luminary Stellaris LM3 und ST STM32)
- Programmierung von Flashspeicher (interner Flash LPC2000, AT91SAM7, STR7x, STR9x, LM3 und STM32x; AMD Flash; Intel Flash; vorläufige Unterstützung für LPC3180's NAND Flashcontroller)
- Programmierung von CPLDs und FPGAs mit JTAG-Schnittstelle
Beschreibung OpenOCD USB Der OpenOCD USB Adapter bietet eine JTAG Schnittstelle und parallel einen extra UART (RS232) Anschluss per USB an. Das hat den großen Vorteil, dass wenn per UART Informationen ausgegeben werden, können die direkt über die gleiche Verbindung wie das Debuginferface welches eh zum programmieren oder debuggen benötigt wird, an den PC übertragen werden. Downloads |