无法使用 ESP32-C6 的 ESP-IDF 调试适配器启动调试会话

问题描述 投票:0回答:1

这是我的设置:

  • Ubuntu 23.10
  • Visual Studio 代码 v1.85.1
  • 乐鑫 IDF 扩展 v1.6.5
  • OpenOCD v0.12.0-esp32-20230921
  • MCU:ESP32-C6

这是我的代码:

#include <freertos/FreeRTOS.h>
#include <freertos/task.h>

void app_main(void)
{
    int i = 0;

    while (1)
    {
        i++;
        vTaskDelay(1000 / portTICK_PERIOD_MS);  
    }
}

这是我的

launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "espidf",
      "name": "Launch",
      "request": "launch",
      "debugPort": 3333, // tried with 4444, 6666, 43474
      "logLevel": 2,
      "mode": "manual",
      "verifyAppBinBeforeDebug": false,
      "tmoScaleFactor": 1,
      "initGdbCommands": [
        "target remote :3333",
        "symbol-file /build/main.elf",
        "mon reset halt",
        "flushregs",
        "thb app_main",
        "c"
      ],
      "env": {
        "CUSTOM_ENV_VAR": "SOME_VALUE"
      }
    }
  ]
}

我的目标是配置 IDE 以通过 USB/JTAG 使用片上调试器来调试固件。

  1. 构建代码(确定)
  2. 启动 OpenOCD(确定)
 

   /home/mark/.espressif/tools/openocd-esp32/v0.12.0-esp32-20230921/openocd-esp32/bin/openocd
    
    [OpenOCD]
    Open On-Chip Debugger v0.12.0-esp32-20230921 (2023-09-21-13:41)
    Licensed under GNU GPL v2
    For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
    debug_level: 2
    Info : only one transport option; autoselecting 'jtag'
    
    [OpenOCD]
    Info : esp_usb_jtag: VID set to 0x303a and PID to 0x1001
    Info : esp_usb_jtag: capabilities descriptor set to 0x2000
    
    [OpenOCD]
    Info : Listening on port 6666 for tcl connections
    Info : Listening on port 4444 for telnet connections
    
    [OpenOCD]
    Info : esp_usb_jtag: serial (40:4C:CA:41:3B:00)
    
    [OpenOCD]
    Info : esp_usb_jtag: Device found. Base speed 24000KHz, div range 1 to 255
    
    [OpenOCD]
    Info : clock speed 24000 kHz
    
    [OpenOCD]
    Info : JTAG tap: esp32c6.cpu tap/device found: 0x0000dc25 (mfg: 0x612 (Espressif Systems), part: 0x000d, ver: 0x0)
    
    [OpenOCD]
    Info : [esp32c6] datacount=2 progbufsize=16
    
    [OpenOCD]
    Info : [esp32c6] Examined RISC-V core; found 2 harts
    Info : [esp32c6]  XLEN=32, misa=0x40903105
    
    [OpenOCD]
    Info : starting gdb server for esp32c6 on 3333
    Info : Listening on port 3333 for gdb connections
  1. 从 VSC 的“运行和调试”运行“启动”配置:
    [OpenOCD]
    Info : accepting 'gdb' connection on tcp/3333
    
    [OpenOCD]
    Warn : No symbols for FreeRTOS!
    
    [OpenOCD]
    Info : [esp32c6] Found 4 triggers.
    
    [OpenOCD]
    Info : Flash mapping 0: 0x10020 -> 0x42010020, 30 KB
    Info : Flash mapping 1: 0x20020 -> 0x42000020, 56 KB
    
    [OpenOCD]
    Info : Auto-detected flash bank 'esp32c6.flash' size 4096 KB
    Info : Using flash bank 'esp32c6.flash' size 4096 KB
    
    [OpenOCD]
    Info : Flash mapping 0: 0x10020 -> 0x42010020, 30 KB
    Info : Flash mapping 1: 0x20020 -> 0x42000020, 56 KB
    Info : Using flash bank 'esp32c6.irom' size 60 KB
    
    [OpenOCD]
    Info : Flash mapping 0: 0x10020 -> 0x42010020, 30 KB
    Info : Flash mapping 1: 0x20020 -> 0x42000020, 56 KB
    Info : Using flash bank 'esp32c6.drom' size 32 KB
    Warn : ignoring character 0x43
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x74
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x74
    Warn : negative acknowledgment, but no packet pending
    Warn : ignoring character 0x4c
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x67
    Warn : ignoring character 0x74
    Warn : ignoring character 0x68
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x20
    Warn : ignoring character 0x35
    Warn : ignoring character 0x31
    Warn : ignoring character 0x34
    Warn : ignoring character 0xd
    Warn : ignoring character 0xa
    Warn : ignoring character 0xd
    Warn : ignoring character 0xa
    Warn : ignoring character 0x7b
    Warn : ignoring character 0x22
    Warn : ignoring character 0x63
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x6d
    Warn : ignoring character 0x6d
    Warn : ignoring character 0x61
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x64
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x22
    Warn : ignoring character 0x69
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x69
    Warn : ignoring character 0x74
    Warn : ignoring character 0x69
    Warn : ignoring character 0x61
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x69
    Warn : ignoring character 0x7a
    Warn : ignoring character 0x65
    Warn : ignoring character 0x22
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x61
    Warn : ignoring character 0x72
    Warn : ignoring character 0x67
    Warn : ignoring character 0x75
    Warn : ignoring character 0x6d
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x7b
    Warn : ignoring character 0x22
    Warn : ignoring character 0x63
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x69
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x74
    Warn : ignoring character 0x49
    Warn : ignoring character 0x44
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x22
    Warn : ignoring character 0x76
    Warn : ignoring character 0x73
    Warn : ignoring character 0x63
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x64
    Warn : ignoring character 0x65
    Warn : ignoring character 0x22
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x63
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x69
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x74
    Warn : ignoring character 0x4e
    Warn : ignoring character 0x61
    Warn : ignoring character 0x6d
    
    [OpenOCD]
    Warn : ignoring character 0x65
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x22
    Warn : ignoring character 0x56
    Warn : ignoring character 0x69
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x61
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x20
    Warn : ignoring character 0x53
    Warn : ignoring character 0x74
    Warn : ignoring character 0x75
    Warn : ignoring character 0x64
    Warn : ignoring character 0x69
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x20
    Warn : ignoring character 0x43
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x64
    Warn : ignoring character 0x65
    Warn : ignoring character 0x22
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x61
    Warn : ignoring character 0x64
    Warn : ignoring character 0x61
    Warn : ignoring character 0x70
    Warn : ignoring character 0x74
    Warn : ignoring character 0x65
    Warn : ignoring character 0x72
    Warn : ignoring character 0x49
    Warn : ignoring character 0x44
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x22
    Warn : ignoring character 0x65
    Warn : ignoring character 0x73
    Warn : ignoring character 0x70
    Warn : ignoring character 0x69
    Warn : ignoring character 0x64
    Warn : ignoring character 0x66
    Warn : ignoring character 0x22
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x70
    Warn : ignoring character 0x61
    Warn : ignoring character 0x74
    Warn : ignoring character 0x68
    Warn : ignoring character 0x46
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x6d
    Warn : ignoring character 0x61
    Warn : ignoring character 0x74
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x22
    Warn : ignoring character 0x70
    Warn : ignoring character 0x61
    Warn : ignoring character 0x74
    Warn : ignoring character 0x68
    Warn : ignoring character 0x22
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x69
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x65
    Warn : ignoring character 0x73
    Warn : ignoring character 0x53
    Warn : ignoring character 0x74
    Warn : ignoring character 0x61
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x41
    Warn : ignoring character 0x74
    Warn : ignoring character 0x31
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x63
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x75
    Warn : ignoring character 0x6d
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x73
    Warn : ignoring character 0x53
    Warn : ignoring character 0x74
    Warn : ignoring character 0x61
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x41
    Warn : ignoring character 0x74
    Warn : ignoring character 0x31
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x70
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x56
    Warn : ignoring character 0x61
    Warn : ignoring character 0x72
    Warn : ignoring character 0x69
    Warn : ignoring character 0x61
    Warn : ignoring character 0x62
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x65
    Warn : ignoring character 0x54
    Warn : ignoring character 0x79
    Warn : ignoring character 0x70
    Warn : ignoring character 0x65
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x70
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x56
    Warn : ignoring character 0x61
    Warn : ignoring character 0x72
    Warn : ignoring character 0x69
    Warn : ignoring character 0x61
    Warn : ignoring character 0x62
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x65
    Warn : ignoring character 0x50
    Warn : ignoring character 0x61
    Warn : ignoring character 0x67
    Warn : ignoring character 0x69
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x67
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x70
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x52
    Warn : ignoring character 0x75
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x49
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x54
    Warn : ignoring character 0x65
    Warn : ignoring character 0x72
    Warn : ignoring character 0x6d
    Warn : ignoring character 0x69
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x61
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x52
    Warn : ignoring character 0x65
    Warn : ignoring character 0x71
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x73
    Warn : ignoring character 0x74
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x63
    Warn : ignoring character 0x61
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x65
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x22
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x22
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x70
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x50
    Warn : ignoring character 0x72
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x67
    Warn : ignoring character 0x72
    Warn : ignoring character 0x65
    Warn : ignoring character 0x73
    Warn : ignoring character 0x73
    Warn : ignoring character 0x52
    Warn : ignoring character 0x65
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x69
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x67
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x70
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x49
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x76
    Warn : ignoring character 0x61
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x69
    Warn : ignoring character 0x64
    Warn : ignoring character 0x61
    Warn : ignoring character 0x74
    Warn : ignoring character 0x65
    Warn : ignoring character 0x64
    Warn : ignoring character 0x45
    Warn : ignoring character 0x76
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x74
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x70
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x4d
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6d
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x79
    Warn : ignoring character 0x52
    Warn : ignoring character 0x65
    Warn : ignoring character 0x66
    Warn : ignoring character 0x65
    Warn : ignoring character 0x72
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x63
    Warn : ignoring character 0x65
    Warn : ignoring character 0x73
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    
    [OpenOCD]
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x70
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x41
    Warn : ignoring character 0x72
    Warn : ignoring character 0x67
    Warn : ignoring character 0x73
    Warn : ignoring character 0x43
    Warn : ignoring character 0x61
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x42
    Warn : ignoring character 0x65
    Warn : ignoring character 0x49
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x74
    Warn : ignoring character 0x65
    Warn : ignoring character 0x72
    Warn : ignoring character 0x70
    Warn : ignoring character 0x72
    Warn : ignoring character 0x65
    Warn : ignoring character 0x74
    Warn : ignoring character 0x65
    Warn : ignoring character 0x64
    Warn : ignoring character 0x42
    Warn : ignoring character 0x79
    Warn : ignoring character 0x53
    Warn : ignoring character 0x68
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x6c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x70
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x4d
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6d
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x79
    Warn : ignoring character 0x45
    Warn : ignoring character 0x76
    Warn : ignoring character 0x65
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x74
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x75
    Warn : ignoring character 0x70
    Warn : ignoring character 0x70
    Warn : ignoring character 0x6f
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x73
    Warn : ignoring character 0x53
    Warn : ignoring character 0x74
    Warn : ignoring character 0x61
    Warn : ignoring character 0x72
    Warn : ignoring character 0x74
    Warn : ignoring character 0x44
    Warn : ignoring character 0x65
    Warn : ignoring character 0x62
    Warn : ignoring character 0x75
    Warn : ignoring character 0x67
    Warn : ignoring character 0x67
    Warn : ignoring character 0x69
    Warn : ignoring character 0x6e
    Warn : ignoring character 0x67
    Warn : ignoring character 0x52
    Warn : ignoring character 0x65
    Warn : ignoring character 0x71
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x73
    Warn : ignoring character 0x74
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x74
    Warn : ignoring character 0x72
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x7d
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x74
    Warn : ignoring character 0x79
    Warn : ignoring character 0x70
    Warn : ignoring character 0x65
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x22
    Warn : ignoring character 0x72
    Warn : ignoring character 0x65
    Warn : ignoring character 0x71
    Warn : ignoring character 0x75
    Warn : ignoring character 0x65
    Warn : ignoring character 0x73
    Warn : ignoring character 0x74
    Warn : ignoring character 0x22
    Warn : ignoring character 0x2c
    Warn : ignoring character 0x22
    Warn : ignoring character 0x73
    Warn : ignoring character 0x65
    Warn : ignoring character 0x71
    Warn : ignoring character 0x22
    Warn : ignoring character 0x3a
    Warn : ignoring character 0x31
    Warn : ignoring character 0x7d
    
    [OpenOCD]
    Warn : keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (1355 ms). Workaround: increase "set remotetimeout" in GDB

我阅读了官方的guide来设置环境和相关文档。 我还发现了一些类似的问题(例如thisthis),但没有任何有用的答案。

顺便说一句,使用 Microsoft C/C++ 扩展以及

launch.json
提供的文件这里我可以成功启动调试会话,因此硬件没问题。

我的配置中是否有任何错误会阻止使用 Espressif ESP-IDF 调试适配器?

esp32 vscode-debugger openocd espressif-idf
1个回答
0
投票

我也遇到过类似的问题。设置几乎相同:

  • vscode(Windows 10)
  • 乐鑫 IDF 扩展 v1.7.0
  • OpenOCD v0.12.0-esp32-20230921
  • MCU:ESP32-C6(开发套件)

我发现提供

symbol-file /build/main.elf
参数会破坏调试。 如果省略此参数,则调试会话可以正常启动。 (但是这种方法存在一些问题(https://github.com/espressif/vscode-esp-idf-extension/issues/1138)。总之我无法让 ESP-IDF 调试适配器继续从一个断点到另一个断点(只有步骤功能有效)。

使用 Microsoft C/C++ 扩展和

launch.json
方法对我来说很有效。可以继续 (F5) 从一个断点到另一个断点。

所以我的

launch.json
文件看起来像:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "espidf",
      "name": "Launch",
      "request": "launch",
      "initGdbCommands": [
        // extended-remote was advised in console
        "target extended-remote :3333",
        "set remote hardware-watchpoint-limit 2",
        "mon reset halt",
        // using this line instead of flushregs was advised in console
        "maintenance flush register-cache",
        "thb app_main",
        "c",
      ],
    },
    {
      "name": "Launch GDB ESP32",
      "type": "cppdbg",
      "request": "launch",
      "cwd": "${workspaceFolder}/build",
      "program": "${workspaceFolder}/build/gwfirmware.elf",
      // Could specify direct path to .espressif tools instead of the command
      "miDebuggerPath": "${command:espIdf.getXtensaGdb}",
      "setupCommands": [
        { "text": "target extended-remote :3333" },
        { "text": "set remote hardware-watchpoint-limit 2"},
        { "text": "mon reset halt" },
        { "text": "maintenance flush register-cache" },
        { "text": "thb app_main" },
      ]
    }
  ]
}
© www.soinside.com 2019 - 2024. All rights reserved.