OLIMEX© 2015
ARM-USB-OCD user's manual
1.2 Functional description and purpose of the board
A programmer/debugger is an inseparable part of an active development process that involves ARM
microcontrollers. ARM-USB-OCD is a USB FT2232-based ARM JTAG programmer/debugger that
is controlled by a PC via OpenOCD under Windows, Linux or MAC OS. The ARM-USB-OCD
programmer/debugger is used for hardware and software development on ARM microcontrollers
(MCUs) which via JTAG interface.
Both debuggers are able to power your target board via the JTAG.
Both debuggers can power the target board via a DC power plug. The ARM-USB-OCD-H always
provides up to 5V of voltage to the target via the plug, while the ARM-USB-OCD can be
configured to provide 9V or 12V.
The Olimex OpenOCD debuggers can also be used for other applications (except ARM
microcontroller debugging) as long as the software allows it. We have seen Olimex OpenOCD
debuggers used for flash memory programming (“flashrom” utility software) and Atmel AVR
debugging (“AVReAL” and “AVRdude” software tools). Yet, while these applications of ARM-
USB-OCD are possible, we do not provide any support regarding such use.
Please note that Olimex OpenOCD debuggers have NO hardware support for “Serial Wire Debug”
interface. An adapter extending the SWD functionality is sold separately. The adapter is called
ARM-JTAG-SWD.
1.3 What is OpenOCD?
OpenOCD was created by Dominic Rath as part of a 2005 diploma thesis written at the University
of Applied Sciences Augsburg (
). Since that time, the project has grown
into an active open-source project, supported by a diverse community of software and hardware
developers from around the world.
The Open On-Chip Debugger (OpenOCD) aims to provide debugging, in-system programming and
boundary-scan testing for embedded target devices.
It does so with the assistance of a debug adapter, which in our case is the ARM-USB-OCD
debugger which helps provide the right kind of electrical signaling to the target being debugged.
These are required since the debug host (on which OpenOCD runs) won’t usually have native
support for such signaling, or the connector needed to hook up to the target.
Page 6 of 33