You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2020/10/21 05:58:06 UTC
[incubator-nuttx] 01/02: Documentation/quickstart/debugging.rst:
rewrite JTAG/OpenOCD section
This is an automated email from the ASF dual-hosted git repository.
xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit b482cbdd0474ea7f23bc4abbdb47e6504ca0d35e
Author: Diego Herranz <di...@diegoherranz.com>
AuthorDate: Sun Oct 18 22:48:28 2020 +0100
Documentation/quickstart/debugging.rst: rewrite JTAG/OpenOCD section
- Add mentions to SWD
- Sony's OpenOCD fork no longer needed since Nuttx support was merged upstream
on http://openocd.zylin.com/#/c/4103/. Recommended to build from source or use
one of the unofficial, more recent builds.
- Amazon link for Olimex adapter was no longer available so removed.
- Reordered and some parts rewritten
---
Documentation/quickstart/debugging.rst | 33 ++++++++++++++++++---------------
1 file changed, 18 insertions(+), 15 deletions(-)
diff --git a/Documentation/quickstart/debugging.rst b/Documentation/quickstart/debugging.rst
index 24a3e6d..67ceff9 100644
--- a/Documentation/quickstart/debugging.rst
+++ b/Documentation/quickstart/debugging.rst
@@ -89,28 +89,31 @@ You can put a bunch of these into a simple script to configure the logging the w
make oldconfig
-JTAG Debugging
---------------
+JTAG/SWD Debugging
+------------------
`JTAG <https://en.wikipedia.org/wiki/JTAG>`_ is a set of standards that specify a way to attach a hardware device to
your embedded board, and then remotely control the CPU. You can load code, start, stop, step through the program, and
-examine variables and memory.
-
-This guide assumes your board has a JTAG connector, and you have a JTAG hardware debugger like a
-`Segger J-Link <https://www.segger.com/products/debug-probes/j-link/>`_ or `OpenOCD <http://openocd.org/doc-release/html/index.html>`_.
+examine variables and memory. `SWD <https://en.wikipedia.org/wiki/JTAG#Similar_interface_standards>`_ is an
+Arm-specific, alternative 2-pin electrical interface that uses the same protocol and can be used too.
The NuttX operating system uses `threads <https://en.wikipedia.org/wiki/Thread_(computing)>`_, so you need a
thread-aware debugger to do more than load code, start, and stop it. A thread-aware debugger will allow you to switch
threads to the one that is running the code you're interested in, for instance your application, or an operating system
-network thread. So far, OpenOCD is the only supported NuttX thread-aware debugger.
-
-You will need an OpenOCD-compatible hardware adapter, ideally a fast one (USB 2.0 High Speed). This guide assumes you
-are using the `Olimex ARM USB TINY H <https://www.olimex.com/Products/ARM/JTAG/ARM-USB-TINY-H/>`_.
-(`Olimex ARM USB TINY H on Amazon <https://smile.amazon.com/Olimex-ARM-USB-TINY-H-Arm-Jtag/dp/B009UED630/>`_.) Other
-adapters may work, follow the OpenOCD instructions and the instructions that came with your adapter.
-
-You'll need to use the `Sony fork of OpenOCD <https://github.com/sony/openocd-nuttx>`_. Download and install it
-according to the OpenOCD instructions.
+network thread. So far, `OpenOCD <http://openocd.org/>`_ is the only supported NuttX thread-aware debugger.
+
+.. note::
+ OpenOCD hasn't announced a stable release for a few years but the development remains active. You'll need to use a
+ version of OpenOCD recent enough so that it includes Nuttx support as `contributed by Sony upstream
+ <http://openocd.zylin.com/#/c/4103/>`_. The version included in official OS repositories will probably be too old.
+ You should build from source or use one of the unofficial, more recent builds. See `Getting OpenOCD
+ <http://openocd.org/getting-openocd/>`_ for more details.
+
+You will need a board with a JTAG or SWD connector and an `OpenOCD-compatible hardware adapter
+<http://openocd.org/supported-jtag-interfaces/>`_, ideally a fast one (USB 2.0 High Speed). For example an `Olimex
+ARM USB TINY H <https://www.olimex.com/Products/ARM/JTAG/ARM-USB-TINY-H/>`_ or a `Segger J-Link
+<https://www.segger.com/products/debug-probes/j-link/>`_. Many other adapters work too, follow the OpenOCD
+instructions and the instructions that came with your adapter.
See this article for more info:
`Debugging a Apache NuttX target with GDB and OpenOCD <https://micro-ros.github.io/docs/tutorials/advanced/nuttx/debugging/>`_.