==== OpenOCD ====
{{:tools:openocd.jpg?100|OpenOCD with a J-Link clone}}
\\ \\
{{:interfaces:usbocdh.jpg?100|Olimex USB OCD H for OpenOCD}}
OpenOCD is used to program and debug various devices with GDB.
It supports many interfaces which including GPIOs, professional
interfaces and their clones.
===Install===
==RPi==
Install prerequisites.
apt install build-essential git automake libtool libhidapi-dev libcapstone-dev libusb-1.0-0-dev libjaylink-dev pkg-config
Install into /usr/local
mkdir -p /opt/src
cd /opt/src
git clone https://git.code.sf.net/p/openocd/code openocd
cd openocd
./bootstrap
./configure --enable-ftdi --enable-sysfsgpio --enable-bcm2835gpio --enable-picoprobe --enable-jlink --enable-ft232r --enable-cmsis-dap --enable-cmsis-dap-v2 --with-capstone
make -j 4
make install
NB ST provide a modified version for their processors
git clone https://github.com/STMicroelectronics/OpenOCD openocd.stm32
==Windows==
Release overview is [[https://github.com/openocd-org/openocd/releases|here]] or [[https://github.com/openocd-org/openocd/releases/download/v0.12.0-rc2/openocd-v0.12.0-rc2-i686-w64-mingw32.tar.gz|download]].
===Resources===
[[https://openocd.org/doc/html/GDB-and-OpenOCD.html|Using GDB]]