question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

ESP32-C3-DevKitC-02 flash using Internal JTAG but debug fails (OCD-401) (VSC-740)

See original GitHub issue

Environment

  • Development Kit: ESP32-C3-DevKitC-02
  • Module or chip used: ESP32-C3-WROOM-02
  • Debug Adapter: ESP32-C3 Internal JTAG
  • OpenOCD version: v0.10.0-esp32-20210721
  • Operating System: Windows 10
  • Using an IDE?: VS Code
  • ESP-IDF version: v4.3

Problem Description

Steps to reproduce the behavior:

  1. Build ESP-IDF blink example
  2. Flash and verify ESP32-C3 using Internal JTAG
  3. Disconnect Internal JTAG and verify blink running using devkit COM port.
  4. Disconnect COM port, reconnect internal JTAG and use F5 to start debug.
  5. Debug fails with VS Code connection refusal message: connect ECONNREFUSED 127.0.0.1:43474

Debug Logs

OpenOCD log:

Open On-Chip Debugger  v0.10.0-esp32-20210721 (2021-07-21-13:35)
Licensed under GNU GPL v2
For bug reports, read
	http://openocd.org/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
Warn : Transport "jtag" was already selected
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : esp_usb_jtag: Device found. Base speed 40000KHz, div range 1 to 255
Info : clock speed 40000 kHz
Info : JTAG tap: esp32c3.cpu tap/device found: 0x00005c25 (mfg: 0x612 (Espressif Systems), part: 0x0005, ver: 0x0)
Info : datacount=2 progbufsize=16
Info : Examined RISC-V core; found 1 harts
Info :  hart 0: XLEN=32, misa=0x40101104
Info : Listening on port 3333 for gdb connections

Terminal log:

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

Try the new cross-platform PowerShell https://aka.ms/pscore6

PS D:\Dropbox\DATA\DEVELOPMENT\ESP32C3\blink> C:\Users\nicol\.espressif\python_env\idf4.3_py3.8_env\Scripts\python.exe C:\Users\nicol\esp\esp-idf\tools\idf.py -p COM9 monitor
Executing action: monitor
Running idf_monitor in directory d:\dropbox\data\development\esp32c3\blink
Executing "C:\Users\nicol\.espressif\python_env\idf4.3_py3.8_env\Scripts\python.exe C:\Users\nicol\esp\esp-idf\tools/idf_monitor.py -p COM9 -b 115200 --toolchain-prefix riscv32-esp-elf- --decode-panic backt
d:\dropbox\data\development\esp32c3\blink\build\blink.elf -m 'C:\Users\nicol\.espressif\python_env\idf4.3_py3.8_env\Scripts\python.exe' 'C:\Users\nicol\esp\esp-idf\tools\idf.py' '-p' 'COM9'"...
--- WARNING: GDB cannot open serial ports accessed as COMx
--- Using \\.\COM9 instead...
--- idf_monitor on \\.\COM9 115200 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
ESP-ROM:esp32c3-api1-20210207
Build:Feb  7 2021
rst:0x15 (USB_UART_CHIP_RESET),boot:0xc (SPI_FAST_FLASH_BOOT)
Saved PC:0x42005a5e
0x42005a5e: cpu_ll_waiti at C:/Users/nicol/esp/esp-idf/components/hal/esp32c3/include/hal/cpu_ll.h:156
 (inlined by) esp_pm_impl_waiti at C:/Users/nicol/esp/esp-idf/components/esp_pm/pm_impl.c:827

SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd6100,len:0x1778
load:0x403ce000,len:0x8d4
load:0x403d0000,len:0x293c
entry 0x403ce000
I (24) boot: ESP-IDF v4.3-dirty 2nd stage bootloader
I (24) boot: compile time 16:00:58
I (25) boot: chip revision: 3
I (27) boot.esp32c3: SPI Speed      : 80MHz
I (31) boot.esp32c3: SPI Mode       : DIO
I (36) boot.esp32c3: SPI Flash Size : 4MB
I (41) boot: Enabling RNG early entropy source...
I (46) boot: Partition Table:
I (50) boot: ## Label            Usage          Type ST Offset   Length
I (57) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (64) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (72) boot:  2 factory          factory app      00 00 00010000 00100000
I (79) boot: End of partition table
I (83) esp_image: segment 0: paddr=00010020 vaddr=3c020020 size=05fa8h ( 24488) map
I (96) esp_image: segment 1: paddr=00015fd0 vaddr=3fc89a00 size=01a90h (  6800) load
I (101) esp_image: segment 2: paddr=00017a68 vaddr=40380000 size=085b0h ( 34224) load
I (115) esp_image: segment 3: paddr=00020020 vaddr=42000020 size=15b1ch ( 88860) map
I (131) esp_image: segment 4: paddr=00035b44 vaddr=403885b0 size=013a0h (  5024) load
I (132) esp_image: segment 5: paddr=00036eec vaddr=50000000 size=00010h (    16) load
I (140) boot: Loaded app from partition at offset 0x10000
I (143) boot: Disabling RNG early entropy source...
I (160) cpu_start: Pro cpu up.
I (172) cpu_start: Pro cpu start user code
I (172) cpu_start: cpu freq: 160000000
I (172) cpu_start: Application information:
I (175) cpu_start: Project name:     blink
I (207) cpu_start: App version:      1
I (207) cpu_start: Compile time:     Aug 29 2021 16:59:10
I (208) cpu_start: ELF file SHA256:  f3c5fe14c0f6c604...
I (214) cpu_start: ESP-IDF:          v4.3-dirty
I (219) heap_init: Initializing. RAM available for dynamic allocation:
I (226) heap_init: At 3FC8C2D0 len 00033D30 (207 KiB): DRAM
I (232) heap_init: At 3FCC0000 len 0001F060 (124 KiB): STACK/DRAM
I (239) heap_init: At 50000010 len 00001FF0 (7 KiB): RTCRAM

Debug launch.json:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "espidf",
      "name": "Launch",
      "request": "launch",
      "debugPort": 43474,
      "logLevel": 2,
      "mode": "manual",
      "skipVerifyAppBinBeforeDebug": false,
      "initGdbCommands": [
        "target remote :3333",
        "symbol-file D:/Dropbox/DATA/DEVELOPMENT/ESP32C3/blink/build/blink.elf",
        "mon reset halt",
        "flushregs",
        "thb app_main"
      ],
      "env": {
        "CUSTOM_ENV_VAR": "SOME_VALUE"
      }
    }
  ]
}

Expected behavior

Debugging of flashed program.

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:34 (13 by maintainers)

github_iconTop GitHub Comments

1reaction
xiaolongbacommented, Sep 16, 2021
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "espidf",
      "name": "Launch",
      "request": "launch",
      "skipVerifyAppBinBeforeDebug": true
    }
  ]
}

The "skipVerifyAppBinBeforeDebug": true fix was reported a few days ago https://esp32.com/viewtopic.php?t=23190

Big thanks bro, I followed your tips, it works smoothly. it also resolved the invalid issue when restart the debug, the details are as below: JTAG_Buit-in_Reset_work_well

@brianignacio5 Bro, I think you need to do some modifies about debugging to clarifying the debug issue when using the following configuration:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "espidf",
      "name": "Launch",
      "request": "launch",
      "debugPort": 9998,
      "logLevel": 2,
      "mode": "manual",
      "skipVerifyAppBinBeforeDebug": false,
      "initGdbCommands": [
        "target remote :3333",
        "symbol-file F:/Project/blink/build/blink.elf",
        "mon reset halt",
        "flushregs",
        "thb app_main"
      ],
      "env": {
        "CUSTOM_ENV_VAR": "SOME_VALUE"
      }
    }
  ]
}

@NicolSpies Bro, regarding the monitor you mentioned, it is not mandatory when debugging, you can close it here as below:

image

1reaction
NicolSpiescommented, Sep 15, 2021

Upgrading to latest ESP-IDF (Master branch, version 4.4) fixed the debugging problem using internal JTAG problem as reported. Debugging works as expected except the problem previously reported regarding the serial monitoring of ESP32c3 via the JTAG UART while debugging or running without debugging.

Upgrade was done by deleting the .espressif and esp-idf folders and reconfiguring the ESP-IDF extension in VS Code.

Read more comments on GitHub >

github_iconTop Results From Across the Web

ESP32-C3-DevKitC-02 flash using Internal JTAG but debug ...
Debug fails with VS Code connection refusal message: connect ECONNREFUSED 127.0.0.1:43474. Debug Logs. OpenOCD log: Open On-Chip Debugger v0.
Read more >
DEBUGGING your ESP-IDF code using JTAG [VS CODE]
How to DEBUG your ESP32 IDF application inside Visual Studio Code using an external debugger tool. We'll be using the ESP-PROG, a JTAG...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found