This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

LAUNCHXL-CC1350: VSCode debug with OpenOCD (Official TI Extension) not working on CC2640R2 through CC1350 Launchpad

Part Number: LAUNCHXL-CC1350
Other Parts Discussed in Thread: CC1350, CC2640R2L, CC2640R2F, CC2640

Tool/software:

Hello, I am in the proccess of migrating all of the work my company had on code composer studio 11 to VScode, as CCS 20 feels quite slow and doesn't have Github Copilot at the moment. I've been able to create commands to build and flash on terminal with the CCS CLI succesfully. But I can't get to debug using the official TI Extension. 

We currently use CC2640R2 microcontrollers on our PCBs and we have always program/debug them through any version of CCS or Flash programmer using a CC1350 Launchpad as an interface. The Launchpad has all jumpers removed except the one where it says XDS110 power  which is connecting to the upper pin where Vsense is written, and has cables going from GND, 3,3V, RX, TX, RESET, TMS and TMC directly into our PCBs. We have never used TDI or TDO and we can Debug on CCS like this.

In my vscode launch configuration I have:

         {
            "cwd": "C:\\Users\\ivan.moreno\\Desktop\\Ivan\\Repos\\fw-gasmeter_gm\\GASMETER-FW\\simple_peripheral_cc2640r2lp_app\\FlashROM_StackLibrary_LORA",
            "executable": "simple_peripheral_cc2640r2lp_app.out",
            "name": "Debug CC2640R2L (LORA)",
            "request": "launch",
            "type": "cortex-debug",
            "servertype": "openocd",
            "configFiles": [
                "interface\\xds110.cfg",
                "board\\ti_cc13x0_launchpad.cfg"
            ],
            "searchDir": [
                "C:\\Users\\ivan.moreno\\AppData\\Local\\Texas Instruments\\ti-embedded-debug\\openocd\\20250414\\share\\openocd\\scripts"
            ],
            "runToEntryPoint": "main",
            "showDevDebugOutput": "raw",
            "deviceName": "CC2640R2F",
            "openOCDLaunchCommands": [
                "adapter_khz 2000"
            ]
        }
All directories seem correct and config files are being found correctly as terminal info says:
Open On-Chip Debugger 0.12.0+dev-gae70877b5-dirty (2025-01-31-10:10)
Licensed under GNU GPL v2
For bug reports, read
openocd.org/.../bugs.html
CDLiveWatchSetup
jtag
Warn : Interface already configured, ignoring
Warn : Transport "jtag" was already selected
Warn : Transport "jtag" was already selected
cortex_m reset_config vectreset
DEPRECATED! use 'adapter speed' not 'adapter_khz'
adapter speed: 1500 kHz
Info : Listening on port 50001 for tcl connections
Info : Listening on port 50002 for telnet connections
Info : XDS110: connected
Info : XDS110: vid/pid = 0451/bef3
Info : XDS110: firmware version = 3.0.0.38
Info : XDS110: hardware version = 0x002b
Info : XDS110: connected to target via JTAG
Info : XDS110: TCK set to 2500 kHz
Info : clock speed 1500 kHz
Error: JTAG scan chain interrogation failed: all zeroes
Error: Check JTAG interface, timings, target power, etc.
Error: Trying to use configured scan chain anyway...
Error: cc13x0.jrc: IR capture error; saw 0x00 not 0x01
Warn : Bypassing JTAG setup events due to errors
Info : starting gdb server for cc13x0.cpu on 50000
Info : Listening on port 50000 for gdb connections
Info : accepting 'gdb' connection on tcp/50000
Error: Target not examined yet
Error executing event gdb-attach on target cc13x0.cpu:
Error: Target not examined yet
Error: auto_probe failed
Error: Connect failed. Consider setting up a gdb-attach event for the target to prepare target for GDB connect, or use 'gdb_memory_map disable'.
Error: attempted 'gdb' connection rejected 
The TI extension documentation doesn't specify which .cfg files I should include, there is only one example that has the interface/xds110.cfg and board/<config_filename>.cfg files. No doubt about including the XDS110, but my setup has a cc1350 launchpad and a cc2640. So I've tried adding every possible combination adding the target/ti_cc26x0.cfg file or even the board/ti_cc26x0_launchpad.cfg file too, with even less succes (it sometimes fails earlier than with just the ones I specified before).
Also I'm pretty sure this is not a problem yet but I'm not sure what I should write as deviceName as there is no list anywhere with the exact syntax, right now I have CC2640R2F written down.
I hope someone can clarify what I'm doing wrong or even if this is possible at all. I've never used openocd or explored too much into debug options anywhere so I'm probably missing something very obvious.
  • Hi !

    The documentation about how to use the VSCode extension will be released in a SimpleLink Academy training soon, but is not yet published. I can confirm you that the deviceName field is not necessary and does not have a specific syntax, it is only for debugging purposes.

    Using the XDS110 of a launchpad to debug another chip is something that I don't think we have tried, but in theory it should work. In this case, the correct files to include in configFiles should be "interface\\xds110.cfg" and "board\\ti_cc26x0_launchpad.cfg". Could you add the "serverArgs": ["-d3"] field to your launch configuration, try to restart the debug session and see if this works ? If not, could you share to me the error logs you have in both the Debug Console tab and the Terminal tab of VSCode ?

    Kind regards,
    Maxence

  • Thank you for the fast response! This is the full log with "interface\\xds110.cfg","board\\ti_cc26x0_launchpad.cfg" and "serverArgs": ["-d3"].

    Terminal:

    [2025-07-22T10:32:21.666Z] SERVER CONSOLE DEBUG: onBackendConnect: gdb-server session connected. You can switch to "DEBUG CONSOLE" to see GDB interactions.
    "C:\\Users\\ivan.moreno\\Appdata\\Local\\Texas Instruments\\ti-embedded-debug\\openocd\\20250414\\bin\\openocd.exe" -c "gdb_port 50000" -c "tcl_port 50001" -c "telnet_port 50002" -s "C:\\Users\\ivan.moreno\\AppData\\Local\\Texas Instruments\\ti-embedded-debug\\openocd\\20250414\\share\\openocd\\scripts" -f "c:/Users/ivan.moreno/.vscode/extensions/marus25.cortex-debug-1.12.1/support/openocd-helpers.tcl" -f "interface\\xds110.cfg" -f "board\\ti_cc26x0_launchpad.cfg" -d3 -c "adapter_khz 2000"
    Open On-Chip Debugger 0.12.0+dev-gae70877b5-dirty (2025-01-31-10:10)
    Licensed under GNU GPL v2
    For bug reports, read
    openocd.org/.../bugs.html
    User : 3 6 options.c:52 configuration_output_handler(): debug_level: 3User : 4 6 options.c:52 configuration_output_handler():
    Debug: 5 7 options.c:346 parse_cmdline_args(): ARGV[0] = "C:\Users\ivan.moreno\Appdata\Local\Texas Instruments\ti-embedded-debug\openocd\20250414\bin\openocd.exe"
    Debug: 6 8 options.c:346 parse_cmdline_args(): ARGV[1] = "-c"
    Debug: 7 8 options.c:346 parse_cmdline_args(): ARGV[2] = "gdb_port 50000"
    Debug: 8 8 options.c:346 parse_cmdline_args(): ARGV[3] = "-c"
    Debug: 9 9 options.c:346 parse_cmdline_args(): ARGV[4] = "tcl_port 50001"
    Debug: 10 9 options.c:346 parse_cmdline_args(): ARGV[5] = "-c"
    Debug: 11 10 options.c:346 parse_cmdline_args(): ARGV[6] = "telnet_port 50002"
    Debug: 12 10 options.c:346 parse_cmdline_args(): ARGV[7] = "-s"
    Debug: 13 10 options.c:346 parse_cmdline_args(): ARGV[8] = "C:\Users\ivan.moreno\AppData\Local\Texas Instruments\ti-embedded-debug\openocd\20250414\share\openocd\scripts"
    Debug: 14 12 options.c:346 parse_cmdline_args(): ARGV[9] = "-f"
    Debug: 15 12 options.c:346 parse_cmdline_args(): ARGV[10] = "c:/Users/ivan.moreno/.vscode/extensions/marus25.cortex-debug-1.12.1/support/openocd-helpers.tcl"
    Debug: 16 14 options.c:346 parse_cmdline_args(): ARGV[11] = "-f"
    Debug: 17 15 options.c:346 parse_cmdline_args(): ARGV[12] = "interface\xds110.cfg"
    Debug: 18 16 options.c:346 parse_cmdline_args(): ARGV[13] = "-f"
    Debug: 19 18 options.c:346 parse_cmdline_args(): ARGV[14] = "board\ti_cc26x0_launchpad.cfg"
    Debug: 20 19 options.c:346 parse_cmdline_args(): ARGV[15] = "-d3"
    Debug: 21 19 options.c:346 parse_cmdline_args(): ARGV[16] = "-c"
    Debug: 22 20 options.c:346 parse_cmdline_args(): ARGV[17] = "adapter_khz 2000"
    Debug: 23 20 options.c:233 add_default_dirs(): bindir=C:/Jenkins/workspace/local_views/openocd/openocd-tools/build/win/msys64/mingw64/bin
    Debug: 24 21 options.c:234 add_default_dirs(): pkgdatadir=C:/Jenkins/workspace/local_views/openocd/openocd-tools/build/win/msys64/mingw64/share/openocd
    Debug: 25 22 options.c:235 add_default_dirs(): exepath=C:/Users/ivan.moreno/Appdata/Local/Texas Instruments/ti-embedded-debug/openocd/20250414/bin
    Debug: 26 23 options.c:236 add_default_dirs(): bin2data=../share/openocd
    Debug: 27 24 configuration.c:33 add_script_search_dir(): adding C:/Users/ivan.moreno/AppData/Roaming/OpenOCD
    Debug: 28 25 configuration.c:33 add_script_search_dir(): adding C:/Users/ivan.moreno/Appdata/Local/Texas Instruments/ti-embedded-debug/openocd/20250414/bin/../share/openocd/site
    Debug: 29 25 configuration.c:33 add_script_search_dir(): adding C:/Users/ivan.moreno/Appdata/Local/Texas Instruments/ti-embedded-debug/openocd/20250414/bin/../share/openocd/scripts
    Debug: 30 26 command.c:153 script_debug(): command - gdb_port 50000
    Debug: 31 27 command.c:153 script_debug(): command - tcl_port 50001
    Debug: 32 27 command.c:153 script_debug(): command - telnet_port 50002
    Debug: 33 28 command.c:153 script_debug(): command - ocd_find c:/Users/ivan.moreno/.vscode/extensions/marus25.cortex-debug-1.12.1/support/openocd-helpers.tcl
    Debug: 34 30 configuration.c:88 find_file(): found c:/Users/ivan.moreno/.vscode/extensions/marus25.cortex-debug-1.12.1/support/openocd-helpers.tcl
    User : 35 40 options.c:52 configuration_output_handler(): CDLiveWatchSetupUser : 36 41 options.c:52 configuration_output_handler():
    Debug: 37 41 command.c:153 script_debug(): command - ocd_find interface\xds110.cfg
    Debug: 38 42 configuration.c:88 find_file(): found C:\Users\ivan.moreno\AppData\Local\Texas Instruments\ti-embedded-debug\openocd\20250414\share\openocd\scripts/interface\xds110.cfg
    Debug: 39 44 command.c:153 script_debug(): command - adapter driver xds110
    Debug: 40 45 command.c:153 script_debug(): command - transport select jtag
    User : 41 45 options.c:52 configuration_output_handler(): jtagUser : 42 45 options.c:52 configuration_output_handler():
    Debug: 43 46 command.c:153 script_debug(): command - ocd_find board\ti_cc26x0_launchpad.cfg
    Debug: 44 48 configuration.c:88 find_file(): found C:\Users\ivan.moreno\AppData\Local\Texas Instruments\ti-embedded-debug\openocd\20250414\share\openocd\scripts/board\ti_cc26x0_launchpad.cfg
    Debug: 45 51 command.c:153 script_debug(): command - ocd_find interface/xds110.cfg
    Debug: 46 52 configuration.c:88 find_file(): found C:\Users\ivan.moreno\AppData\Local\Texas Instruments\ti-embedded-debug\openocd\20250414\share\openocd\scripts/interface/xds110.cfg
    Debug: 47 54 command.c:153 script_debug(): command - adapter driver xds110
    Warn : 48 54 adapter.c:431 handle_adapter_driver_command(): Interface already configured, ignoring
    Debug: 49 55 command.c:153 script_debug(): command - transport select jtag
    Warn : 50 55 transport.c:280 handle_transport_select(): Transport "jtag" was already selected
    Debug: 51 56 command.c:153 script_debug(): command - adapter speed 5500
    Debug: 52 56 adapter.c:250 adapter_config_khz(): handle adapter khz
    Debug: 53 56 adapter.c:214 adapter_khz_to_speed(): convert khz to adapter specific speed value
    Debug: 54 57 adapter.c:214 adapter_khz_to_speed(): convert khz to adapter specific speed value
    Debug: 55 57 command.c:153 script_debug(): command - transport select jtag
    Warn : 56 58 transport.c:280 handle_transport_select(): Transport "jtag" was already selected
    Debug: 57 58 command.c:153 script_debug(): command - ocd_find target/ti_cc26x0.cfg
    Debug: 58 60 configuration.c:88 find_file(): found C:\Users\ivan.moreno\AppData\Local\Texas Instruments\ti-embedded-debug\openocd\20250414\share\openocd\scripts/target/ti_cc26x0.cfg
    Debug: 59 61 command.c:153 script_debug(): command - ocd_find target/icepick.cfg
    Debug: 60 63 configuration.c:88 find_file(): found C:\Users\ivan.moreno\AppData\Local\Texas Instruments\ti-embedded-debug\openocd\20250414\share\openocd\scripts/target/icepick.cfg
    Debug: 61 65 command.c:153 script_debug(): command - ocd_find target/ti-cjtag.cfg
    Debug: 62 67 configuration.c:88 find_file(): found C:\Users\ivan.moreno\AppData\Local\Texas Instruments\ti-embedded-debug\openocd\20250414\share\openocd\scripts/target/ti-cjtag.cfg
    Debug: 63 69 command.c:153 script_debug(): command - jtag newtap cc26x0 cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id 0x4BA00477 -disable
    Debug: 64 70 tcl.c:401 handle_jtag_newtap_args(): Creating New Tap, Chip: cc26x0, Tap: cpu, Dotted: cc26x0.cpu, 9 params
    Debug: 65 70 core.c:1474 jtag_tap_init(): Created Tap: cc26x0.cpu @ abs position 0, irlen 4, capture: 0x1 mask: 0xf
    Debug: 66 71 command.c:153 script_debug(): command - jtag configure cc26x0.cpu -event tap-enable icepick_c_tapenable cc26x0.jrc 0
    Debug: 67 71 command.c:153 script_debug(): command - jtag newtap cc26x0 jrc -irlen 6 -ircapture 0x1 -irmask 0x3f -expected-id 0x0B99A02F -ignore-version
    Debug: 68 72 tcl.c:401 handle_jtag_newtap_args(): Creating New Tap, Chip: cc26x0, Tap: jrc, Dotted: cc26x0.jrc, 9 params
    Debug: 69 73 core.c:1474 jtag_tap_init(): Created Tap: cc26x0.jrc @ abs position 1, irlen 6, capture: 0x1 mask: 0x3f
    Debug: 70 73 command.c:153 script_debug(): command - jtag configure cc26x0.jrc -event setup jtag tapenable cc26x0.cpu
    Debug: 71 74 command.c:153 script_debug(): command - jtag configure cc26x0.jrc -event post-reset ti_cjtag_to_4pin_jtag cc26x0.jrc
    Debug: 72 75 command.c:153 script_debug(): command - dap create cc26x0.dap -chain-position cc26x0.cpu
    Debug: 73 75 command.c:153 script_debug(): command - target create cc26x0.cpu cortex_m -dap cc26x0.dap
    Debug: 74 76 command.c:259 register_command(): command 'tpiu' is already registered
    Debug: 75 77 command.c:259 register_command(): command 'rtt' is already registered
    Debug: 76 78 command.c:153 script_debug(): command - cc26x0.cpu configure -work-area-phys 0x20000000 -work-area-size 0x4000 -work-area-backup 0
    Debug: 77 78 target.c:2130 target_free_all_working_areas_restore(): freeing all working areas
    Debug: 78 79 target.c:2130 target_free_all_working_areas_restore(): freeing all working areas
    Debug: 79 80 target.c:2130 target_free_all_working_areas_restore(): freeing all working areas
    Debug: 80 80 command.c:153 script_debug(): command - flash bank cc26x0.flash cc26xx 0 0 0 0 cc26x0.cpu
    Debug: 81 81 tcl.c:1306 handle_flash_bank_command(): 'cc26xx' driver usage field missing
    Debug: 82 82 command.c:153 script_debug(): command - cortex_m reset_config vectreset
    User : 83 83 options.c:52 configuration_output_handler(): cortex_m reset_config vectresetUser : 84 83 options.c:52 configuration_output_handler():
    Debug: 85 84 command.c:153 script_debug(): command - echo DEPRECATED! use 'adapter speed' not 'adapter_khz'
    User : 86 84 command.c:678 handle_echo(): DEPRECATED! use 'adapter speed' not 'adapter_khz'
    Debug: 87 85 command.c:153 script_debug(): command - adapter speed 2000
    Debug: 88 85 adapter.c:250 adapter_config_khz(): handle adapter khz
    Debug: 89 86 adapter.c:214 adapter_khz_to_speed(): convert khz to adapter specific speed value
    Debug: 90 86 adapter.c:214 adapter_khz_to_speed(): convert khz to adapter specific speed value
    User : 91 87 options.c:52 configuration_output_handler(): adapter speed: 2000 kHzUser : 92 87 options.c:52 configuration_output_handler():
    Info : 93 91 server.c:298 add_service(): Listening on port 50001 for tcl connections
    Info : 94 92 server.c:298 add_service(): Listening on port 50002 for telnet connections
    Debug: 95 93 command.c:153 script_debug(): command - init
    Debug: 96 93 command.c:153 script_debug(): command - target init
    Debug: 97 94 command.c:153 script_debug(): command - target names
    Debug: 98 94 command.c:153 script_debug(): command - cc26x0.cpu cget -event gdb-flash-erase-start
    Debug: 99 95 command.c:153 script_debug(): command - cc26x0.cpu configure -event gdb-flash-erase-start reset init
    Debug: 100 96 command.c:153 script_debug(): command - cc26x0.cpu cget -event gdb-flash-write-end
    Debug: 101 97 command.c:153 script_debug(): command - cc26x0.cpu configure -event gdb-flash-write-end reset halt
    Debug: 102 99 command.c:153 script_debug(): command - cc26x0.cpu cget -event gdb-attach
    Debug: 103 99 command.c:153 script_debug(): command - cc26x0.cpu configure -event gdb-attach halt 1000
    Debug: 104 100 target.c:1588 handle_target_init_command(): Initializing targets...
    Debug: 105 101 semihosting_common.c:107 semihosting_common_init():
    Info : 106 175 xds110.c:455 usb_connect(): XDS110: connected
    Debug: 107 277 xds110.c:668 xds_execute(): XDS110: XDS_CONNECT - Success
    Debug: 108 285 xds110.c:668 xds_execute(): XDS110: XDS_VERSION - Success
    Debug: 109 293 xds110.c:668 xds_execute(): XDS110: XDS_SET_TRST - Success
    Debug: 110 300 xds110.c:668 xds_execute(): XDS110: XDS_CYCLE_TCK - Success
    Debug: 111 305 xds110.c:668 xds_execute(): XDS110: XDS_SET_TRST - Success
    Debug: 112 311 xds110.c:668 xds_execute(): XDS110: XDS_CYCLE_TCK - Success
    Debug: 113 315 xds110.c:668 xds_execute(): XDS110: CJTAG_CONNECT - Success
    Info : 114 316 xds110.c:1429 xds110_show_info(): XDS110: vid/pid = 0451/bef3
    Info : 115 316 xds110.c:1430 xds110_show_info(): XDS110: firmware version = 3.0.0.38
    Info : 116 317 xds110.c:1435 xds110_show_info(): XDS110: hardware version = 0x002b
    Info : 117 317 xds110.c:1442 xds110_show_info(): XDS110: connected to target via JTAG
    Info : 118 318 xds110.c:1443 xds110_show_info(): XDS110: TCK set to 2500 kHz
    Debug: 119 319 adapter.c:214 adapter_khz_to_speed(): convert khz to adapter specific speed value
    Debug: 120 320 adapter.c:218 adapter_khz_to_speed(): have adapter set up
    Debug: 121 331 xds110.c:668 xds_execute(): XDS110: XDS_SET_TCK - Success
    Debug: 122 332 adapter.c:214 adapter_khz_to_speed(): convert khz to adapter specific speed value
    Debug: 123 334 adapter.c:218 adapter_khz_to_speed(): have adapter set up
    Info : 124 334 adapter.c:178 adapter_init(): clock speed 2000 kHz
    Debug: 125 335 openocd.c:133 handle_init_command(): Debug Adapter init complete
    Debug: 126 335 command.c:153 script_debug(): command - transport init
    Debug: 127 336 transport.c:219 handle_transport_init(): handle_transport_init
    Debug: 128 344 xds110.c:668 xds_execute(): XDS110: XDS_SET_TRST - Success
    Debug: 129 354 xds110.c:668 xds_execute(): XDS110: XDS_SET_SRST - Success
    Debug: 130 407 xds110.c:668 xds_execute(): XDS110: XDS_CYCLE_TCK - Success
    Debug: 131 408 core.c:830 jtag_add_reset(): SRST line released
    Debug: 132 408 core.c:855 jtag_add_reset(): TRST line released
    Debug: 133 409 core.c:328 jtag_call_event_callbacks(): jtag event: TAP reset
    Debug: 134 409 tcl.c:543 jtag_tap_handle_event(): JTAG tap: cc26x0.jrc event: 0 (post-reset)
    action: ti_cjtag_to_4pin_jtag cc26x0.jrc
    Debug: 135 411 command.c:153 script_debug(): command - runtest 20
    Debug: 136 415 xds110.c:668 xds_execute(): XDS110: OCD_SCAN_REQUEST - Success
    Debug: 137 416 command.c:153 script_debug(): command - irscan cc26x0.jrc 0x3f -endstate RUN/IDLE
    Debug: 138 421 xds110.c:668 xds_execute(): XDS110: OCD_SCAN_REQUEST - Success
    Debug: 139 422 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 140 424 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 141 424 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRUPDATE RUN/IDLE
    Debug: 142 425 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 143 426 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 144 427 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 145 427 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRUPDATE RUN/IDLE
    Debug: 146 428 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 147 428 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 148 430 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 149 430 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DREXIT1 DRUPDATE RUN/IDLE
    Debug: 150 432 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 151 433 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 152 434 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 153 434 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRUPDATE RUN/IDLE
    Debug: 154 435 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 155 438 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 156 441 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 157 441 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
    Debug: 158 443 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 159 444 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
    Debug: 160 445 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 161 446 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
    Debug: 162 448 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 163 448 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
    Debug: 164 450 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 165 450 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DREXIT1 DRPAUSE
    Debug: 166 451 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 167 452 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRUPDATE RUN/IDLE
    Debug: 168 453 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 169 454 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 170 456 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 171 457 command.c:153 script_debug(): command - irscan cc26x0.jrc 0x3f -endstate RUN/IDLE
    Debug: 172 459 xds110.c:668 xds_execute(): XDS110: OCD_SCAN_REQUEST - Success
    Debug: 173 460 command.c:153 script_debug(): command - irscan cc26x0.jrc 0x04 -endstate RUN/IDLE
    Debug: 174 465 xds110.c:668 xds_execute(): XDS110: OCD_SCAN_REQUEST - Success
    Debug: 175 465 command.c:153 script_debug(): command - jtag arp_init
    Debug: 176 466 core.c:1509 jtag_init_inner(): Init JTAG chain
    Debug: 177 466 core.c:328 jtag_call_event_callbacks(): jtag event: TAP reset
    Debug: 178 467 tcl.c:543 jtag_tap_handle_event(): JTAG tap: cc26x0.jrc event: 0 (post-reset)
    action: ti_cjtag_to_4pin_jtag cc26x0.jrc
    Debug: 179 468 command.c:153 script_debug(): command - runtest 20
    Debug: 180 469 xds110.c:668 xds_execute(): XDS110: XDS_GOTO_STATE - Success
    Debug: 181 471 xds110.c:668 xds_execute(): XDS110: OCD_SCAN_REQUEST - Success
    Debug: 182 471 command.c:153 script_debug(): command - irscan cc26x0.jrc 0x3f -endstate RUN/IDLE
    Debug: 183 474 xds110.c:668 xds_execute(): XDS110: OCD_SCAN_REQUEST - Success
    Debug: 184 475 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 185 476 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 186 477 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRUPDATE RUN/IDLE
    Debug: 187 481 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 188 482 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 189 486 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 190 487 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRUPDATE RUN/IDLE
    Debug: 191 488 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 192 489 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 193 490 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 194 491 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DREXIT1 DRUPDATE RUN/IDLE
    Debug: 195 492 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 196 492 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 197 494 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 198 494 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRUPDATE RUN/IDLE
    Debug: 199 496 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 200 496 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 201 498 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 202 499 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
    Debug: 203 500 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 204 500 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
    Debug: 205 502 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 206 502 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
    Debug: 207 504 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 208 504 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
    Debug: 209 505 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 210 506 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DREXIT1 DRPAUSE
    Debug: 211 507 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 212 508 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRUPDATE RUN/IDLE
    Debug: 213 509 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 214 509 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 215 510 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 216 510 command.c:153 script_debug(): command - irscan cc26x0.jrc 0x3f -endstate RUN/IDLE
    Debug: 217 511 xds110.c:668 xds_execute(): XDS110: OCD_SCAN_REQUEST - Success
    Debug: 218 512 command.c:153 script_debug(): command - irscan cc26x0.jrc 0x04 -endstate RUN/IDLE
    Debug: 219 514 xds110.c:668 xds_execute(): XDS110: OCD_SCAN_REQUEST - Success
    Debug: 220 514 core.c:1234 jtag_examine_chain(): DR scan interrogation for IDCODE/BYPASS
    Debug: 221 515 core.c:328 jtag_call_event_callbacks(): jtag event: TAP reset
    Debug: 222 515 tcl.c:543 jtag_tap_handle_event(): JTAG tap: cc26x0.jrc event: 0 (post-reset)
    action: ti_cjtag_to_4pin_jtag cc26x0.jrc
    Debug: 223 516 command.c:153 script_debug(): command - runtest 20
    Debug: 224 517 xds110.c:668 xds_execute(): XDS110: OCD_SCAN_REQUEST - Success
    Debug: 225 518 xds110.c:668 xds_execute(): XDS110: XDS_GOTO_STATE - Success
    Debug: 226 519 xds110.c:668 xds_execute(): XDS110: OCD_SCAN_REQUEST - Success
    Debug: 227 520 command.c:153 script_debug(): command - irscan cc26x0.jrc 0x3f -endstate RUN/IDLE
    Debug: 228 521 xds110.c:668 xds_execute(): XDS110: OCD_SCAN_REQUEST - Success
    Debug: 229 521 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 230 523 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 231 524 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRUPDATE RUN/IDLE
    Debug: 232 526 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 233 526 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 234 527 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 235 528 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRUPDATE RUN/IDLE
    Debug: 236 528 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 237 529 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 238 531 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 239 532 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DREXIT1 DRUPDATE RUN/IDLE
    Debug: 240 533 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 241 533 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 242 534 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 243 535 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRUPDATE RUN/IDLE
    Debug: 244 536 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 245 536 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 246 537 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 247 538 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
    Debug: 248 539 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 249 539 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
    Debug: 250 540 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 251 540 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
    Debug: 252 541 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 253 542 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
    Debug: 254 543 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 255 543 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DREXIT1 DRPAUSE
    Debug: 256 544 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 257 544 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRUPDATE RUN/IDLE
    Debug: 258 545 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 259 546 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 260 547 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 261 548 command.c:153 script_debug(): command - irscan cc26x0.jrc 0x3f -endstate RUN/IDLE
    Debug: 262 549 xds110.c:668 xds_execute(): XDS110: OCD_SCAN_REQUEST - Success
    Debug: 263 550 command.c:153 script_debug(): command - irscan cc26x0.jrc 0x04 -endstate RUN/IDLE
    Debug: 264 551 xds110.c:668 xds_execute(): XDS110: OCD_SCAN_REQUEST - Success
    Error: 265 551 core.c:1122 jtag_examine_chain_check(): JTAG scan chain interrogation failed: all zeroes
    Error: 266 552 core.c:1124 jtag_examine_chain_check(): Check JTAG interface, timings, target power, etc.
    Error: 267 553 core.c:1554 jtag_init_inner(): Trying to use configured scan chain anyway...
    Debug: 268 553 core.c:1364 jtag_validate_ircapture(): IR capture validation scan
    Debug: 269 554 xds110.c:668 xds_execute(): XDS110: OCD_SCAN_REQUEST - Success
    Error: 270 554 core.c:1413 jtag_validate_ircapture(): cc26x0.jrc: IR capture error; saw 0x00 not 0x01
    Debug: 271 555 core.c:328 jtag_call_event_callbacks(): jtag event: TAP reset
    Debug: 272 555 tcl.c:543 jtag_tap_handle_event(): JTAG tap: cc26x0.jrc event: 0 (post-reset)
    action: ti_cjtag_to_4pin_jtag cc26x0.jrc
    Debug: 273 556 command.c:153 script_debug(): command - runtest 20
    Debug: 274 557 xds110.c:668 xds_execute(): XDS110: XDS_GOTO_STATE - Success
    Debug: 275 557 xds110.c:668 xds_execute(): XDS110: OCD_SCAN_REQUEST - Success
    Debug: 276 558 command.c:153 script_debug(): command - irscan cc26x0.jrc 0x3f -endstate RUN/IDLE
    Debug: 277 559 xds110.c:668 xds_execute(): XDS110: OCD_SCAN_REQUEST - Success
    Debug: 278 560 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 279 561 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 280 561 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRUPDATE RUN/IDLE
    Debug: 281 562 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 282 563 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 283 564 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 284 565 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRUPDATE RUN/IDLE
    Debug: 285 566 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 286 566 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 287 567 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 288 567 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DREXIT1 DRUPDATE RUN/IDLE
    Debug: 289 568 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 290 569 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 291 570 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 292 570 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRUPDATE RUN/IDLE
    Debug: 293 571 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 294 571 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 295 572 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 296 573 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
    Debug: 297 574 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 298 574 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
    Debug: 299 575 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 300 576 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
    Debug: 301 577 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 302 577 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DRSHIFT DREXIT1 DRPAUSE
    Debug: 303 578 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 304 578 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRSHIFT DREXIT1 DRPAUSE
    Debug: 305 580 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 306 580 command.c:153 script_debug(): command - pathmove DRPAUSE DREXIT2 DRUPDATE RUN/IDLE
    Debug: 307 581 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 308 582 command.c:153 script_debug(): command - pathmove RUN/IDLE DRSELECT DRCAPTURE DREXIT1 DRPAUSE
    Debug: 309 583 xds110.c:668 xds_execute(): XDS110: OCD_PATHMOVE - Success
    Debug: 310 583 command.c:153 script_debug(): command - irscan cc26x0.jrc 0x3f -endstate RUN/IDLE
    Debug: 311 584 xds110.c:668 xds_execute(): XDS110: OCD_SCAN_REQUEST - Success
    Debug: 312 584 command.c:153 script_debug(): command - irscan cc26x0.jrc 0x04 -endstate RUN/IDLE
    Debug: 313 585 xds110.c:668 xds_execute(): XDS110: OCD_SCAN_REQUEST - Success
    Warn : 314 585 core.c:1577 jtag_init_inner(): Bypassing JTAG setup events due to errors
    Debug: 315 586 command.c:153 script_debug(): command - dap init
    Debug: 316 586 arm_dap.c:96 dap_init_all(): Initializing all DAPs ...
    Debug: 317 587 openocd.c:150 handle_init_command(): Examining targets...
    Debug: 318 587 command.c:153 script_debug(): command - flash init
    Debug: 319 587 tcl.c:1363 handle_flash_init_command(): Initializing flash devices...
    Debug: 320 588 command.c:153 script_debug(): command - nand init
    Debug: 321 588 tcl.c:484 handle_nand_init_command(): Initializing NAND devices...
    Debug: 322 589 command.c:153 script_debug(): command - pld init
    Debug: 323 589 pld.c:337 handle_pld_init_command(): Initializing PLDs...
    Debug: 324 589 command.c:153 script_debug(): command - tpiu init
    Info : 325 590 gdb_server.c:3836 gdb_target_start(): starting gdb server for cc26x0.cpu on 50000
    Info : 326 590 server.c:298 add_service(): Listening on port 50000 for gdb connections
    Debug: 327 591 command.c:153 script_debug(): command - target names
    Debug: 328 591 command.c:153 script_debug(): command - target names
    Debug: 329 592 command.c:153 script_debug(): command - cc26x0.cpu cget -type
    Info : 330 7482 server.c:91 add_connection(): accepting 'gdb' connection on tcp/50000
    Debug: 331 7533 breakpoints.c:328 breakpoint_remove_all_internal(): [cc26x0.cpu] Delete all breakpoints
    Debug: 332 7534 breakpoints.c:646 watchpoint_clear_target(): Delete all watchpoints for target: cc26x0.cpu
    Debug: 333 7534 target.c:1774 target_call_event_callbacks(): target event 22 (gdb-attach) for core cc26x0.cpu
    Debug: 334 7535 target.c:4667 target_handle_event(): target: cc26x0.cpu (cortex_m) event: 22 (gdb-attach) action: halt 1000
    Debug: 335 7536 command.c:153 script_debug(): command - halt 1000
    Debug: 336 7536 target.c:3245 handle_halt_command(): -
    Error: 337 7536 target.c:512 target_halt(): Target not examined yet
    Debug: 338 7537 command.c:528 exec_command(): Command 'halt' failed with error code -4
    User : 339 7538 target.c:4694 target_handle_event(): Error executing event gdb-attach on target cc26x0.cpu:

    Error: 340 7538 target.c:2554 target_read_u32(): Target not examined yet
    Error: 341 7538 core.c:291 get_flash_bank_by_num(): auto_probe failed
    Error: 342 7539 gdb_server.c:1055 gdb_new_connection(): Connect failed. Consider setting up a gdb-attach event for the target to prepare target for GDB connect, or use 'gdb_memory_map disable'.
    Error: 343 7540 server.c:95 add_connection(): attempted 'gdb' connection rejected
    [2025-07-22T10:32:29.562Z] SERVER CONSOLE DEBUG: onBackendConnect: gdb-server session closed
    GDB server session ended. This terminal will be reused, waiting for next session to start...

    Debug Console:

    Cortex-Debug: VSCode debugger extension version 1.12.1 git(652d042). Usage info: https://github.com/Marus/cortex-debug#usage

    "configuration": { "cwd": "C:\\Users\\ivan.moreno\\Desktop\\Ivan\\Repos\\fw-gasmeter_gm\\GASMETER-FW\\simple_peripheral_cc2640r2lp_app\\FlashROM_StackLibrary_LORA", "executable": "C:/Users/ivan.moreno/Desktop/Ivan/Repos/fw-gasmeter_gm/GASMETER-FW/simple_peripheral_cc2640r2lp_app/FlashROM_StackLibrary_LORA/simple_peripheral_cc2640r2lp_app.out", "name": "Debug CC2640R2L (LORA)", "request": "launch", "type": "cortex-debug", "servertype": "openocd", "configFiles": [ "interface\\xds110.cfg", "board\\ti_cc26x0_launchpad.cfg" ], "searchDir": [ "C:\\Users\\ivan.moreno\\AppData\\Local\\Texas Instruments\\ti-embedded-debug\\openocd\\20250414\\share\\openocd\\scripts" ], "runToEntryPoint": "main", "showDevDebugOutput": "raw", "deviceName": "CC2640R2F", "openOCDLaunchCommands": [ "adapter_khz 2000" ], "serverArgs": [ "-d3" ], "interface": "jtag", "__configurationTarget": 6, "gdbServerConsolePort": 55878, "pvtAvoidPorts": [], "chainedConfigurations": { "enabled": false }, "debuggerArgs": [], "swoConfig": { "enabled": false, "decoders": [], "cpuFrequency": 0, "swoFrequency": 0, "source": "probe" }, "rttConfig": { "enabled": false, "decoders": [] }, "graphConfig": [], "preLaunchCommands": [], "postLaunchCommands": [], "preAttachCommands": [], "postAttachCommands": [], "preRestartCommands": [], "postRestartCommands": [], "preResetCommands": [], "postResetCommands": [], "serverpath": "C:\\Users\\ivan.moreno\\Appdata\\Local\\Texas Instruments\\ti-embedded-debug\\openocd\\20250414\\bin\\openocd.exe", "toolchainPath": "C:\\Users\\ivan.moreno\\Appdata\\Local\\Texas Instruments\\ti-embedded-debug\\arm-none-eabi-gdb\\14.2.rel1.1", "toolchainPrefix": "arm-none-eabi", "extensionPath": "c:/Users/ivan.moreno/.vscode/extensions/marus25.cortex-debug-1.12.1", "registerUseNaturalFormat": true, "variableUseNaturalFormat": true, "pvtVersion": "1.12.1", "__sessionId": "d9fc1bbd-8555-4929-bf75-c7d3902bb4a0", "pvtShowDevDebugOutput": "raw" }
    Reading symbols from C:/Users/ivan.moreno/Appdata/Local/Texas Instruments/ti-embedded-debug/arm-none-eabi-gdb/14.2.rel1.1/arm-none-eabi-objdump.exe --syms -C -h -w C:/Users/ivan.moreno/Desktop/Ivan/Repos/fw-gasmeter_gm/GASMETER-FW/simple_peripheral_cc2640r2lp_app/FlashROM_StackLibrary_LORA/simple_peripheral_cc2640r2lp_app.out
    Reading symbols from c:/users/ivan.moreno/appdata/local/texas instruments/ti-embedded-debug/arm-none-eabi-gdb/14.2.rel1.1/arm-none-eabi-nm.exe --defined-only -S -l -C -p C:/Users/ivan.moreno/Desktop/Ivan/Repos/fw-gasmeter_gm/GASMETER-FW/simple_peripheral_cc2640r2lp_app/FlashROM_StackLibrary_LORA/simple_peripheral_cc2640r2lp_app.out
    Launching GDB: "C:\\Users\\ivan.moreno\\Appdata\\Local\\Texas Instruments\\ti-embedded-debug\\arm-none-eabi-gdb\\14.2.rel1.1\\arm-none-eabi-gdb.exe" -q --interpreter=mi2
    1-gdb-version
    Launching gdb-server: "C:\\Users\\ivan.moreno\\Appdata\\Local\\Texas Instruments\\ti-embedded-debug\\openocd\\20250414\\bin\\openocd.exe" -c "gdb_port 50000" -c "tcl_port 50001" -c "telnet_port 50002" -s "C:\\Users\\ivan.moreno\\AppData\\Local\\Texas Instruments\\ti-embedded-debug\\openocd\\20250414\\share\\openocd\\scripts" -f "c:/Users/ivan.moreno/.vscode/extensions/marus25.cortex-debug-1.12.1/support/openocd-helpers.tcl" -f "interface\\xds110.cfg" -f "board\\ti_cc26x0_launchpad.cfg" -d3 -c "adapter_khz 2000"
    Please check TERMINAL tab (gdb-server) for output from C:\Users\ivan.moreno\Appdata\Local\Texas Instruments\ti-embedded-debug\openocd\20250414\bin\openocd.exe
    -> =thread-group-added,id="i1"
    -> ~"GNU gdb (Arm GNU Toolchain 14.2.Rel1 (Build arm-14.52)) 15.2.90.20241130-git\n"
    -> ~"Copyright (C) 2024 Free Software Foundation, Inc.\n"
    -> ~"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law."
    -> ~"\nType \"show copying\" and \"show warranty\" for details.\n"
    -> ~"This GDB was configured as \"--host=x86_64-w64-mingw32 --target=arm-none-eabi\".\n"
    -> ~"Type \"show configuration\" for configuration details.\n"
    -> ~"For bug reporting instructions, please see:\n"
    -> ~"<https://bugs.linaro.org/>.\n"
    -> ~"Find the GDB manual and other documentation resources online at:\n <"
    -> ~"http://www.gnu.org/software/gdb/documentation/>.\n\n"
    -> ~"For help, type \"help\".\n"
    -> ~"Type \"apropos word\" to search for commands related to \"word\".\n"
    -> 1^done
    2-gdb-set mi-async on
    Finished reading symbols from objdump: Time: 723 ms
    -> 2^done
    3-interpreter-exec console "set print demangle on"
    -> 3^done
    4-interpreter-exec console "set print asm-demangle on"
    -> =cmd-param-changed,param="print asm-demangle",value="on"
    -> 4^done
    5-enable-pretty-printing
    -> 5^done
    6-interpreter-exec console "source c:/Users/ivan.moreno/.vscode/extensions/marus25.cortex-debug-1.12.1/support/gdbsupport.init"
    -> 6^done
    7-interpreter-exec console "source c:/Users/ivan.moreno/.vscode/extensions/marus25.cortex-debug-1.12.1/support/gdb-swo.init"
    -> =cmd-param-changed,param="language",value="c"
    -> =cmd-param-changed,param="language",value="auto"
    -> 7^done
    8-interpreter-exec console "set output-radix 0xa"
    -> ~"Output radix now set to decimal 10, hex a, octal 12.\n"
    Output radix now set to decimal 10, hex a, octal 12.
    -> 8^done
    9-interpreter-exec console "set input-radix 0xa"
    -> ~"Input radix now set to decimal 10, hex a, octal 12.\n"
    Input radix now set to decimal 10, hex a, octal 12.
    -> 9^done
    10-file-exec-and-symbols "C:/Users/ivan.moreno/Desktop/Ivan/Repos/fw-gasmeter_gm/GASMETER-FW/simple_peripheral_cc2640r2lp_app/FlashROM_StackLibrary_LORA/simple_peripheral_cc2640r2lp_app.out"
    Finished reading symbols from nm: Time: 1254 ms
    -> 10^done
    11-target-select extended-remote localhost:50000
    -> 11^error,msg="Remote connection closed"
    12-interpreter-exec console "monitor reset halt"
    Failed to launch GDB: Remote connection closed (from target-select extended-remote localhost:50000)
    Thank you, I'll be waiting
  • Hi !

    I was able to reproduce your issue. I will debug it on my side and provide you with feedback as soon as I can.

    Kind regards,
    Maxence

  • Hi !

    I have confirmed the issue on my end, but the team that used to support OpenOCD support for agama boards (cc13xx_cc26xx) does not exist anymore.
    We are in the process of finding who and how can we fix the issue, but in the meanwhile, I would advise you to continue using CCS instead of OpenOCD.

    Kind regards,
    Maxence

  • Hello Ivan,

    I have seen your thread and understood that you are using the CC1350 LaunchPad's integrated XDS110 debugger with the CC2640R2 target board on VS Code with OpenOCD. I noticed that the TDO, TDI, and SWO pins are not connected. This is expected behavior and aligns with how CCS and OpenOCD handle debug protocols.

    When using CCS, TI's Debug Server defaults to 2-wire SWD mode, which only requires TMS (SWDIO) and TCK (SWCLK). The JTAG-specific pins (TDI, TDO, and SWO) are not used unless JTAG mode is explicitly selected. CCS automatically detects and configures the appropriate mode, so leaving those pins unconnected does not affect debugging.

    However, OpenOCD defaults to JTAG mode and often expects a complete 4-wire JTAG chain unless explicitly configured for SWD. Without TDI and TDO connected, OpenOCD in JTAG mode will fail to establish communication.

    Can you try to connect the above stated 3-pins (TDI, TDO, and SWO) between the XDS110 debugger and the target launchpad.

    This will align OpenOCD with your hardware setup and allow debugging with the JTAG pins.

    Best regards,
    Kshitiz

  • Hello Kshitiz, thank you for answering!

    We've always used SWD as the debug interface, so all of our pins (including TDI and TDO) are already in use and are not accesible.

    So what I would need is a way to configure SWD, but I tried that before and it always defaults to JTAG because of the cc2640.cfg file, and it felt impossible to edit manually. 

    Do you think there is a way to configure it and get away with it without using the JTAG pins?

    Best regards,

    Ivan

  • Hello Ivan,

    Thank you for your follow-up. I understand you are encountering difficulties with the SWD pins.

    Upon further investigation, I have identified a hardware limitation: the CC2640R2 target device supports only 2-pin cJTAG and standard JTAG debugging modes—it does not support SWD. You can confirm this in the official documentation: CC2640R2 Documentation.

    Additionally, regarding the XDS110 adapter used with VS Code and OpenOCD, there is a software constraint. According to the older OpenOCD release notes, OpenOCD does not support the 2-pin cJTAG mode utilized by CC26XX devices. This is explicitly mentioned in the "Known Limitations" section.

    Due to these hardware and software restrictions, only full JTAG mode is available for debugging CC26XX devices with OpenOCD. Therefore, the use of JTAG pins is required.

    You may verify the available transports by executing the following command in your terminal (the openOCD installation is typically under C:\Users\<username>\AppData\Local\Texas Instruments\ti-embedded-debug\openocd\20250414\bin):

    openocd -c "transport list" -c "exit"


    The output will resemble:

    Open On-Chip Debugger 0.12.0+dev-gae70877b5-dirty (2025-01-31-10:10)
    Licensed under GNU GPL v2
    For bug reports, read
    http://openocd.org/doc/doxygen/bugs.html
    The following transports are available:
    jtag
    hla_jtag
    hla_swd
    swim
    dapdirect_swd
    dapdirect_jtag
    swd


    Although SWD is listed as an available transport, the CC26XX hardware does not support it. As a result, JTAG pins are necessary for debugging.

    Best regards,
    Kshitiz