首页 > 其他分享 >ESP32的JTAG调试

ESP32的JTAG调试

时间:2023-06-07 21:57:51浏览次数:53  
标签:USB 配置文件 S3 ESP32 JTAG 调试

JTAG使用手册

准备工作:

硬件:

必备硬件

  • ESP32-S3-DevKitC-1

  • USB 2.0 数据线(标准 A 型转 Micro-B 型)

  • 电脑(Windows、Linux 或 macOS)

硬件设置

以ESP32-S3-DevKitC-1开发板举例:

该开发板有两个USB 接口,其中一个为USB Port,另一个为USB-to-UART Port

ESP32-S3-DevKitC-1 - 正面

USB Port(USB 接口):ESP32-S3 USB OTG 接口,支持全速 USB 1.1 标准。ESP32-S3 USB 接口可用作开发板的供电接口,可烧录固件至芯片,可通过 USB 协议与芯片通信,也可用于 JTAG 调试。

USB-to-UART Port(USB 转 UART 接口):Micro-USB 接口,可用作开发板的供电接口,可烧录固件至芯片,也可作为通信接口,通过板载 USB 转 UART 桥接器与芯片通信。

JTAG需要使用SP32-S3 USB 接口 连接开发板与电脑

软件(详情见以下教程)

  1. vscode安装:https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/install.md

  2. 平台工具链安装:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html

JTAG调试设置(vscode版本):

我们使用官网提供的例程,get-starting/blink作为示例程序

相关的设置

选择project

打开程序所在的文件夹,当有多个文件的时候,将想要调试的文件添加到工作区,(shift + ctrl +p 打开命令面板输入 add folder to workspace 添加文件)

image-20230607142008324

设置下载的端口:

选择/dev/ttyACM0接口

image-20230607142411662

设置芯片类型

选择芯片类型(esp32s3)以及下载方式(USB-JTAG))

image-20230607142652187

image-20230607142802721

选择当前文件夹

image-20230607142943686

选择活动的project

image-20230607143149308

编译文件并且下载

编译文件,编译完毕后终端打印信息如下:

image-20230607143324601

下载文件到板子上,下载后的终端输出信息如下(如果提示打开openocd 点击yes):

image-20230607143516719

JTAG调试

为了进一步介绍jtag的功能 我们简单修改一下例程代码。

在第83行加入


int i = 10;

在第85行加入


i++

修改后的代码截图:

image-20230607143833779

代码修改完毕后,按F5或者底部的Launch即可开启Jtag调试

image-20230607144251113

由图可知,jtag调试主要由四个部分组成,分别是变量,监视,调用堆栈以及断点

  • 变量:代码段中的变量的值

  • 监视:可以手动设置想要查看的信号

  • 调用堆栈:可以观察代码中的堆栈情况

  • 断点:可以设置断点

TIP:使用命令方法:

| 命令快捷键 | 命令用途 |

| ----------- | -------- |

| F5 | 继续 |

| F10 | 单步跳过 |

| F11 | 单步调试 |

| Shift + F10 | 单步跳出 |

| Shift + F5 | 停止调试 |

如果想同时观察打印信息,可以将监视和调试一块使用

监视和调试一块使用 先打开监视窗口 然后F5开始调试,效果如下

image-20230607144808502

在我们自己修改的代码中,我们可以看到i的值在不断变化

设置条件断点

在打断点处,右键后输入相关的条件

image-20230607180107013

image-20230607180157129

可以看到结果如下:

image-20230607180301002

命令行版本来使用JTAG调试

  1. 打开idf.py

    
    . $HOME/esp/esp-idf/export.sh
    
    

    终端打印如下信息:image-20230607145111364

  2. 设置相关芯片,编译相关文件 然后下载进去

    设置芯片类型

    
    idf.py set-target esp32s3
    
    

    image-20230607152645484编译程序:

    
    idf.py build
    
    

    image-20230607145354357

  3. 将编译的文件下载进芯片

    
    //直接让其自动匹配
    
    idf.py flash
    
    

    image-20230607145444150

  4. 打开openocd

    
    //设置相关参数并打开
    
    openocd -f board/esp32s3-builtin.cfg
    
    

    如果端口占用报错,如图

    image-20230607145556777

    输入lsof -i:6666 查看相关进程,并且关闭,如图所示:

    image-20230607145700537

    正确打开openocd后终端输入:

    image-20230607145731686

    如何选择配置文件:

    OpenOCD 有很多种配置文件(*.cfg),它们位于 OpenOCD 安装目录的 share/openocd/scripts 子目录中(或者在 OpenOCD 源码目录的 tcl/scripts 目录中)。本文主要介绍 boardinterfacetarget 这三个目录。

    • interface 包含了例如 ESPProg、J-Link 这些 JTAG 适配器的配置文件。

    • target 包含了目标芯片或者模组的配置文件。

    • board 包含有内置了 JTAG 适配器的开发板的配置文件,这些配置文件会根据实际的 JTAG 适配器和芯片/模组来导入某个具体的 interfacetarget 的配置。

    ESP32-S3 可以使用的配置文件如下表所示:

    | 名称 | 描述 |

    | --------------------------------- | ------------------------------------------------------------ |

    | board/esp32s3-builtin.cfg | ESP32-S3 系列开发板的配置文件,用于通过内置的 USB JTAG 进行调试,包括 ESP32-S3 目标配置和适配器配置。 |

    | board/esp32s3-ftdi.cfg | ESP32-S3 系列开发板的配置文件,用于通过外部连接的基于 FTDI 的探头,如 ESP-Prog,包括 ESP32-S3 目标配置和适配器配置。 |

    | target/esp32s3.cfg | ESP32-S3 目标配置文件,可以和某个 interface/ 下的配置文件一同使用 |

    | interface/ftdi/esp_usb_jtag.cfg | 适用于 ESP32-S3 的 JTAG 适配器配置文件。 |

    如果你使用的开发板已经有了一份预定义好的配置文件,你只须将该文件通过 -f 参数告诉 OpenOCD。

    如果你的开发板不在上述列表中,你需要使用多个 -f 参数来告诉 OpenOCD 你选择的 interfacetarget 配置文件。

  5. idf.py开始调试gdb

    
    idf.py gdbtui
    
    

这里就正常打断点就好了,然后和正常的GDB调试

相关命令及示例请看:

https://www.cnblogs.com/doincli/p/17464670.html

标签:USB,配置文件,S3,ESP32,JTAG,调试
From: https://www.cnblogs.com/doincli/p/17464666.html

相关文章

  • [网络调试]在内网接口配置nat hairpin enable测试不生效问题
    用户反馈F1030在内网接口启用nathairpinenable功能后,内网PC通过公网映射地址无法访问到内部服务器。现场F1030使用Ess9308P05版本,检查映射相关配置未发现问题。沟通了解,在公网上通过公网映射地址可以正常访问服务器,内网PC通过服务器私网地址也可以正常访问服务器,初步排除服......
  • h5移动端页面调试工具Chii与 weinre 一样的远程调试工具
    与 weinre 一样的远程调试工具,主要是将webinspector替换为最新的 chromedevtoolsfrontend.电脑上跑一个chii服务,把对应的js嵌入h5页面内,用手机访问h5页面,chrome内看chii服务地址即可找到对应管理控制台  安装可以通过npm安装。npminstallchii-g 使用......
  • GDB 调试指令
     GDB调试指令arm-none-eabi-gdbexample.elftarext:50000ib  //查看所有断点ir  //查看内存寄存器break16   //设置断点,在源程序第16行处。breakfunc  //设置断点,在函数func()入口处infobreak  //查看断点信息。list    //查看调试文件n......
  • 如何在运行并调试React Native App
     1.进入工程目录,启动:Metro  npxreact-nativestart 2.然后在新的terminal窗口中运行app   npxreact-nativerun-ios第1,2步参考:https://reactnative.dev/docs/environment-setup#running-your-react-native-application这时你的程序应该运行起来了。每次操作可......
  • ESP32的JTAG调试方法
    ReportofJTAGIntroduction:Figuringoutabugthatiscausedbytwothreads,runningevensimultaneouslyontwodifferentCPUcores,cantakealongtimewhenallyouhaveareprintf()statements.Abetter(andinmanycasesquicker)waytodebugsuch......
  • pycharm的scrapy框架-断点调试
    在文件根目录,也就是settings.py的上级目录,scrapy.cfg的同级目录,创建main.py:fromscrapy.cmdlineimportexecuteimportosimportsysif__name__=='__main__':sys.path.append(os.path.dirname(os.path.abspath(__file__)))execute(['scrapy','crawl......
  • Grafana 汉化调试(四)
    Grafana汉化调试(四)Grafana最新的9.5.2版本现在已经支持中文了,不用再安装插件去汉化了1、首先进入用户的个人资料2、把语言类型修改成“中文(简体)”3、保存修改4、这是发现界面已经变成中文了......
  • 关于荣耀X40打开USB调试之后仍然无法连接adb
    解决方案:1-打开开发者选项关于手机-多次点击版本号-提示您正处于开发者选项模式2-进入系统和更新-点击开发人员选项-开启USB调试备注:此时输出adbdevices可能无法连接,需要进一步进行设置3-选择USB配置,勾选RNDIS(USB以太网),会弹出......
  • 一分钟搭建 Web 版的 PHP 代码调试利器
    引言俗话说:"工欲善其事,必先利其器"。作为一门程序员,我们在工作中,经常需要调试某一片段的代码,但是又不想打开繁重的IDE(代码编辑器)。使用在线工具调试代码有时有苦于网速太渣,运行结果迟迟出不来。在这种情况下,我们就需要一个离线版的代码调试神奇了,所以我今天就介绍一款PHP代码......
  • nodejs调试工具
    Node应用调试工具debugger文档 http://nodejs.org/api/debugger.html内置的调试工具,支持基本的断点功能NodeInspector主页 https://github.com/node-inspector/node-inspector通过BlinkDeveloperTools提供的网页版JS调试工具来调试Node程序.NodeEclipse主页 http:......