mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
docs: JTAG debugging update for ESP32C6
This commit is contained in:
parent
2f1d30d155
commit
7cb79db71e
@ -6,17 +6,6 @@ api-guides/performance/speed
|
||||
api-guides/performance/size
|
||||
api-guides/performance/ram-usage
|
||||
api-guides/performance/index
|
||||
api-guides/jtag-debugging
|
||||
api-guides/jtag-debugging/debugging-examples
|
||||
api-guides/jtag-debugging/configure-ft2232h-jtag
|
||||
api-guides/jtag-debugging/tips-and-quirks
|
||||
api-guides/jtag-debugging/using-debugger
|
||||
api-guides/jtag-debugging/building-openocd-macos
|
||||
api-guides/jtag-debugging/building-openocd-linux
|
||||
api-guides/jtag-debugging/configure-other-jtag
|
||||
api-guides/jtag-debugging/building-openocd-windows
|
||||
api-guides/jtag-debugging/index
|
||||
api-guides/jtag-debugging/configure-builtin-jtag
|
||||
api-guides/partition-tables
|
||||
api-guides/app_trace
|
||||
api-guides/thread-local-storage
|
||||
|
@ -6,8 +6,8 @@
|
||||
Configure {IDF_TARGET_NAME} built-in JTAG Interface
|
||||
===================================================
|
||||
|
||||
{IDF_TARGET_JTAG_PIN_Dneg:default="Not Updated!", esp32c3="GPIO18", esp32s3="GPIO19"}
|
||||
{IDF_TARGET_JTAG_PIN_Dpos:default="Not Updated!", esp32c3="GPIO19", esp32s3="GPIO20"}
|
||||
{IDF_TARGET_JTAG_PIN_Dneg:default="Not Updated!", esp32c3="GPIO18", esp32c6="GPIO12", esp32s3="GPIO19"}
|
||||
{IDF_TARGET_JTAG_PIN_Dpos:default="Not Updated!", esp32c3="GPIO19", esp32c6="GPIO13", esp32s3="GPIO20"}
|
||||
|
||||
{IDF_TARGET_NAME} has a built-in JTAG circuitry and can be debugged without any additional chip. Only an USB cable connected to the D+/D- pins is necessary. The necessary connections are shown in the following section.
|
||||
|
||||
|
@ -2,31 +2,25 @@ Configure Other JTAG Interfaces
|
||||
===============================
|
||||
:link_to_translation:`zh_CN:[中文]`
|
||||
|
||||
{IDF_TARGET_JTAG_SEL_EFUSE:default="Not Updated!", esp32s3="STRAP_JTAG_SEL", esp32c6="JTAG_SEL_ENABLE"}
|
||||
|
||||
For guidance about which JTAG interface to select when using OpenOCD with {IDF_TARGET_NAME}, refer to the section :ref:`jtag-debugging-selecting-jtag-adapter`. Then follow the configuration steps below to get it working.
|
||||
|
||||
|
||||
.. only:: SOC_USB_SERIAL_JTAG_SUPPORTED and not esp32c3
|
||||
.. only:: SOC_USB_SERIAL_JTAG_SUPPORTED
|
||||
|
||||
Configure eFuses
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
By default, {IDF_TARGET_NAME} JTAG interface is connected to the :doc:`built-in USB_SERIAL_JTAG peripheral <configure-builtin-jtag>`. To use an external JTAG adapter instead, you need to switch the JTAG interface to the GPIO pins. This can be done by burning eFuses using ``espefuse.py`` tool.
|
||||
|
||||
- Burning ``DIS_USB_JTAG`` eFuse will permanently disable the connection between USB_SERIAL_JTAG and the JTAG port of the CPU. JTAG interface can then be connected to |jtag-gpio-list|. Note that USB CDC functionality of USB_SERIAL_JTAG will still be usable, i.e., flashing and monitoring over USB CDC will still work.
|
||||
- Burning ``STRAP_JTAG_SEL`` eFuse will enable selection of JTAG interface by a strapping pin, |jtag-sel-gpio|. If the strapping pin is low when {IDF_TARGET_NAME} is reset, JTAG interface will use |jtag-gpio-list|. If the strapping pin is high, USB_SERIAL_JTAG will be used as the JTAG interface.
|
||||
.. only:: esp32c3
|
||||
|
||||
.. warning::
|
||||
Burning eFuses is an irreversible operation, so please consider the above options before starting the process.
|
||||
Burning ``DIS_USB_JTAG`` eFuse will permanently disable the connection between USB_SERIAL_JTAG and the JTAG port of the {IDF_TARGET_NAME}. JTAG interface can then be connected to |jtag-gpio-list|. Note that USB CDC functionality of USB_SERIAL_JTAG will still be usable, i.e., flashing and monitoring over USB CDC will still work.
|
||||
|
||||
.. only:: esp32s3 or esp32c6
|
||||
|
||||
.. only:: esp32c3
|
||||
|
||||
Configure eFuses
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
By default, {IDF_TARGET_NAME} JTAG interface is connected to the :doc:`built-in USB_SERIAL_JTAG peripheral <configure-builtin-jtag>`. To use an external JTAG adapter instead, you need to switch the JTAG interface to the GPIO pins. This can be done by burning eFuses using ``espefuse.py`` tool.
|
||||
|
||||
Burning ``DIS_USB_JTAG`` eFuse will permanently disable the connection between USB_SERIAL_JTAG and the JTAG port of the CPU. JTAG interface can then be connected to |jtag-gpio-list|. Note that USB CDC functionality of USB_SERIAL_JTAG will still be usable, i.e., flashing and monitoring over USB CDC will still work.
|
||||
- Burning ``DIS_USB_JTAG`` eFuse will permanently disable the connection between USB_SERIAL_JTAG and the JTAG port of the {IDF_TARGET_NAME}. JTAG interface can then be connected to |jtag-gpio-list|. Note that USB CDC functionality of USB_SERIAL_JTAG will still be usable, i.e., flashing and monitoring over USB CDC will still work.
|
||||
- Burning ``{IDF_TARGET_JTAG_SEL_EFUSE}`` eFuse will enable selection of JTAG interface by a strapping pin, |jtag-sel-gpio|. If the strapping pin is low when {IDF_TARGET_NAME} is reset, JTAG interface will use |jtag-gpio-list|. If the strapping pin is high, USB_SERIAL_JTAG will be used as the JTAG interface.
|
||||
|
||||
.. warning::
|
||||
Burning eFuses is an irreversible operation, so please consider the above option before starting the process.
|
||||
|
@ -6,7 +6,6 @@
|
||||
.. (defined in RST, not in Python) inside code blocks. If that is ever implemented,
|
||||
.. These code blocks can be moved back to the main .rst files, with target-specific
|
||||
.. file names being replaced by substitutions.
|
||||
.. TODO IDF-6033
|
||||
|
||||
.. run-openocd
|
||||
|
||||
@ -22,7 +21,28 @@
|
||||
|
||||
::
|
||||
|
||||
TO BE UPDATED
|
||||
user-name@computer-name:~/esp/esp-idf$ openocd -f board/esp32c6-builtin.cfg
|
||||
Open On-Chip Debugger v0.11.0-esp32-20221026-85-g0718fffd (2023-01-12-07:28)
|
||||
Licensed under GNU GPL v2
|
||||
For bug reports, read
|
||||
http://openocd.org/doc/doxygen/bugs.html
|
||||
Info : only one transport option; autoselect 'jtag'
|
||||
Info : esp_usb_jtag: VID set to 0x303a and PID to 0x1001
|
||||
Info : esp_usb_jtag: capabilities descriptor set to 0x2000
|
||||
Warn : Transport "jtag" was already selected
|
||||
WARNING: ESP flash support is disabled!
|
||||
force hard breakpoints
|
||||
Info : Listening on port 6666 for tcl connections
|
||||
Info : Listening on port 4444 for telnet connections
|
||||
Info : esp_usb_jtag: serial (60:55:F9:F6:03:3C)
|
||||
Info : esp_usb_jtag: Device found. Base speed 24000KHz, div range 1 to 255
|
||||
Info : clock speed 24000 kHz
|
||||
Info : JTAG tap: esp32c6.cpu tap/device found: 0x0000dc25 (mfg: 0x612 (Espressif Systems), part: 0x000d, ver: 0x0)
|
||||
Info : datacount=2 progbufsize=16
|
||||
Info : Examined RISC-V core; found 2 harts
|
||||
Info : hart 0: XLEN=32, misa=0x40903105
|
||||
Info : starting gdb server for esp32c6 on 3333
|
||||
Info : Listening on port 3333 for gdb connections
|
||||
|
||||
.. |run-openocd-cfg-file-err| replace:: ``Can't find board/esp32c6-builtin.cfg``
|
||||
|
||||
@ -68,14 +88,22 @@
|
||||
|
||||
.. openocd-cfg-files
|
||||
|
||||
.. list-table:: OpenOCD configuration files for ESP32-C3
|
||||
.. list-table:: OpenOCD configuration files for ESP32-C6
|
||||
:widths: 25 75
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Description
|
||||
* - TO BE UPDATED
|
||||
- TO BE UPDATED
|
||||
* - ``board/esp32c6-builtin.cfg``
|
||||
- Board configuration file for ESP32-C6 through built-in USB, includes target and adapter configuration.
|
||||
* - ``board/esp32c6-ftdi.cfg``
|
||||
- Board configuration file for ESP32-C6 for via externally connected FTDI-based probe like ESP-Prog, includes target and adapter configuration.
|
||||
* - ``target/esp32c6.cfg``
|
||||
- ESP32-C6 target configuration file. Can be used together with one of the ``interface/`` configuration files.
|
||||
* - ``interface/esp_usb_jtag.cfg``
|
||||
- JTAG adapter configuration file for ESP32-C6.
|
||||
* - ``interface/ftdi/esp32_devkitj_v1.cfg``
|
||||
- JTAG adapter configuration file for ESP-Prog boards.
|
||||
|
||||
---
|
||||
|
||||
@ -93,17 +121,17 @@
|
||||
|
||||
* - ESP32-C6 Pin
|
||||
- JTAG Signal
|
||||
* - MTDO
|
||||
* - MTDO / GPIO7
|
||||
- TDO
|
||||
* - MTDI
|
||||
* - MTDI / GPIO5
|
||||
- TDI
|
||||
* - MTCK
|
||||
* - MTCK / GPIO6
|
||||
- TCK
|
||||
* - MTMS
|
||||
* - MTMS / GPIO4
|
||||
- TMS
|
||||
|
||||
.. |jtag-sel-gpio| replace:: TO BE UPDATED
|
||||
.. |jtag-gpio-list| replace:: TO BE UPDATED
|
||||
.. |jtag-sel-gpio| replace:: GPIO15
|
||||
.. |jtag-gpio-list| replace:: GPIO4-GPIO7
|
||||
|
||||
---
|
||||
|
||||
|
@ -206,13 +206,15 @@ Another option is to write application image to flash using OpenOCD via JTAG wit
|
||||
|
||||
OpenOCD flashing command ``program_esp`` has the following format:
|
||||
|
||||
``program_esp <image_file> <offset> [verify] [reset] [exit]``
|
||||
``program_esp <image_file> <offset> [verify] [reset] [exit] [compress] [encrypt]``
|
||||
|
||||
- ``image_file`` - Path to program image file.
|
||||
- ``offset`` - Offset in flash bank to write image.
|
||||
- ``verify`` - Optional. Verify flash contents after writing.
|
||||
- ``reset`` - Optional. Reset target after programing.
|
||||
- ``exit`` - Optional. Finally exit OpenOCD.
|
||||
- ``compress`` - Optional. Compress image file before programming.
|
||||
- ``encrypt`` - Optional. Encrypt binary before writing to flash. Same functionality with ``idf.py encrypted-flash``
|
||||
|
||||
You are now ready to start application debugging. Follow the steps described in the section below.
|
||||
|
||||
|
@ -6,7 +6,6 @@
|
||||
.. (defined in RST, not in Python) inside code blocks. If that is ever implemented,
|
||||
.. These code blocks can be moved back to the main .rst files, with target-specific
|
||||
.. file names being replaced by substitutions.
|
||||
.. TODO IDF-6033
|
||||
|
||||
.. run-openocd
|
||||
|
||||
@ -22,7 +21,28 @@
|
||||
|
||||
::
|
||||
|
||||
TO BE UPDATED
|
||||
user-name@computer-name:~/esp/esp-idf$ openocd -f board/esp32c6-builtin.cfg
|
||||
Open On-Chip Debugger v0.11.0-esp32-20221026-85-g0718fffd (2023-01-12-07:28)
|
||||
Licensed under GNU GPL v2
|
||||
For bug reports, read
|
||||
http://openocd.org/doc/doxygen/bugs.html
|
||||
Info : only one transport option; autoselect 'jtag'
|
||||
Info : esp_usb_jtag: VID set to 0x303a and PID to 0x1001
|
||||
Info : esp_usb_jtag: capabilities descriptor set to 0x2000
|
||||
Warn : Transport "jtag" was already selected
|
||||
WARNING: ESP flash support is disabled!
|
||||
force hard breakpoints
|
||||
Info : Listening on port 6666 for tcl connections
|
||||
Info : Listening on port 4444 for telnet connections
|
||||
Info : esp_usb_jtag: serial (60:55:F9:F6:03:3C)
|
||||
Info : esp_usb_jtag: Device found. Base speed 24000KHz, div range 1 to 255
|
||||
Info : clock speed 24000 kHz
|
||||
Info : JTAG tap: esp32c6.cpu tap/device found: 0x0000dc25 (mfg: 0x612 (Espressif Systems), part: 0x000d, ver: 0x0)
|
||||
Info : datacount=2 progbufsize=16
|
||||
Info : Examined RISC-V core; found 2 harts
|
||||
Info : hart 0: XLEN=32, misa=0x40903105
|
||||
Info : starting gdb server for esp32c6 on 3333
|
||||
Info : Listening on port 3333 for gdb connections
|
||||
|
||||
.. |run-openocd-cfg-file-err| replace:: ``Can't find board/esp32c6-builtin.cfg``
|
||||
|
||||
@ -68,14 +88,22 @@
|
||||
|
||||
.. openocd-cfg-files
|
||||
|
||||
.. list-table:: OpenOCD configuration files for ESP32-C3
|
||||
.. list-table:: OpenOCD configuration files for ESP32-C6
|
||||
:widths: 25 75
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Description
|
||||
* - TO BE UPDATED
|
||||
- TO BE UPDATED
|
||||
* - ``board/esp32c6-builtin.cfg``
|
||||
- Board configuration file for ESP32-C6 through built-in USB, includes target and adapter configuration.
|
||||
* - ``board/esp32c6-ftdi.cfg``
|
||||
- Board configuration file for ESP32-C6 for via externally connected FTDI-based probe like ESP-Prog, includes target and adapter configuration.
|
||||
* - ``target/esp32c6.cfg``
|
||||
- ESP32-C6 target configuration file. Can be used together with one of the ``interface/`` configuration files.
|
||||
* - ``interface/esp_usb_jtag.cfg``
|
||||
- JTAG adapter configuration file for ESP32-C6.
|
||||
* - ``interface/ftdi/esp32_devkitj_v1.cfg``
|
||||
- JTAG adapter configuration file for ESP-Prog boards.
|
||||
|
||||
---
|
||||
|
||||
@ -93,17 +121,17 @@
|
||||
|
||||
* - ESP32-C6 Pin
|
||||
- JTAG Signal
|
||||
* - MTDO
|
||||
* - MTDO / GPIO7
|
||||
- TDO
|
||||
* - MTDI
|
||||
* - MTDI / GPIO5
|
||||
- TDI
|
||||
* - MTCK
|
||||
* - MTCK / GPIO6
|
||||
- TCK
|
||||
* - MTMS
|
||||
* - MTMS / GPIO4
|
||||
- TMS
|
||||
|
||||
.. |jtag-sel-gpio| replace:: TO BE UPDATED
|
||||
.. |jtag-gpio-list| replace:: TO BE UPDATED
|
||||
.. |jtag-sel-gpio| replace:: GPIO15
|
||||
.. |jtag-gpio-list| replace:: GPIO4-GPIO7
|
||||
|
||||
---
|
||||
|
||||
|
@ -41,4 +41,5 @@ OPENOCD_TAGET_CONFIG: Dict[str, str] = {
|
||||
'esp32s2': '-f board/esp32s2-kaluga-1.cfg',
|
||||
'esp32c3': '-f board/esp32c3-builtin.cfg',
|
||||
'esp32s3': '-f board/esp32s3-builtin.cfg',
|
||||
'esp32c6': '-f board/esp32c6-builtin.cfg',
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user