ESP32S3学习笔记(0)—— Vscode IDF环境搭建及OpenOCD调试介绍

本文详细描述了如何从零开始搭建ESP32S3的VSCode开发环境,包括ESP-IDF的下载与安装、OpenOCD的配置,以及使用步骤。还包括了新工程创建、烧录与调试的方法,以及ESP32S3反汇编工具的使用指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

(1)如果有嵌入式企业需要招聘湖南区域日常实习生,任何区域的暑假Linux驱动/单片机/RTOS的实习岗位,可C站直接私聊,或者邮件:zhangyixu02@gmail.com,此消息至2025年1月1日前均有效
(2)之前学习ESP32S3都是找的各种资料自学,并不系统。因此购买了正点原子的ESP32S3开发板,跟着教程系统性的学习一遍。
(3)事先叠甲,搭建Vscode的ESP-IDF开发环境部分基本照搬正点原子的手册教程。而OpenOCD部分,因正点原子手册写的并不那么详细,所以我进行了更详细的说明。

搭建Vscode的ESP-IDF开发环境

下载ESP-IDF

(1)进入乐鑫官方 Windows 安装下载中心找到V5.1.2版本进行下载。
因为本人是按照正点原子的教程来进行学习的。据说其他版本的IDF可能导致部分例程跑不了,因此重新安装IDF。

在这里插入图片描述

(2)下载完成之后,以管理员身份运行

在这里插入图片描述

(3)打开安装程序后选择简体中文安装,如下图所示:

在这里插入图片描述

(4)往下走就是许可协议, 勾选“我同意此协议” ,单击下一步,如下图所示:

在这里插入图片描述

(5)如果是第一次安装,会出现如下图提示。点击应用修复即可。

在这里插入图片描述

(6)出现如下画面表示修复成功,点击下一步。

在这里插入图片描述

(7)如果修复失败,进行如下操作:
<1>通过如下方式打开注册表编辑器

在这里插入图片描述

<2>在注册表编辑器里面,在HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\中找到LongPathsEnabled

在这里插入图片描述

(8)设置安装路径,之后都是下一步。

在这里插入图片描述

(9)安装完成之后,系统自动打开两个窗口,它们分别为 PowerShell 命令行和传统的cmd 命令行窗口。在cmd命令窗口中输入下面这两条指令

cd examples\get-started\hello_world
idf.py build

(10)最终编译结果如下,表示IDF安装完成

在这里插入图片描述

(11)通过如下方法打开编辑系统环境变量。
<1>

在这里插入图片描述

<2>

在这里插入图片描述

<3>如果 ESP32-IDF 库安装成功,则系统自动为我们添加上图中的IDF_TOOLS_PATHIDF_PATH 环境变量,否则手动添加这两个环境变量。

在这里插入图片描述

下载与安装 VSCode

(1)阅读VSCode安装配置使用教程(最新版超详细保姆级含插件)一文就够了

添加扩展

(1)进入扩展商店

在这里插入图片描述

(2)找到IDF,安装

在这里插入图片描述

(3)按ctrl+shift+p ,输入Configure ESP-IDF

在这里插入图片描述

(4)选择第二个

在这里插入图片描述

(5)第二步的IDF_TOOLS_PATH需要注意。
<1>这个是上面的ESP-IDF安装路径

在这里插入图片描述

<2>在这个安装路径后面加上\tools的值写入IDF_TOOLS_PATH

在这里插入图片描述

(6)完成上面两步配置之后,点击install。然后选择下载ESP-IDF Tools

在这里插入图片描述

(7)安装完成提示下面这个

在这里插入图片描述

OpenOCD使用教程

新建工程

(1)输入Ctrl+Shift+P打开命令面板,输入New Project

在这里插入图片描述

(2)输入工程名,工程路径,选择芯片型号,端口。

在这里插入图片描述

(3)按照如下步骤创建一个简单模板工程

在这里插入图片描述

(4)在main.c里面输入如下代码

#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"

void app_main(void)
{
    uint32_t i = 0;
    printf("-------------------------------------\n");
    printf("---www.zyxbeyourself.blog.csdn.net---\n");
    printf("-------------------------------------\n");
    printf("--------zhangyixu02@gmail.com--------\n");
    printf("-------------------------------------\n");
    while(1)
    {
        i++;
        printf("Restarting in %ld seconds...\n", i);
        vTaskDelay(1000 / portTICK_PERIOD_MS);
    }
}

(5)烧录程序。注意,如果是正点原子的开发板,要接UART口烧录程序。
(6)打开串口助手,波特率115200。显示如下

在这里插入图片描述

项目调试

配置launch.json

(1)打开.vscode文件夹下的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": "set remotetimeout 100" },
        { "text": "target extended-remote :3333" },
        { "text": "set remote hardware-watchpoint-limit 2"},
        { "text": "mon reset halt" },
        { "text": "thb app_main" },
        { "text": "flushregs" }
        ],
        "externalConsole": false,
        "logging": {
        "engineLogging": true
        }
    }
    ]
}

配置settings.json

(1)打开.vscode文件夹下的settings.json。将原来的idf.openOcdConfigs注释,修改为如下代码。

在这里插入图片描述

"idf.openOcdConfigs": [
    "board/esp32s3-builtin.cfg"
],

硬件连接

(1)此时需要使用TypeC接口接上开发板上的USB接口,也就是IO20IO19引脚。

在这里插入图片描述

(2)因为本次测试中存在串口打印。因此开发板的UART也需要连接上。因此最终接线如下

在这里插入图片描述

开始调试

(1)按照下图方式打开GDB调试

在这里插入图片描述

(2)此时串口工具打印如下信息
注意:此时不能使用Vscode自带的串口工具,因为GDB调试和串口工具无法在Vscode中同时运行。

在这里插入图片描述

(3)Vscode中的界面如下

在这里插入图片描述

(4)我们现在只需要知道。按下F10是逐过程调试,F11是逐步调试,Shift+F11是单步跳出,F5是全速跑,F6是暂停,Ctrl + F5是退出调试。即可实现调试功能了。

ESP32S3反汇编工具使用

(1)在terminal中输入如下命令即可

xtensa-esp32s3-elf-objdump -d your_executable.elf > assembly_code.asm

参考

(1)DNESP32S3使用指南-IDF版_V1.1.pdf
(2)VSCode安装配置使用教程(最新版超详细保姆级含插件)一文就够了

### ESP32 使用 OpenOCD 进行调试的配置教程 #### 准备工作 为了成功设置并运行 OpenOCD调试 ESP32 设备,需先安装必要的软件包。对于 Linux 用户来说,可以从源码编译特定支持 JTAG 的 OpenOCD 版本[^3]。 #### 安装 OpenOCD 建议从官方仓库获取最新版本的 `openocd-esp32` 分支来获得最佳兼容性和功能特性。此分支包含了针对 ESP32 平台优化过的补丁和支持文件。 #### 配置启动脚本 创建或编辑启动脚本来简化每次调用命令的过程。通常情况下会包含如下参数: ```bash openocd -f interface/ftdi/[your_jtag_adapter].cfg \ -f board/esp-wroom-32.cfg ``` 请注意上述路径中的 `[your_jtag_adapter]` 和 `-f board/esp-wroom-32.cfg` 应当依据个人实际情况作出相应修改[^2]。 #### 设置 GDB 断点与日志级别 通过调整日志等级可以帮助开发者更好地理解程序执行流程以及定位潜在问题所在。例如,在应用程序中加入以下宏定义可实现不同级别的消息输出: - `ESP_LOGE(tag, format, ...)` —— 记录错误信息; - `ESP_LOGW(tag, format, ...)` —— 发布警告通知; - `ESP_LOGD(tag, format, ...)` —— 提供详细的调试数据; - `ESP_LOGV(tag, format, ...)` —— 展示最详尽的日志记录; 这些函数允许指定标签 (`tag`) 以便于分类管理来自各个模块的消息流,并且可以根据需求灵活控制显示的内容范围[^4]。 #### 启动调试会话 完成以上准备工作之后就可以利用 GDB 或者其他 IDE 工具连接到正在运行的 OpenOCD 实例上开始正式的调试过程了。确保目标设备已正确接入计算机并通过串口线缆供电正常工作。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风正豪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值