greg@Gregs-MBP-2 rb_test % brew install open-ocd --HEAD ==> Cloning https://github.com/ntfreak/openocd.git Updating /Users/greg/Library/Caches/Homebrew/open-ocd--git ==> Checking out branch master Already on 'master' Your branch is up to date with 'origin/master'. HEAD is now at d27d66bc1 Document how vector registers are exposed to gdb. Entering 'jimtcl' Entering 'src/jtag/drivers/libjaylink' Entering 'tools/git2cl' /Users/greg/Library/Caches/Homebrew/open-ocd--git/jimtcl /Users/greg/Library/Caches/Homebrew/open-ocd--git/src/jtag/drivers/libjaylink /Users/greg/Library/Caches/Homebrew/open-ocd--git/tools/git2cl ==> ./bootstrap nosubmodule ==> ./configure --prefix=/usr/local/Cellar/open-ocd/HEAD-d27d66b --enable-buspirate --enable-stlink - ==> make install 🍺 /usr/local/Cellar/open-ocd/HEAD-d27d66b: 842 files, 4.9MB, built in 2 minutes 14 seconds ==> Running `brew cleanup open-ocd`... Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP. Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`). greg@Gregs-MBP-2 rb_test % openocd --version Open On-Chip Debugger 0.11.0+dev-00550-gd27d66bc1 (2022-01-01-19:19) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html greg@Gregs-MBP-2 rb_test % openocd -d3 -s /Users/greg/.platformio/packages/tool-openocd/scripts -f interface/cmsis-dap.cfg -f target/nrf52.cfg -c "program {.pio/build/redbear_blenano2/firmware.hex} verify reset; shutdown;" Open On-Chip Debugger 0.11.0+dev-00550-gd27d66bc1 (2022-01-01-19:19) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html User : 3 3 options.c:63 configuration_output_handler(): debug_level: 3 User : 4 3 options.c:63 configuration_output_handler(): Debug: 5 3 configuration.c:44 add_script_search_dir(): adding /Users/greg/.platformio/packages/tool-openocd/scripts Debug: 6 3 options.c:244 add_default_dirs(): bindir=/usr/local/Cellar/open-ocd/HEAD-d27d66b/bin Debug: 7 3 options.c:245 add_default_dirs(): pkgdatadir=/usr/local/Cellar/open-ocd/HEAD-d27d66b/share/openocd Debug: 8 3 options.c:246 add_default_dirs(): exepath=/usr/local/Cellar/open-ocd/HEAD-d27d66b/bin Debug: 9 3 options.c:247 add_default_dirs(): bin2data=../share/openocd Debug: 10 3 configuration.c:44 add_script_search_dir(): adding /Users/greg/Library/Preferences/org.openocd Debug: 11 3 configuration.c:44 add_script_search_dir(): adding /Users/greg/.config/openocd Debug: 12 3 configuration.c:44 add_script_search_dir(): adding /Users/greg/.openocd Debug: 13 3 configuration.c:44 add_script_search_dir(): adding /usr/local/Cellar/open-ocd/HEAD-d27d66b/bin/../share/openocd/site Debug: 14 3 configuration.c:44 add_script_search_dir(): adding /usr/local/Cellar/open-ocd/HEAD-d27d66b/bin/../share/openocd/scripts Debug: 15 3 command.c:166 script_debug(): command - ocd_find interface/cmsis-dap.cfg Debug: 16 4 configuration.c:99 find_file(): found /Users/greg/.platformio/packages/tool-openocd/scripts/interface/cmsis-dap.cfg Debug: 17 7 command.c:166 script_debug(): command - adapter driver cmsis-dap Debug: 18 7 command.c:166 script_debug(): command - ocd_find target/nrf52.cfg Debug: 19 7 configuration.c:99 find_file(): found /Users/greg/.platformio/packages/tool-openocd/scripts/target/nrf52.cfg Debug: 20 8 command.c:166 script_debug(): command - ocd_find target/swj-dp.tcl Debug: 21 9 configuration.c:99 find_file(): found /Users/greg/.platformio/packages/tool-openocd/scripts/target/swj-dp.tcl Debug: 22 10 command.c:166 script_debug(): command - transport select Info : 23 10 transport.c:277 jim_transport_select(): auto-selecting first available session transport "swd". To override use 'transport select '. Debug: 24 10 command.c:166 script_debug(): command - transport select Debug: 25 10 command.c:166 script_debug(): command - expr [ string first "jtag" $_TRANSPORT ] != -1 Debug: 26 10 command.c:166 script_debug(): command - transport select Debug: 27 10 command.c:166 script_debug(): command - expr [ string first "swd" $_TRANSPORT ] != -1 Debug: 28 10 command.c:166 script_debug(): command - swd newdap nrf52 cpu -expected-id 0x2ba01477 Debug: 29 10 tcl.c:567 jim_newtap_cmd(): Creating New Tap, Chip: nrf52, Tap: cpu, Dotted: nrf52.cpu, 2 params Debug: 30 10 core.c:1472 jtag_tap_init(): Created Tap: nrf52.cpu @ abs position 0, irlen 0, capture: 0x0 mask: 0x0 Debug: 31 10 command.c:166 script_debug(): command - dap create nrf52.dap -chain-position nrf52.cpu Debug: 32 10 command.c:166 script_debug(): command - target create nrf52.cpu cortex_m -dap nrf52.dap Debug: 33 11 command.c:300 register_command(): command 'tpiu' is already registered Debug: 34 11 command.c:300 register_command(): command 'rtt' is already registered Debug: 35 11 command.c:166 script_debug(): command - adapter speed 1000 Debug: 36 11 adapter.c:180 adapter_config_khz(): handle adapter khz Debug: 37 11 adapter.c:144 adapter_khz_to_speed(): convert khz to adapter specific speed value Debug: 38 11 adapter.c:144 adapter_khz_to_speed(): convert khz to adapter specific speed value Debug: 39 11 command.c:166 script_debug(): command - nrf52.cpu configure -work-area-phys 0x20000000 -work-area-size 0x4000 -work-area-backup 0 Debug: 40 11 target.c:2193 target_free_all_working_areas_restore(): freeing all working areas Debug: 41 11 target.c:2193 target_free_all_working_areas_restore(): freeing all working areas Debug: 42 11 target.c:2193 target_free_all_working_areas_restore(): freeing all working areas Debug: 43 11 command.c:166 script_debug(): command - transport select Debug: 44 11 command.c:166 script_debug(): command - expr [ string first "hla" $_TRANSPORT ] != -1 Debug: 45 11 command.c:166 script_debug(): command - cortex_m reset_config sysresetreq Debug: 46 11 command.c:166 script_debug(): command - nrf52.cpu configure -event examine-fail nrf52_check_ap_lock Debug: 47 11 command.c:166 script_debug(): command - flash bank nrf52.flash nrf5 0x00000000 0 1 1 nrf52.cpu Debug: 48 11 tcl.c:1316 handle_flash_bank_command(): 'nrf5' driver usage field missing Debug: 49 11 command.c:166 script_debug(): command - flash bank nrf52.uicr nrf5 0x10001000 0 1 1 nrf52.cpu Debug: 50 11 command.c:300 register_command(): command 'nrf5' is already registered Debug: 51 11 command.c:300 register_command(): command 'nrf5 mass_erase' is already registered Debug: 52 11 command.c:300 register_command(): command 'nrf5 info' is already registered Debug: 53 11 command.c:300 register_command(): command 'nrf51' is already registered Debug: 54 11 command.c:300 register_command(): command 'nrf51 mass_erase' is already registered Debug: 55 11 command.c:300 register_command(): command 'nrf51 info' is already registered Debug: 56 11 tcl.c:1316 handle_flash_bank_command(): 'nrf5' driver usage field missing Debug: 57 11 command.c:166 script_debug(): command - add_help_text nrf52_recover Mass erase and unlock nRF52 device Debug: 58 11 command.c:166 script_debug(): command - init Debug: 59 12 command.c:166 script_debug(): command - target init Debug: 60 12 command.c:166 script_debug(): command - target names Debug: 61 12 command.c:166 script_debug(): command - nrf52.cpu cget -event gdb-flash-erase-start Debug: 62 12 command.c:166 script_debug(): command - nrf52.cpu configure -event gdb-flash-erase-start reset init Debug: 63 12 command.c:166 script_debug(): command - nrf52.cpu cget -event gdb-flash-write-end Debug: 64 12 command.c:166 script_debug(): command - nrf52.cpu configure -event gdb-flash-write-end reset halt Debug: 65 12 command.c:166 script_debug(): command - nrf52.cpu cget -event gdb-attach Debug: 66 12 command.c:166 script_debug(): command - nrf52.cpu configure -event gdb-attach halt 1000 Debug: 67 12 target.c:1650 handle_target_init_command(): Initializing targets... Debug: 68 12 semihosting_common.c:99 semihosting_common_init():