ESPLink v1.0 (v1.2)
ESPLink 是 Muselab推出的专用于乐鑫的ESP系列芯片的调试工具,支持所有乐鑫的ESP系列芯片(ESP8266/ESP32/ESP32-S2/ESP32-C3/ESP32-S3等),支持串口烧录调试、拖拽烧录、JTAG调试,可极大提高开发测试的效率
兼容传统的串口使用,可使用esptool.py进行下载调试,举例如下:
$idf.py -p /dev/ttyACM0 flash monitor
$esptool.py --chip esp32c3 \
-p /dev/ttyACM0 \
-b 115200 \
--before=default_reset \
--after=hard_reset \
--no-stub \
write_flash \
--flash_mode dio \
--flash_freq 80m \
--flash_size 2MB \
0x0 esp32c3/bootloader.bin \
0x8000 esp32c3/partition-table.bin \
0x10000 esp32c3/blink_100.bin
板载的下载器ESPLink支持拖拽烧录,将开发板上电之后,PC将会出现一个名为ESPLink的虚拟U盘,此时只需将flash镜像文件拖拽至ESPLink虚拟U盘中,稍等片刻,即可自动完成烧录。此功能使得烧录无需依赖任何外部工具以及操作系统, 典型的使用场景列举如下:快速的原型验证、在云端服务器进行编译、然后在任意PC上烧录、或者在商业的产品中实现固件的快速升级。 注意:flash镜像文件为三个文件(bootloader.bin/partition-table.bin/app.bin)拼接而成,tools目录下提供了一个脚本以供使用,举例如下:
$./tools/esppad.sh
usage: esppad.sh esp8266/esp32/esp32s2/esp32c3/esp32s3 bootloader.bin partition-table.bin app.bin flash_image.bin
$./tools/esppad.sh esp32c3 bootloader.bin partition-table.bin app.bin flash_image.bin
$cp flash_image.bin /media/pi/ESPLink/
ESPLink 支持使用jtag调试ESP系列芯片, 可以方便的让您在系统崩溃时查找原因。具体使用说明如下:(以下以ESP32-C3为例)
$git clone https://github.com/espressif/openocd-esp32.git
$cd openocd-esp32
$./bootstrap
$./configure --enable-cmsis-dap
$make -j
$sudo make install
the efuse JTAG_SEL_ENABLE should be burned to enable the jtag function.
$espefuse.py -p /dev/ttyACM0 burn_efuse JTAG_SEL_ENABLE
set GPIO10 to 0 for choose the GPIO function to JTAG, then power on the board and execute the attach script
$sudo openocd -f tcl/interface/cmsis-dap.cfg -f tcl/target/esp32c3.cfg
Open On-Chip Debugger v0.10.0-esp32-20201202-30-gddf07692 (2021-03-22-16:48)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 10000 kHz
force hard breakpoints
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : CMSIS-DAP: SWD Supported
Info : CMSIS-DAP: JTAG Supported
Info : CMSIS-DAP: FW Version = 0255
Info : CMSIS-DAP: Serial# = 0800000100430028430000014e504332a5a5a5a597969908
Info : CMSIS-DAP: Interface Initialised (JTAG)
Info : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 1 TDO = 1 nTRST = 0 nRESET = 1
Info : CMSIS-DAP: Interface ready
Info : High speed (adapter_khz 10000) may be limited by adapter firmware.
Info : clock speed 10000 kHz
Info : cmsis-dap JTAG TLR_RESET
Info : cmsis-dap JTAG TLR_RESET
Info : JTAG tap: esp32c3.cpu tap/device found: 0x00005c25 (mfg: 0x612 (Espressif Systems), part: 0x0005, ver: 0x0)
Info : datacount=2 progbufsize=16
Info : Examined RISC-V core; found 1 harts
Info : hart 0: XLEN=32, misa=0x40101104
Info : Listening on port 3333 for gdb connections
when attach success, open another ternimal to debug, you can use gdb or telnet, explained separately as follows
$riscv32-esp-elf-gdb -ex 'target remote 127.0.0.1:3333' ./build/blink.elf
(gdb) info reg
(gdb) s
(gdb) continue
$telnet localhost 4444
>reset
>halt
>reg
>step
>reg pc
>resume
GND
,3V3
,5V
注意:3V3电源可使用软件控制上下电,以实现冷复位
,即将芯片完全下电再重新上电,命令如下
$./tools/esplink-tool -c power=1 #power-on
$./tools/esplink-tool -c power=0 #power-off
TCK
,TMS
,TDI
,TDO
TX
,RX
BOOT
用于令芯片进入Bootloader,拉低此引脚,然后复位芯片(冷复位或者热复位),即可进入Bootloader
RST
用于芯片的热复位
注意:ESPLink支持冷复位
(通过控制3V3电源)和热复位
(通过控制RST引脚)
$./tools/esplink-tool -c reset_mode=hot
$./tools/esplink-tool -c reset_mode=cold
esplink-tool 是为ESPLink设计的上位机程序,可实现目标芯片的探测、令目标芯片进入bootloader或者app,以及ESPLink的参数配置
$esplink-tool -h
usage: /home/pi/oss/ESPLink/tool/esplink-tool.arm [CONFIG]
-p | --probe probe chip
-e | --enter bootloader/app enter bootloader or app
-c | --config esplink config
-g | --gpio esplink gpio write/read
-w | --write write gpio
-r | --read read gpio
-m | --mode set gpio mode
-h | --help display help info
-- version 1.0 --