ESP32 JTAG 調試 環境搭建

今天學習一下 ESP32JTAG 環境的搭建,並在此記錄方便後面的使用

目錄

第一步 從源碼安裝 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

這樣 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拷貝到/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調試

你將有如下三個終端

三個終端中分別打開了 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 調試工具是開發者不可或缺的好東西。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章