ESP32调试工具与调试环境搭建 -- 单核芯片

在ESP32官网上有使用JTAG进行调试的详细介绍:ESP32 JTAG 调试。其中使用的例子是 ESP-WROVER-KIT 开发板,板载的是双核ESP32芯片。对于 ESP32-DevKitM-1开发板,板载的是单核芯片,调试时OpenOCD的配置需要做一些相应的改动。

先看看ESP-WROVER-KIT 开发板的配置、调试过程。

JTAG与目标板连接需要5根线,其中4个是JTAG信号线、1个是GND:


图一

参考链接:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/api-guides/jtag-debugging/configure-ft2232h-jtag.html


图二

JTAG连接完毕后,先运行OpenOCD、相当于启动了一个代理目标板的GDB-SERVER:

    openocd -f board/esp32-wrover-kit-3.3v.cfg

OpenOCD运行时需要2个必须的参数:JTAG的interface配置文件和目标芯片的target配置文件。上面的 esp32-wrover-kit-3.3v.cfg 文件实际上是interface和target的集合,其内容如下:

# Source the JTAG interface configuration file

source [find interface/ftdi/esp32_devkitj_v1.cfg]

set ESP32_FLASH_VOLTAGE 3.3

# Source the ESP32 configuration file

source [find target/esp32.cfg]

它调用了ftdi子目录下的 esp32_devkitj_v1.cfg(乐鑫的JTAG配置文件)和 esp32.cfg(ESP32双核芯片通用配置文件),所以OpenOCD形式上调用了一个cfg配置,实际上还是调用了2个cfg配置文件。

对于单核的 ESP32-DevKitM-1开发板,如果仍使用:

    openocd -f board/esp32-wrover-kit-3.3v.cfg

来调试,得到出错信息:

Open On-Chip Debugger v0.10.0-esp32-20200709 (2020-07-09-08:54)

Licensed under GNU GPL v2

For bug reports, read

        http://openocd.org/doc/doxygen/bugs.html

Info : Configured 2 cores

Info : Listening on port 6666 for tcl connections

Info : Listening on port 4444 for telnet connections

Info : ftdi: if you experience problems at higher adapter clocks, try the command "ftdi_tdo_sample_edge falling"

Info : clock speed 20000 kHz

Info : JTAG tap: esp32.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)

Info : JTAG tap: esp32.cpu1 tap/device found: 0xffffffff (mfg: 0x7ff (<invalid>), part: 0xffff, ver: 0xf)

Warn : JTAG tap: esp32.cpu1      UNEXPECTED: 0xffffffff (mfg: 0x7ff (<invalid>), part: 0xffff, ver: 0xf)

Error: JTAG tap: esp32.cpu1  expected 1 of 1: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)

Error: Trying to use configured scan chain anyway...

Error: esp32.cpu1: IR capture error; saw 0x1f not 0x01

Warn : Bypassing JTAG setup events due to errors

Info : Listening on port 3333 for gdb connections

提示 cpu1有关信息错误!实际上单核ESP32芯片上没有cpu1、出错是必然的。说明cfg配置文件出错了,需要修改 esp32-wrover-kit-3.3v.cfg,把target中的双核改为单核(JTAG的interface不用修改)。查看 esp32.cfg 所在目录:

a-user@ubuntu:~/.espressif/tools/openocd-esp32/v0.10.0-esp32-20200709/openocd-esp32/share/openocd/scripts/target$ ls esp*.cfg -l

-rw-r--r-- 1 patrick patrick 1881 Jul  9  2020 esp32.cfg

-rw-r--r-- 1 patrick patrick  967 Jul  9  2020 esp32s2.cfg

-rw-r--r-- 1 patrick patrick  185 Jul  9  2020 esp32-solo-1.cfg

-rw-r--r-- 1 patrick patrick 3409 Jul  9  2020 esp_common.cfg

其中的 esp32-solo-1.cfg 就是针对单核芯片的cfg配置文件,乐鑫已经为我们准备好了,我们直接使用就行。仿照 esp32-wrover-kit-3.3v.cfg,在board目录下编写一个针对 ESP32-DevKitM-1开发板的配置文件:

a-user@ubuntu:~/.espressif/tools/openocd-esp32/v0.10.0-esp32-20200709/openocd-esp32/share/openocd/scripts/board$ more esp32-DevKitM-1.cfg

# Source the JTAG interface configuration file

source [find interface/ftdi/esp32_devkitj_v1.cfg]

set ESP32_FLASH_VOLTAGE 3.3

# Source the ESP32 configuration file

source [find target/esp32-solo-1.cfg]

用 target/esp32-solo-1.cfg 替换 target/esp32.cfg。再次启动OpenOCD:

    openocd -f board/esp32-DevKitM-1.cfg

显示:

Licensed under GNU GPL v2

For bug reports, read

        http://openocd.org/doc/doxygen/bugs.html

Info : Configured 1 cores

Info : Listening on port 6666 for tcl connections

Info : Listening on port 4444 for telnet connections

Info : ftdi: if you experience problems at higher adapter clocks, try the command "ftdi_tdo_sample_edge falling"

Info : clock speed 20000 kHz

Info : JTAG tap: esp32.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)

Info : Listening on port 3333 for gdb connections

不再出现错误,GDB-CLIENT可以连接OpenOCD并进行断点调试了(略)。


【海东青电子原创文章,转载请注明出处:https://www.jianshu.com/p/34843c3c3930

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,829评论 1 331
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,603评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,846评论 0 226
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,600评论 0 191
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,780评论 3 272
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,695评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,136评论 2 293
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,862评论 0 182
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,453评论 0 229
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,942评论 2 233
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,347评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,790评论 2 236
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,293评论 3 221
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,839评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,448评论 0 181
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,564评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,623评论 2 249

推荐阅读更多精彩内容