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.