ESP32 JTAG 调试 环境搭建

今天学习一下 ESP32JTAG 环境的搭建,并在此记录方便后面的使用

如果你使用 ESP-IDF v4.0 以上版本,并使用 install.sh 进行安装过,该安装会自动完成以下安装过程!!!!!

 

目录

第一步 从源码安装 openocd

获取openocd

安装编译依赖

构建 OpenOCD

设置 OPENOCD_SCRIPTS 环境变量

检查安装版本和路径

第二步 使用 GDB 进行调试

启动 OpenOCD

启动开发板和monitor监视器(可选)

配置gdb

开始Debug调试

第三步 使用 Eclipse 软件辅助调试


 

首先找到官方的介绍文档

https://docs.espressif.com/projects/esp-idf/zh_CN/latest/api-guides/jtag-debugging/index.html

这里我使用的是 ESP-WROVER-KIT 开发板,因为它板载了 JTAG 调试接口,无需使用外部的 JTAG 硬件适配器和额外的线缆来连接 JTAG 与 ESP32。ESP-WROVER-KIT 采用 FT2232H 提供的 JTAG 接口,可以稳定运行在 20 MHz 的时钟频率,外接的适配器很难达到这个速度。

 

第一步 从源码安装 openocd

获取openocd

cd ~/esp
git clone --recursive https://github.com/espressif/openocd-esp32.git

安装编译依赖

sudo apt-get install make
sudo apt-get install libtool
sudo apt-get install pkg-config
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install texinfo
sudo apt-get install libusb-1.0

构建 OpenOCD


配置和构建 OpenOCD 的流程如下:

cd ~/esp/openocd-esp32
./bootstrap
./configure
make

//如果没有安装其他的openocd 在执行下面安装
sudo make install

设置 OPENOCD_SCRIPTS 环境变量

这样 OpenOCD 才能找到配置文件

cd ~/esp/openocd-esp32
export OPENOCD_SCRIPTS=$PWD/tcl

推荐将环境变量写入 .sh 文件中,放到 etc/profile.d 目录下,这样就不需要每次使用前再设置环境变量了 

例如我在 etc/profile.d 目录下 创建了 esp32_tools.sh 文件 内容是:

#OPENOCD_SCRIPTS

export OPENOCD_SCRIPTS=~/esp/openocd-esp32/tcl

检查安装版本和路径

openocd --version

echo $OPENOCD_SCRIPTS

ESP32 JTAG 调试 环境搭建_第1张图片

这样 OPENOCD 环境就配置好了

 

第二步 使用 GDB 进行调试

启动 OpenOCD

连接JTAG

sudo openocd -f interface/ftdi/esp32_devkitj_v1.cfg -f board/esp-wroom-32.cfg

注意如果不是用sudo可能会出现失败的问题,启动 OpenOCD 之后要保持此窗口打开

补充:openocd需要使用usb,建议需要)把/usr/local/share/openocd/contrib/60-openocd.rules ( idf 4.0 自动安装的路径是  .espressif/tools/openocd-esp32/v0.10.0-esp32-20190708/openocd-esp32/share/openocd/contrib/60-openocd.rules ) 拷贝到 /etc/udev/rules.d ,这样openocd就有使用usb调试设备的权限了,不用每次sudo (配置完成后需要重启生效)

 

启动开发板和monitor监视器(可选)

连接好开发版,将JTAG相关的跳线帽连接好,正常下载启动,使用make -j4 flash monitor下载工程并打开的监视器,查看运行状态。

 

配置gdb

在你要调试的工程下面 创建一个初始化配置文件

当启动调试器时,通常需要提供几个配置参数和命令,为了避免每次都在命令行中逐行输入这些命令,我们可以新建一个配置文件,并将其命名为 gdbinit:

target remote :3333
set remote hardware-watchpoint-limit 2
mon reset halt
flushregs
thb app_main
c

 

然后运行在终端中输入以下内容,启动 GDB:

xtensa-esp32-elf-gdb -x gdbinit build/blink.elf

这里的 build/blink.elf 请切换到你工程的 elf 文件路径

 

开始Debug调试

你将有如下三个终端

ESP32 JTAG 调试 环境搭建_第2张图片

ESP32 JTAG 调试 环境搭建_第3张图片

ESP32 JTAG 调试 环境搭建_第4张图片

三个终端中分别打开了 make flash monitor 、 OPENOCD 和 GDB ,

至此就可以使用 GDB 指令开始愉快的调试了。(还可以使用 Eclipse 辅助,那就更愉快了)。

 

 

第三步 使用 Eclipse 软件辅助调试

GDB工具虽然好用,但是因为是命令行控制,工程比较大的时候,或者不够熟悉GDB的时候使用起来就有些麻烦了,那么有没有什么好的工具能够帮助我们快速的使用 JTAG 进行调试呢? 目前 ESP32支持使用 Eclipse 进行 JTAG Debug 进行调试。而且官方提供了教程。

在我的下一篇文章中,我会介绍我在 Eclipse 上配置使用 JTAG 工具 进行调试的过程 :

https://blog.csdn.net/gengyuchao/article/details/100136567

 

使用 JTAG 进行软件调试是非常方便的,能够帮助我们迅速的定位问题,找到解决方案。所以 JTAG 调试工具是开发者不可或缺的好东西。

你可能感兴趣的:(ESP,Linux,Eclipse)