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
Download
mkdir -p /opt/src cd /opt/src git clone --recursive https://git.code.sf.net/p/openocd/code openocd cd openocd ./bootstrap
RPi
./configure --prefix=/usr/local --enable-cmsis-dap --enable-cmsis-dap-v2 --enable-internal-jimtcl --enable-bcm2835gpio
IBM PC
./configure --prefix=/usr/local --enable-cmsis-dap --enable-cmsis-dap-v2 --enable-internal-jimtcl
Install
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 setenv CFLAGS "-Wno-error=calloc-transposed-args" ./configure --prefix=/opt/openocd.stm --enable-cmsis-dap --enable-cmsis-dap-v2 --disable-linuxgpiod 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 setenv CFLAGS "-Wno-error=calloc-transposed-args" ./configure --prefix=/opt/openocd.rpi --enable-cmsis-dap --enable-cmsis-dap-v2 --disable-linuxgpiod 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 ...



