Documentation/esp32: Remove the rest of the OpenOCD text.

This information there is outdated and some of its content should be in
the board documentation and not the chip.

Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
This commit is contained in:
Abdelatif Guettouche 2021-07-26 21:43:42 +02:00 committed by saramonteiro
parent 18dd3973f0
commit 58a5e0744b

View File

@ -307,235 +307,6 @@ Bluetooth
Bluetooth is not currently supported.
Debugging with OpenOCD
======================
First you in need some debug environment which would be a JTAG emulator
and the ESP32 OpenOCD software which is available here:
https://github.com/espressif/openocd-esp32
OpenOCD Documentation
---------------------
There is on overview of the use of OpenOCD `here <https://dl.espressif.com/doc/esp-idf/latest/openocd.html>`.
This document is also available in `ESP-IDF source tree <https://github.com/espressif/esp-idf>`_
in ``docs`` directory.
OpenOCD Configuration File
--------------------------
A template ESP32 OpenOCD configuration file is provided in
ESP-IDF ``docs`` directory (``esp32.cfg``). Since you are not using
FreeRTOS, you will need to uncomment the line::
set ESP32_RTOS none
in the OpenOCD configuration file. You will also need to change
the source line from::
find interface/ftdi/tumpa.cfg
to reflect the physical JTAG adapter connected.
A copy of this OpenOCD configuration file available in the NuttX
source tree at ``nuttx/boards/xtensa/esp32/esp32-devkitc/scripts/esp32.cfg``.
It has these modifications:
- The referenced "set ESP32_RTOS none" line has been uncommented
- The "find interface/ftdi/tumpa.cfg" was removed. This means that you will
need to specify the interface configuration file on the OpenOCD
command line.
Another OpenOCD configuration file is available in the NuttX source tree at
``nuttx/boards/xtensa/esp32/esp32-devkitc/scripts/esp32-ft232h.cfg``.
It has been tested with:
- `ESP32-DevKitC V4 <https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/get-started-devkitc.html>`_
- Akizukidenshi's FT232HL, a FT232H based JTAG adapter
(http://akizukidenshi.com/catalog/g/gK-06503/) with JP3 and JP4 closed,
and connected to ESP32 as:
+------------------+-------------+
| ESP32-DevKitC V4 | FT232HL |
+=======+==========+=============+
| J2 | J3 | J2 |
+-------+----------+-------------+
| IO13 | | AD0 (TCK) |
+-------+----------+-------------+
| IO12 | | AD1 (TDI) |
+-------+----------+-------------+
| | IO15 | AD2 (TDO) |
+-------+----------+-------------+
| IO14 | | AD3 (TMS) |
+-------+----------+-------------+
| GND | | GND |
+-------+----------+-------------+
The following version of OpenOCD from ESP-IDF (macOS version)::
% openocd --version
Open On-Chip Debugger v0.10.0-esp32-20191114 (2019-11-14-14:19)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
General OpenOCD build instructions
----------------------------------
Installing OpenOCD. The sources for the ESP32-enabled variant of
OpenOCD are available from Espressifs GitHub. To download the source,
use the following commands:
.. code-block:: console
$ git clone https://github.com/espressif/openocd-esp32.git
$ cd openocd-esp32
$ git submodule init
$ git submodule update
Then look at the README and the docs/INSTALL.txt files in the
openocd-esp32 directory for further instructions. There area
separate README files for Linux/Cygwin, macOS, and Windows. Here
is what I ended up doing (under Linux):
.. code-block:: console
$ cd openocd-esp32
$ ./bootstrap
$ ./configure
$ make
If you do not do the install step, then you will have a localhost
version of the OpenOCD binary at ``openocd-esp32/src``.
Starting the OpenOCD Server
---------------------------
- cd to openocd-esp32 directory
- copy the modified esp32.cfg script to this directory
Then start OpenOCD by executing a command like the following. Here
I assume that:
- You did not install OpenOCD; binaries are available at
openocd-esp32/src and interface scripts are in
openocd-esp32/tcl/interface
- I select the configuration for the Olimex ARM-USB-OCD
debugger.
Then the command to start OpenOCD is:
.. code-block:: console
$ ./src/openocd -s ./tcl -f tcl/interface/ftdi/olimex-arm-usb-ocd.cfg -f ./esp32.cfg
I then see::
Open On-Chip Debugger 0.10.0-dev-g3098897 (2016-11-14-12:19)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 200 kHz
force hard breakpoints
Info : clock speed 200 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: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : esp32.cpu0: Debug controller was reset (pwrstat=0x5F, after clear 0x0F).
Info : esp32.cpu0: Core was reset (pwrstat=0x5F, after clear 0x0F).
Connecting a debugger to OpenOCD
--------------------------------
OpenOCD should now be ready to accept gdb connections. If you have
compiled the ESP32 toolchain using Crosstool-NG, or if you have
downloaded a precompiled toolchain from the Espressif website, you
should already have xtensa-esp32-elf-gdb, a version of gdb that can
be used for this
First, make sure the project you want to debug is compiled and
flashed into the ESP32s SPI flash. Then, in a different console
than OpenOCD is running in, invoke gdb. For example, for the
template app, you would do this like such::
.. code-block:: console
$ cd nuttx
$ xtensa-esp32-elf-gdb -ex 'target remote localhost:3333' nuttx
This should give you a gdb prompt.
Breakpoints
-----------
You can set up to 2 hardware breakpoints, which can be anywhere in the
address space. Also 2 hardware watchpoints.
The openocd esp32.cfg file currently forces gdb to use hardware
breakpoints, I believe because software breakpoints (or, at least, the
memory map for automatically choosing them) aren't implemented yet
(as of 2016-11-14).
JTAG Emulator
-------------
The documentation indicates that you need to use an external JTAG
like the TIAO USB Multi-protocol Adapter and the Flyswatter2.
The instructions at http://www.esp32.com/viewtopic.php?t=381 show
use of an FTDI C232HM-DDHSL-0 USB 2.0 high speed to MPSSE cable.
The ESP32 DevkitC v4 board has no on board JTAG connector. It will
be necessary to make a cable or some other board to connect a JTAG
emulator. Refer to http://www.esp32.com/viewtopic.php?t=381 "How
to debug ESP32 with JTAG / OpenOCD / GDB 1st part connect the
hardware."
Relevant pin-out:
========= =============
PIN LABEL JTAG FUNCTION
========= =============
IO14 TMS
IO12 TDI
GND GND
IO13 TCK
x x
IO15 TDO
========= =============
You can find the mapping of JTAG signals to ESP32 GPIO numbers in
"ESP32 Pin List" document found
`here <http://espressif.com/en/support/download/documents?keys=&field_type_tid%5B%5D=13>`_.
I put the ESP32 on a prototyping board and used a standard JTAG 20-pin
connector with an older Olimex JTAG that I had. Here is how I wired
the 20-pin connector:
===================== ===============
20-PIN JTAG CONNECTOR ESP32 PIN LABEL
===================== ===============
1 VREF INPUT 3V3
3 nTRST OUTPUT N/C
5 TDI OUTPUT IO12
7 TMS OUTPUT IO14
9 TCLK OUTPUT IO13
11 RTCK INPUT N/C
13 TDO INPUT IO15
15 RESET I/O N/C
17 DBGRQ OUTPUT N/C
19 5V OUTPUT N/C
2 VCC INPUT 3V3
4 GND N/A GND
6 GND N/A GND
8 GND N/A GND
10 GND N/A GND
12 GND N/A GND
14 GND N/A GND
16 GND N/A GND
18 GND N/A GND
20 GND N/A GND
===================== ===============
Using QEMU
==========