Translation(s): none

This page is dedicated to the installation and configuration of the free-software on-chip debugger
tool for various hardware architectures known as OpenOCD on Debian.
OpenOCD User's Guide

What is OpenOCD ?

OpenOCD is a free-software tool mainly used for on-chip debugging, in-system
programming and boundary-scan testing. OpenOCD supports flashing and
debugging a wide variety of platforms such as:

The full list of supported CPU types can be accessed here: User's Guide.
The tool can be easily installed on x86_64,i386 and ARM hosts
running Debian (as well as many other Unix-Like Operating Systems)



The OpenOCD tool can be found in Debian's repositories by default and installing works as expected.
However, (especially if you are running oldstable (Debian 9)), the packaged version
might not coincide with the latest stable release of OpenOCD.
Thus, depending on the latest changelog, you might be missing board configuration file additions, bug fixes, etc.
Installing via xpm, albeit lengthier, ensures an updated
package version and automatic integration with Eclipse Plugins (Gnu-ARM-Eclipse).

Installing via the package manager

sudo apt-get install openocd

Installing via xpm (latest)

0.If applicable, remove previous installs of npm (local prefix) with:

sudo rm -rf /usr/local/lib/nodejs
rm -rf ~/opt/npm
npm config delete prefix

1.Install Node.js and npm with nvm

curl -o- | bash
nvm install --lts node
nvm ls
nvm use node
node --version
nvm install-latest-npm
which npm

2.Install xpm (openocd is provided as a dev-tool pack for xpm)
npm install --global xpm@latest
which xpm
xpm --version

3.Install openocd via xpm
xpm install --global @xpack-dev-tools/openocd@latest

If no errors are reported, OpenOCD should be installed
at the following location (Substitute $user with your username
and $ver with your current version of the software):

Symlinking the executable to another location such as /usr/bin might be of interest:
ln -s /home/$user/opt/xPacks/@xpack-dev-tools/openocd/$ver/.content/bin/openocd /usr/bin/openocd


The provided manual page for OpenOCD will guide you through most
of its many switches and modes.
Make sure to locate/create your board.cfg file which contains
necessary hardware information, required for flashing/debugging.
A sample shell script which flashes a firmware.hex to a STM32 development
board with OpenOCD is provided below (edit your firmware.hex location and
board.cfg file and you can confidently use this as a quick flash tool)

echo "OPEN-OCD FOR STM32F4_Discovery_MP3 PROJECT BUILD !";
cd /home/worker/opt/xPacks/@xpack-dev-tools/openocd/0.10.0-13.1/.content/bin
sudo ./openocd -d-1 -f ../scripts/board/stm32f4discovery.cfg -c "init;targets;halt;flash write_image erase /home/worker/progs/stm32/STM32F4_Discovery_MP3/build/stm32f4_discovery_mp3.hex;shutdown"