Ubuntu下ESP32系列模组(带USB Serial/JTAG Controller)的jtag调试环境搭建

本文详细介绍了如何在Ubuntu环境下配置ESP32S3开发板,包括连接硬件、安装OpenOCD工具、解决USB和JTAG连接问题,以便进行JTAG调试。

前期准备:

硬件:
1、两根usb转接线,用于开发板的uart和usb与PC端连接
2、一款带USB 串口/JTAG 控制器功能的esp系列开发板,uart与usb接口都已接出 (初次调试建议使用官方开发板)
此处调试使用的开发板:
在这里插入图片描述

软件:
一个已经搭建好esp开发环境的Ubuntu(Ubuntu版本本质上没有限制),这样需要使用的openocd工具就已经默认安装好了



一、打开终端,并将esp-idf开发环境配置好

在这里插入图片描述


二、检查是否有OpenOCD工具

在终端下执行指令:openocd --version
在这里插入图片描述


二、启动 OpenOCD

在终端下执行指令:openocd -f board/esp32s3-builtin.cfg
-f 指令后跟的是不同开发板的配置文件,配置文件参考链接:根据目标芯片配置 OpenOCD
指令运行后出现以下Error:
在这里插入图片描述
出现此错误一般有两种情况:

2.1、usb口未接入Ubuntu中(解决方法自行领悟 )

2.2、ESP32-USB Serial/JTAG Controller 未挂载到Ubuntu下

2.2 解决方法:

2.2.1 查找60-openocd.rules文件,一般默认在 ~/.espressif/tools/openocd-esp32/v0.12.0-esp32-20230419/openocd-esp32/share/openocd/contrib路径下(v0.12.0-esp32-20230419需与查询的工具版本对应)
在这里插入图片描述

2.2.2 将60-openocd.rules文件拷贝到 /etc/udev/rules.d/ 目录下
在终端下执行以下指令:

sudo cp ~/.espressif/tools/openocd-esp32/v0.12.0-esp32-20230419/openocd-esp32/share/openocd/contrib60-openocd.rules 
	 /etc/udev/rules.d/						// 将60-openocd.rules文件拷贝到 /etc/udev/rules.d/ 目录下
sudo udevadm control --reload-rules 		// 修改udev后台的内部状态信息
sudo udevadm trigger               			// 从内核请求事件

2.2.2 回到示例目录下再次启动opencd
在终端下执行指令:openocd -f board/esp32s3-builtin.cfg
显示下图即启动成功:
在这里插入图片描述


三、开启jatg调试

保留2.2.2中的终端界面,开启另一个终端设置esp开发环境后并进入同一个目录下,将示例编译生成并通过串口烧录到开发板,然后在新开的终端运行指令:idf.py gdb 出现以下界面即可:
在这里插入图片描述


此时已经成功运行OpenOCD,可以愉快地开启jtag调试了 !

ESP32-S3 是乐鑫科技推出的一款支持 Wi-Fi 和 Bluetooth 5 (LE) 的 SoC,它集成了 Xtensa® LX7 双核架构,并支持多种调试接口,包括 USB JTAG/Serial Debug Unit。使用 USB JTAG/Serial Debug Unit 对 ESP32-S3 进行调试是一种高效的开发方式,尤其适用于需要深入硬件层面调试的场景。 ### 硬件连接 要使用 USB JTAG 调试 ESP32-S3,首先需要一个兼容的调试器,如 FT2232H 或 J-Link。ESP32-S3 支持通过 USB 接口直接进行 JTAG 调试,这意味着可以省去额外的 JTAG 接口电路。如果选择传统的 JTAG 接口,则需将调试器与 ESP32-S3 开发板上的 JTAG 引脚(TCK, TMS, TDI, TDO)正确连接[^1]。 ### 软件配置 安装必要的软件工具链是开始调试的前提。这包括但不限于: - **ESP-IDF**:乐鑫官方提供的开发框架,包含了构建、烧录和调试 ESP32-S3 应用所需的所有工具。 - **OpenOCD**:开源的片上调试器,用于提供 GDB 服务器功能,允许通过 GDB 对目标设备进行调试。 - **GDB (GNU Debugger)**:GNU 项目的一部分,用于执行调试命令。 在 ESP-IDF 环境中,可以通过以下命令启动 OpenOCD: ```bash openocd -f board/esp32-s3-builtin.cfg ``` 此命令会加载预定义的配置文件,该文件针对 ESP32-S3 的内置 JTAG 接口进行了优化。确保你的 OpenOCD 版本支持 ESP32-S3。 ### 调试操作 一旦 OpenOCD 成功运行,就可以使用 GDB 连接到目标设备。打开一个新的终端窗口并输入以下命令以启动 GDB 并连接到 OpenOCD 提供的服务: ```bash xtensa-esp32s3-elf-gdb path/to/your/application.elf (gdb) target remote :3333 ``` 这里假设 OpenOCD 使用的是默认端口号 3333。现在你可以像平常一样使用 GDB 命令来设置断点、查看变量值、单步执行等。 ### 高级特性 除了基本的调试功能外,ESP32-S3 还支持更高级的功能,比如条件断点、观察点以及内存映射查看等。这些功能可以通过 GDB 命令或者集成开发环境(IDE)中的图形界面来访问。 ### 注意事项 - 在进行 JTAG 调试之前,请确保开发板的电源供应稳定,且所有硬件连接都已正确无误地完成。 - 如果遇到通信问题,检查 JTAG 速度设置是否适合当前的硬件配置。 - 某些情况下可能需要更新或重新安装驱动程序,特别是当使用 Windows 操作系统时。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值