Table of Contents

OpenOCD

OpenOCD with a J-Link clone

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

Build from source enabling every supported interface type.

Dependencies

Install prerequisites.

apt install build-essential git automake libtool libhidapi-dev libcapstone-dev libusb-1.0-0-dev libjaylink-dev libgpiod-dev libftdi-dev pkg-config
Dev

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 --prefix=/usr/local --enable-ftdi --enable-sysfsgpio --enable-bcm2835gpio --enable-picoprobe --enable-jlink --enable-ft232r --enable-cmsis-dap --enable-cmsis-dap-v2 --enable-dummy --with-capstone --enable-openjtag --enable-aice --enable-presto --enable-usb-blaster
make -j 4
make install

STMicroelectronics and RPi provide modified versions of OpenOCD for their processors

STM

Install into /opt

mkdir -p /opt/src
cd /opt/src
git clone https://github.com/STMicroelectronics/OpenOCD openocd.stm
cd openocd.stm
./bootstrap
./configure --prefix=/opt/openocd.stm --enable-ftdi --enable-sysfsgpio --enable-bcm2835gpio --enable-picoprobe --enable-jlink --enable-ft232r --enable-cmsis-dap --enable-cmsis-dap-v2 --enable-dummy --with-capstone --enable-openjtag --enable-aice --enable-presto --enable-usb-blaster
make -j 4
make install
RPi

Install into /opt

mkdir -p /opt/src
cd /opt/src
git clone https://github.com/raspberrypi/openocd openocd.rpi
cd openocd.rpi
./bootstrap
./configure --prefix=/opt/openocd.rpi --enable-ftdi --enable-sysfsgpio --enable-bcm2835gpio --enable-picoprobe --enable-jlink --enable-ft232r --enable-cmsis-dap --enable-cmsis-dap-v2 --enable-dummy --with-capstone --enable-openjtag --enable-aice --enable-presto --enable-usb-blaster
make -j 4
make install
Test
/opt/openocd.rpi/bin/openocd -f "interface/cmsis-dap.cfg" -f "target/rp2350.cfg" -c "adapter speed 4000"
Open On-Chip Debugger 0.12.0+dev-gebec9504d (2024-10-17-18:47)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : Hardware thread awareness created
Info : Hardware thread awareness created
Info : Hardware thread awareness created
Info : Hardware thread awareness created
cortex_m reset_config sysresetreq
adapter speed: 4000 kHz
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : Using CMSIS-DAPv2 interface with VID:PID=0x2e8a:0x000c, serial=1C789DE3E289C250
Info : CMSIS-DAP: SWD supported
Info : CMSIS-DAP: Atomic commands supported
Info : CMSIS-DAP: Test domain timer supported
Info : CMSIS-DAP: FW Version = 2.0.0
Info : CMSIS-DAP: Interface Initialised (SWD)
Info : SWCLK/TCK = 0 SWDIO/TMS = 0 TDI = 0 TDO = 0 nTRST = 0 nRESET = 0
Info : CMSIS-DAP: Interface ready
Info : clock speed 4000 kHz
Info : SWD DPIDR 0x4c013477
Info : [rp2350.dap.core0] Cortex-M33 r1p0 processor detected
Info : [rp2350.dap.core0] target has 8 breakpoints, 4 watchpoints
Info : [rp2350.dap.core0] Examination succeed
Info : [rp2350.dap.core1] Cortex-M33 r1p0 processor detected
Info : [rp2350.dap.core1] target has 8 breakpoints, 4 watchpoints
Info : [rp2350.dap.core1] Examination succeed
Info : starting gdb server for rp2350.dap.core0 on 3333
Info : Listening on port 3333 for gdb connections
Update
make distclean
git pull --recurse-submodules
...
Windows

Release overview is here or download.

Resources

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies