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


    在这里插入图片描述

    一、简介

    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
    
    • 1

    有如下输出 :

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    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:

    在这里插入图片描述

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

  • 相关阅读:
    史上最全 499 道 Java 面试题:JVM+ 分布式 + 算法 + 锁 +MQ+ 微服务 + 数据库
    MySQL中的索引
    Hi5 2.0 产品说明书-Ver 1.0
    使用AWS Systems Manager Inventory报错
    Jmeter之测试元件-JSR223 PreProcessor
    pytorch的安装【全官网流程】
    SR和GBN的区别
    【开源】基于Vue.js的中小学教师课程排课系统
    二分算法(超详细)
    Hadoop学习总结
  • 原文地址:https://blog.csdn.net/xundh/article/details/132621289