前期准备:
硬件:
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
出现以下界面即可: