本文基于ubuntu18.04进行操,作说明如何通过Jtag adpter oocdlink连接esp8266,并通过openocd进行调试。
简述
手上有一片oocdlink和esp-12模块,因此想通过Openocd连接esp8266进行调试,在网上查阅资料后发现可行,将过程记录。
oocdlink使用FTDI的FT2232作为住芯片,理论上来说只要openocd支援的FTDI 芯片的jtag adapter都可以使用该方法进行连接。
硬件准备
我的Jtag-adpter是很久以前的oocdlink,现在网上已经找不到原理图了,jtag口的标准的按照下面方式和esp-12模块进行连接即可
JTAG signal TMS ==> ESP8266 GPIO 14
JTAG signal TDI ==> ESP8266 GPIO 12
JTAG signal TCK ==> ESP8266 GPIO 13
JTAG signal TDO ==> ESP8266 GPIO 15
JTAG signal RST ==> ESP8266 GPIO RST
下面是esp12的原理图
Openocd for esp8266
下载openocd for esp8266代码
git clone https://github.com/sysprogs/esp8266-openocd.git ~/work/build/esp8266-openocd-master
安装依赖
1 | sudo apt-get install libtool autoconf texinfo libusb-1.* |
编译
1 | sudo ./configure --enable-ftdi --disable-werror |
使用
Interface配置
信息查看
Ubuntu自带FT2232的驱动,将JTAG Adapter oocdlink连接PC上执行下面命令
1 | dmesg | tail |
看到下面的字样说明pc已经识别到ooclink,ttyUSB0是用于JTAG调试,ttyUSB1是USB串口
1 | [ 3878.302137] usbcore: registered new interface driver usbserial_generic |
执行下面命令查看VID/PID
1 | lsusb |
会列出所有的USB信息,可以看到FT2232的VID/PID是0403:6010
1 | Bus 002 Device 004: ID 17ef:4811 Lenovo Integrated Webcam [R5U877] |
配置文件修改
以oocdlink为蓝本创建新的配置文件
1 | cd ~/work/build/esp8266-openocd-master/tcl/interface/ftdi/ |
按照前面的vendor码进行修改,修改后的esplink.cfg如下:
1 | interface ftdi |
连接
在终端中执行
1 | cd ~/work/build/esp8266-openocd-master/ |
看到如下说明oocdlink连接esp12成功
1 | Open On-Chip Debugger 0.9.0 (2018-06-25-22:16) |
调试
openocd的调试可以用两种方式连接,连接成功后的debug方式可以参见openocd和gdb文档
1 | telnet localhost 4444 |
参考
https://visualgdb.com/tutorials/esp8266/nodemcu/jtag/
https://bbs.espressif.com/viewtopic.php?t=1666