OpenOCD is an on-chip debugging, in-system programming and boundary-scan
testing tool for ARM systems. The debugger uses an IEEE 1149-1
compliant JTAG TAP bus master to access on-chip debug functionality available
on ARM based microcontrollers or system-on-chip solutions.

User interaction is realized through a telnet command line interface, a
gdb (the GNU debugger) remote protocol server.

OpenOCD supports many different types of JTAG interfaces/programmers.
