ESP-C3入门22. 基于VSCODE使用内置JTAG调试程序

ESP-C3入门22. 基于VSCODE使用内置JTAG调试程序

  • 一、简介
    • [1. 内置 jtag 介绍](#1. 内置 jtag 介绍)
    • [2. OpenOCD](#2. OpenOCD)
    • [3. 准备工作](#3. 准备工作)
  • 二、操作步骤
    • [1. 接线](#1. 接线)
    • [2. 在VSCode设置端口等信息](#2. 在VSCode设置端口等信息)
    • [3. 测试编译烧录](#3. 测试编译烧录)
  • 三、调试程序

一、简介

1. 内置 jtag 介绍

在ESP32中,内置了一个用于JTAG调试的特殊程序,称为"ESP32 JTAG调试引导模式"。

JTAG(Joint Test Action Group)是一种用于测试和调试电路板的标准接口。在嵌入式系统开发中,JTAG可以用于芯片的调试、程序下载、固件更新等操作。ESP32的JTAG调试引导模式允许通过JTAG接口连接到芯片,以便进行硬件级别的调试和分析。

2. OpenOCD

OpenOCD是一个强大的开源调试工具,支持多种处理器架构和芯片,包括ESP32。它允许开发者通过JTAG接口连接到目标芯片,以进行调试和编程。OpenOCD提供了一组命令行工具和GDB(GNU Debugger)的集成,可以用于单步执行、断点设置、查看寄存器状态、读写内存等调试操作。

开发者可以使用OpenOCD作为调试工具,通过ESP32的JTAG接口连接到ESP32芯片,以进行嵌入式应用程序的调试。为了在OpenOCD中配置ESP32的目标,需要提供一个与目标芯片相关的配置文件(通常称为"target.cfg"或类似的名称)。这个配置文件定义了与芯片通信的JTAG引脚映射、芯片特定的调试功能和寄存器映射等信息。

使用内置 jTAG 时,这个cfg的路径位置大概是如下位置 :

Espressif\tools\openocd-esp32\v0.12.0-esp32-20230419\openocd-esp32\share\openocd\scripts\board\esp32c3-builtin.cfg

使用VSCODE 的 IDF插件,这个位置不需要手工配置。

3. 准备工作

  • ESP32-C3 开发板
  • 安装好ESP-IDF环境
  • 准备一个ESP32-C3的项目
  • VSCODE 安装好ESP-IDF插件

在命令行输入:

bash 复制代码
openocd --version

有如下输出 :

bash 复制代码
openocd --version
Open On-Chip Debugger v0.12.0-esp32-20230419 (2023-04-18-22:02)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html

OPENOCD 需要用到 TCP 6666 端口。

二、操作步骤

1. 接线

需要一根USB线,一头插电脑,另一头按线序接MCU。

USB 引脚 典型颜色 ESP32-C3 引脚
D- GPIO18
D+ 绿 GPIO19
V_BUS 5V
GND GND

USB插入电脑,提示设置设备:

设置成功后,在系统设备列表可以看到 SUB JTAG/serial debug unit:

2. 在VSCode设置端口等信息

点击VSCODE下方按钮,设置对应的串口,并选择内置USB-JTAG(ESP32-C3 chip(via builtin USB-JTAG)。

禁用内存保护 :

设置日志通过 USB Serial/JTAG 输出:

3. 测试编译烧录

点击VSCODE的 ESP-IDF Build, Flash and Monitor。

等待编译、烧录、查看USB日志输出 。

三、调试程序

点击VSCODE上的 Launch:

可以设置断点并查看寄存器值、变量值等。

相关推荐
jianqiang.xue1 天前
智能体整体架构设计:四大模块与目录组织
单片机·嵌入式硬件·物联网·架构·esp32
虎王物联1 天前
ESP32 FreeRTOS多任务优先级翻转与互斥量保护实战
物联网·嵌入式·esp32·freertos
zhangfeng11332 天前
WebIDE 容器中 AtomCode 报 `ATOMCODE_SIG_STALE` 排查实录:一次由 8 小时时钟偏差引发的“悬案”
编辑器·ai编程·atomcode
jianqiang.xue2 天前
低功耗产品架构专项优化:电池供电设备休眠、唤醒、漏电流、待机功耗极致优化
stm32·单片机·mcu·物联网·架构·esp32
witton2 天前
MacOS中在目录或者文件右键菜单中添加“使用VSCode打开”
vscode·macos·文件·目录·服务·automator·右键菜单
jianqiang.xue2 天前
专栏简介:《嵌入式 AI 智能体设计实战》
人工智能·stm32·单片机·物联网·架构·esp32
wabil2 天前
[AI-Talk] codx制作xmind文件技巧
ide·ai编程·myeclipse·xmind
大衛說2 天前
02 · 环境搭建:uv 包管理与现代 IDE
ide·uv
山峰哥2 天前
数据库工程与查询优化案例深度复盘‌
数据库·sql·oracle·编辑器·深度优先·宽度优先
cndes2 天前
安装Miniconda+Jupyter notebook
ide·python·jupyter