06-vscode+espidf开发调试方法(内置JTAG调试)

使用VS Code和ESP-IDF进行ESP32开发和调试

在我们搭建 IDF 框架后,OpenOCD 已经自动下载好了, 我们通过 JTAG 接口连接使用 OpenOCD 进行调试。而ESP32芯片中内置 了JTAG 电路,无需额外芯片即可调试,更加方便,所以这里我们讲解使用模块自带的usb-jtag接口进行调试。

OpenOCD 配置文件

用 VSCode 打开待调试的项目文件夹,在项目文件夹中的.VSCode 文件夹内编辑launch.json文件,直接替换原本 launch.json 文件的内容修改为以下

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "GDB",
      "type": "cppdbg",
      "request": "launch",
      "MIMode": "gdb",
      "miDebuggerPath": "${command:espIdf.getXtensaGdb}",
      "program": "${workspaceFolder}/build/${command:espIdf.getProjectName}.elf",
      "windows": {
        "program": "${workspaceFolder}\\build\\${command:espIdf.getProjectName}.elf"
      },
      "cwd": "${workspaceFolder}",
      "environment": [{ "name": "PATH", "value": "${config:idf.customExtraPaths}" }],
      "setupCommands": [
        { "text": "target remote :3333" },
        { "text": "set remote hardware-watchpoint-limit 2"},
        { "text": "mon reset halt" },
        { "text": "thb app_main" },
        { "text": "flushregs" }
      ],
      "externalConsole": false,
      "logging": {
        "engineLogging": true
      }
    }
  ]
}

这里的名字可以自行修改
在这里插入图片描述

接下来,我们需要将ESP32-S3开发板通过USB接口连接到电脑。如果使用外部的ESP-Prog进行调试,需要将ESP-Prog通过USB连接到电脑。

设置调试信息

在VS Code中,我们需要进行以下设置:
在这里插入图片描述

  1. 设置串口端口号,如COM10。
  2. 选择芯片型号,如ESP32-S3 (ESP-PROG JTAG)
  3. 选择 JTAG 接口进行调试。

开启 OpenOCD

在 VS Code 软件下方有一个“OpenOCD Server”选择,点击。
在这里插入图片描述
选择顶部列表的第一个
在这里插入图片描述

运行和烧录

接下来,我们可以进行编译和烧录:

  1. 点击VS Code底栏的编译图标,等待编译完成。
  2. 点击VS Code底栏的烧录图标,然后等待烧录完成。

调试

最后,我们可以进行调试:

在 VSCode 左侧菜单栏中选择“运行和调试”,点击运行配置好的 GDB 文件
在这里插入图片描述

单步调试

  1. 在程序上打一个断点,然后点击左上角的开始按钮(或者点击F5)
    在这里插入图片描述
  2. 把变量添加到监视窗口、单步调试和停止调试
    在这里插入图片描述
  3. 停止openocd,依然是点击底栏的openocd配置图标,然后点击Stop Openocd Running
    在这里插入图片描述

结语

以上就是使用VS Code和ESP-IDF进行ESP32开发和调试的基本步骤。更加详细的内容可以去看看乐鑫公司的官方文档Visual Studio Code 调试的配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/556250.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu下交叉编译ffmpeg到目标架构为aarch架构的系统

Ubuntu下FFmpeg的aarch64-linux-gnu架构交叉编译教程 一、前言 有时候真的很想报警的,嵌入式算法部署花了好多时间了,RKNN 1808真是问题不少;甲方那边也是老是提新要求,真是受不了。 由于做目标检测,在C代码中有对视…

Maven的dependencyManagement与dependencies区别

先说结论:Maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式。 在maven多模块项目的pom文件中,有的小伙伴会发现最外层的pom文件和里面的pom文件有个地方不一样 如下图 父pom 子pom 一般来说是在maven的最外父工程pom文件里&…

压缩感知的概述梳理(4)

参考文献 A novel triple-image encryption and hiding algorithm based on chaos, compressive sensing and 3D DCT 文献内容 分析 结构 压缩感知 (CS) 的核心要素与流程 信号 x 长度:N表示法:(x \sum_{i1}^N u_i s_i) (u_i):正交基的第…

阿里云服务器上配置Docker 以及常用命令讲解

目录 一、认识docer二、在阿里云服务器上配置Docker三、底层原理4、常用命令(1)Docker中常见镜像命令(2)Docker中常见容器命令(3)日志查看命令(4)进入容器的命令与拷贝命令 一、认识…

Docker容器嵌入式开发:在Ubuntu上配置RStudio与R语言、可视化操作

目录 一、dirmngr工具二、R环境安装与配置三、验证是否安装成功四、安装Rstudio五、可视化操作参考 以上是在Ubuntu 18.04上安装最新版本的R语言环境的步骤摘要。首先,通过添加CRAN镜像源并安装GPG密钥来配置软件源。然后,更新软件包列表并通过apt安装R语…

svn使用(上传自己的项目到svn上)

安卓开发工具版本 创建项目后,首先在.gitgnore文件里面加入你要过滤的文件路径 然后点击VCS——》share Project,然后下一步选择一个svn路径,点击确定后。然后将代码提交。

团体程序设计天梯赛 往年关键真题 详细分析完整AC代码】L2-014 列车调度 STL L2-015 互评成绩 排序

【团体程序设计天梯赛 往年关键真题 详细分析&完整AC代码】搞懂了赛场上拿下就稳 【团体程序设计天梯赛 往年关键真题 25分题合集 详细分析&完整AC代码】(L2-001 - L2-024)搞懂了赛场上拿下就稳了 【团体程序设计天梯赛 往年关键真题 25分题合…

.NET 爬虫从入门到入狱

目录 前言 1.💡使用HttpClient爬取数据 2.🚀模拟User-Agent 3.🤵使用HTML解析库 3.👌前端Price显示 4.🌱运行实例 获取金价Au 5.🧾使用正则表达式解析 6.💫获取BTC价格 7.✨获取CSDN热点…

界面组件Telerik UI for WPF 2024 Q1新版亮点 - 全新DateRangePicker组件

Telerik UI for WPF拥有超过100个控件来创建美观、高性能的桌面应用程序,同时还能快速构建企业级办公WPF应用程序。UI for WPF支持MVVM、触摸等,创建的应用程序可靠且结构良好,非常容易维护,其直观的API将无缝地集成Visual Studio…

解决 vue install 引发的 failed Error: not found: python2 问题

发生 install 异常时,提示信息如下所示: npm ERR! code 1 npm ERR! path U:\cnblogs\fanfengping-dtops\fanfengping-dtops-front\node_modules\node-sass npm ERR! command failed npm ERR! command U:\Windows\system32\cmd.exe /d /s /c node scripts…

公网IP多少钱可以购买?

公网IP是指可以在全球范围内访问和识别的唯一IP地址。对于许多企业和个人用户来说,公网IP是实现远程访问、搭建服务器、建立安全连接等重要需求的基础。公网IP的获取并不是免费的,并且价格因供应商和地区而异。 现有公网IP市场 当前,市场上有…

STM32之不使用MicroLIB

一、microlib介绍 microlib 是缺省 C 库的备选库,功能上不具备某些 ISO C 特性。 microlib 进行了高度优化以使代码变得很小,功能比缺省 C 库少,用于必须在极少量内存环境下运行的深层嵌入式应用程序。 二、不使用microlib的原因 由于microlib不支持C++开发,因此在使用C…

PLC怎么接入互联网

几十年来,PLC都是用于现场设备的自动化控制。随着移动互联网技术的发展,移动办公的便捷性使PLC联网进行远程监控操作的需求越来越多。那PLC怎么接入互联网呢? PLC的通讯基本都是基于现场的通讯,无论是RS485,RS232还是 TCP协议&am…

传统外呼吃力不讨好?AI智能外呼降低85%人力成本!

前几天有电商的客户来咨询,他们每逢大促客服压力就激增,主要原因就是客服人员少,遇到这种高峰期根本来不及打电话,招新人的话培训时间长,算下来人力成本相当高。因此他们想借助智能外呼看能否解决这个难题。这种时候就…

【3GPP】【核心网】【LTE】史上最全 闲时被叫CSFB 深度分析

3.2 闲时被叫CSFB 3.2.1 闲时被叫CSFB基本流程 被叫CSFB消息附近通常有一条Paging寻呼,然后进行CSFB流程: (1)UE向MME发起拓展服务请求,同时上报TMSI和承载状态,该条消息的服务类型字段中会区分主/被叫&a…

风险解码:数字技术如何重塑风控游戏规则?

“IT有得聊”是机械工业出版社旗下IT专业资讯和服务平台,致力于帮助读者在广义的IT领域里,掌握更专业、更实用的知识与技能,快速提升职场竞争力。 点击蓝色微信名可快速关注我们! 数字风控概述 从2007年开始到2014年左右&#xf…

【GoWeb框架初探————Gin篇】

1. Gin 1.1 下载相应依赖 创建go项目,在项目下建立go.mod文件(若有则跳过) 命令行运行 go get github.com/gin-gonic/gin1.2 启动一个简单Web服务 package mainimport ("github.com/gin-gonic/gin""github.com/thinkerou/…

️️️Vue3+Element-Plus二次封装一个可定制化的table组件

前言 为什么需要二次封装 开发后台管理系统,会接触到很多表格和表单,一但表格表单多起来,仅仅只需要一小部分改变,都需要在中重写一大堆代码,许多重复逻辑,我们可以把重复逻辑抽离出来二次封装一个组件 使用,减少在开发中需要编写的代码。 为什么需要定制化 每个…

Springboot Gateway 报错Failed to resolve “bogon”的原因及解决办法

一、问题出现原因及初步分析 今天遇到一个奇怪的错误,一个一直正确运行的微服务后台,突然无法访问,如何重启都会报错。 想到近期有人在服务器上安装过其它服务,因此,考虑可能是配置问题,可配置问题修复后…

Ubuntu 传输文件

scp [选项] 源文件 目标路径 以下是一些常用的 scp 命令选项: -r:递归复制目录和子目录。 -P:指定远程 SSH 服务器的端口号。 -i:指定用于身份验证的私钥文件。 -p:保留源文件的时间戳、权限和所有者。 -v&#x…