VSCODE platformio ESP32-S3 内置 JTAG 接口断点单步调试笔记

ESP32 S3的两种JTAG调试方法

  • ESP32 S3的有两种JTAG调试方法,直接连接板子上的JTAG引脚进行调试,或者用ESP32-S3 内置 JTAG 接口进行调试,这些方法有助于开发者在开发过程中进行更深入的调试。

1、ESP32-S3 内置 JTAG 接口

  • 使用 ESP32-S3 内置 JTAG 接口ESP32-S3 芯片本身就集成了 JTAG 功能,这意味着你可以直接通过 USB 线连接到芯片的 D+ 和 D- 引脚来进行 JTAG 调试,而不需要额外的 JTAG 适配器。这种调试方式较为简便,只需要按照以下步骤操作:

    • 硬件连接:将 USB 线的 D+ 和 D- 引脚连接到 ESP32-S3 的相应引脚上。注意不要将 USB 通信引脚误连到通常用于串行通信的 RxD 和 TxD 引脚上。
    • 软件配置:使用支持 JTAG 调试的工具,如 OpenOCD。配置相应的 OpenOCD 配置文件,指定正确的 JTAG 配置和目标设备。
  • ESP32-S3 系列芯片集成了一个 USB 串口/JTAG 控制器,作为兼容 USB 2.0 全速模式的设备。GPIO19 和 GPIO20 可以分别作为 USB 的 D- 和 D+(通过USB进行直连的方法如以下原理图所示),线上建议预留串联电阻(初始值可为 0 Ω)和对地电容(初始可不上件),并注意靠近芯片端放置。
    在这里插入图片描述

2、外部 JTAG 适配器

在这里插入图片描述

  • 可以使用传统的 JTAG 适配器来实现调试。使用外部 JTAG 适配器的方法包括:硬件连接:连接 JTAG 适配器到 ESP32-S3 的 JTAG 接口,通常包括 TCK, TDI, TDO, TMS, nTRST 等引脚。软件配置:同样使用支持 JTAG 的调试工具,例如 OpenOCD。

内置 JTAG 接口调试过程

vcode + platformio 插件安装与测试

  • 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

集成jtag驱动安装

在这里插入图片描述

  • 驱动地址:https://dl.espressif.com/dl/idf-driver/idf-driver-esp32-usb-jtag-2021-07-15.zip

  • 解压后右键点击 USB_JTAG_debug_unit.inf 进行安装
    在这里插入图片描述
    在这里插入图片描述

openocd安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

进入jtag模式

eFuse配置与jtag连接

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进行调试

  • PlatformIO项目配置文件如下:
; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:esp32-s3-devkitm-1]
platform = espressif32
board = esp32-s3-devkitm-1
framework = arduino
upload_port = COM7
; upload_speed = 2000000
; monitor_speed = 115200
monitor_port = COM6
debug_tool = esp-builtin
; debug_init_break = break setup
debug_init_break = tbreak setup
build_type = debug
  • 点击调试按钮进行程序调试
    在这里插入图片描述

CG

VSCode 中使用 PlatformIOESP32-S3 进行断点,需要正确配置调环境并连接硬件调工具。ESP32-S3 支持通过 JTAG 接口进行调,常用的硬件调工具是 ESP-PROG,它能够与 OpenOCD 配合使用实现调功能。 ### 配置步骤 #### 1. 安装 PlatformIO 确保在 VSCode 中已安装 **PlatformIO IDE** 插件,并更新至最新版本。可以通过 VSCode 的扩展市场搜索并安装。 #### 2. 创建或打开 ESP32-S3 项目 使用 PlatformIO 创建一个新的 ESP32-S3 项目,或者打开已有项目。确保 `platformio.ini` 文件中包含以下内容: ```ini [env:esp32-s3] platform = espressif32 board = esp32-s3-devkitl1 framework = arduino debug_tool = esp-prog ``` 其中 `debug_tool` 设置为 `esp-prog`,表示使用 ESP-PROG 作为调工具。 #### 3. 硬件连接 根据 ESP32-S3JTAG 引脚定义,将 ESP-PROG 正确连接至 ESP32-S3 开发板: | ESP-PROG 信号 | ESP32-S3 引脚 | |---------------|----------------| | TDO | GPIO40 | | TDI | GPIO41 | | TCK | GPIO39 | | TMS | GPIO42 | 确保所有连接稳固,并连接 GND。 #### 4. 启动调会话 在 VSCode 中打开 PlatformIO 的调视图,点击“调”按钮(或使用快捷键 `F5`),PlatformIO 会自动启动 OpenOCD 并连接到 ESP32-S3。 #### 5. 设置断点 在代码中点击左侧的编辑器边栏,设置断点。程序运行到断点时会自动暂停,允许查看变量值、寄存器状态和调用栈等信息。 #### 6. 使用 GDB 命令(可选) PlatformIO 提供 GDB 命令行界面,支持输入如 `break`, `continue`, `step` 等命令进行更精细的控制。 ### 示例代码断点 以下是一个简的调示例: ```cpp #include <Arduino.h> void setup() { Serial.begin(115200); delay(1000); Serial.println("Debugging started..."); } void loop() { Serial.println("Loop running..."); delay(1000); } ``` 在 `Serial.println("Debugging started...");` 行设置断点,启动调后程序会在该行暂停执行。 ### 调注意事项 - 确保 ESP32-S3 的电源稳定,避免因电压不稳导致调连接失败。 - 如果使用的是非官方开发板,需确认其 JTAG 接口已正确引出并支持调- 在调过程中如果遇到连接失败,可尝重新插拔 ESP-PROG 或重启 OpenOCD。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值