OpenOCD is a Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing.