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

news/2024/7/16 8:36:16 标签: vscode, ide, 编辑器, esp32

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

  • 一、简介
    • 1. 内置 jtag 介绍
    • 2. OpenOCD
    • 3. 准备工作
  • 二、操作步骤
    • 1. 接线
    • 2. 在VSCode设置端口等信息
    • 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插件

在命令行输入:

openocd --version

有如下输出 :

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_BUS5V
GNDGND

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:

在这里插入图片描述

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


http://www.niftyadmin.cn/n/4990619.html

相关文章

Integer、Long 等包装类 == 值判断、地址判断与缓存

先看下以下代码和输出 public static void main(String[] args) throws Exception{Integer a-128;Integer aa-128;System.out.printf("aaa? %s \n",aaa);Integer b127;Integer bb127;System.out.printf("bbb? %s \n",bbb);Integer c128;Integer cc128;Sy…

C-编程经验-文件-流-处理工具类工具类总结

C-编程经验-文件-流-处理工具类工具类总结 前言一、CS5720的优化点【gitee里面有笔记,可以参考】1.代码中使用了一些硬编码的数字和字符串,例如this.Size new Size(654, this.Size.Height);和byte[] regData new byte[24];。 将这些硬编码的值提取为常…

跨境电商用什么商品采集工具?

跨境电商的商品采集工具和虾皮商品详情接口/搜索接口是电商运营中非常重要的技术工具。本文将详细介绍这两个方面的工具和技术,为跨境电商从业者提供实用的参考。 一、跨境电商商品采集工具 跨境电商的商品采集工具主要用于从多个电商平台采集商品信息&#xff0c…

Erlang:Linux下使用observer、debugger进行调试

之前写了一篇文章Erlang:使用observer连接远程服务器进行调试,内容是绕过Linux服务器缺失’wxe_driver.so’的wxWidgets环境,启动observer远程连接实现observer调试。 本文则讨论在Linux环境下通过编译安装的方式,保证wxWidgets环境可用性&am…

【ActiveMQ】Failed to start Apache ActiveMQ (localhost, ID_XXX)

问题描述 使用"bin\win64\activemq.bat"启动apache-activemq-5.18.2出错。 jvm 1 | ERROR | Failed to start Apache ActiveMQ (localhost, ID:) jvm 1 | java.io.IOException: Transport Connector could not be registered in JMX: java.io.IOException: F…

【2D/3D RRT* 算法】使用快速探索随机树进行最佳路径规划(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

利润双位数增长,释放业绩增速动能,推动雅迪控股持续竞速奔跑

撰稿|行星 来源|贝多财经 8月28日,两轮电动车“领头羊”雅迪集团控股有限公司(HK.01585,下称“雅迪控股”或“雅迪”)对外发布截至2023年中期业绩报告。 财报显示,雅迪控股于2023年上半年实现了收入与利润的双重增长&#xff0…

unity 物体至视图中心以及新对象创建位置

如果游戏对象不在视野中心或在视野之外, 一种方法是双击Hierarchy中的对象名称 另一种是选中后按F 新建物体时对象的位置不是在坐标原点,而是在当前屏幕的中心