blob: 2137ec01497d057a5974b37e38bdedaab907b115 [file] [log] [blame]
:orphan:
.. _stlink-v21:
ST-LINK/V2-1
############
Overview
********
ST-LINK/V2-1 is a serial and debug adapter built into all Nucleo and Discovery
boards. It provides a bridge between your computer (or other USB host) and the
embedded target processor, which can be used for debugging, flash programming,
and serial communication, all over a simple USB cable.
SEGGER offers a firmware upgrading the ST-LINK/V2-1 on board on the Nucleo and
Discovery boards. This firmware makes the ST-LINK/V2-1 compatible with J-Link
OB, allowing users to take advantage of most J-Link features like the ultra fast
flash download and debugging speed or the free-to-use GDBServer.
More informations about upgrading ST-LINK/V2-1 to JLink or restore ST-Link/V2-1
firmware please visit: `SEGGER`_
Zephyr supports the following debug tools through ST-LINK/V2-1:
* :ref:`st_ST-LINK/V2-1_stlink`
* :ref:`st_ST-LINK/V2-1_jlink`
.. _st_ST-LINK/V2-1_stlink:
ST-LINK/V2-1
************
ST-Link tool is available by default, flash and debug could be done as follows.
Flashing
========
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:goals: flash
Debugging
=========
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:goals: debug
.. note:: ST-Link relies on openocd for flashing and debugging.
On Linux, openocd is available though the `Zephyr SDK
<https://www.zephyrproject.org/developers/#downloads>`_.
Windows users should use the following steps to install
openocd:
- Download openocd for Windows from here: `OpenOCD Windows`_
- Copy bin and share dirs to ``C:\Program Files\OpenOCD\``
- Add ``C:\Program Files\OpenOCD\bin`` to 'Path'
.. _st_ST-LINK/V2-1_jlink:
Segger J-Link
*************
Host Tools and Firmware
=======================
Download and install the `Segger J-Link Software and Documentation Pack`_ to
get the J-Link GDB server for your host computer.
Flashing
========
Use the CMake ``flash`` target with the argument ``STLINK_FW=jlink`` to
build your Zephyr application.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:gen-args: -DSTLINK_FW=jlink
:goals: flash
Debugging
=========
Use the CMake ``debug`` target with the argument ``STLINK_FW=jlink`` to build
your Zephyr application, invoke the J-Link GDB server, attach a GDB client, and
program your Zephyr application to flash. It will leave you at a GDB prompt.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:gen-args: -DSTLINK_FW=jlink
:goals: debug
Console
=======
If you configured your Zephyr application to use a UART console (most boards
enable this by default), open a serial terminal (minicom, putty, etc.) with the
following settings:
- Speed: 115200
- Data: 8 bits
- Parity: None
- Stop bits: 1
If you configured your Zephyr application to use `Segger RTT`_ console instead,
open telnet:
.. code-block:: console
$ telnet localhost 19021
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SEGGER J-Link V6.30f - Real time terminal output
J-Link STLink V21 compiled Jun 26 2017 10:35:16 V1.0, SN=773895351
Process: JLinkGDBServerCLExe
Zephyr Shell, Zephyr version: 1.12.99
Type 'help' for a list of available commands
shell>
If you get no RTT output you might need to disable other consoles which conflict
with the RTT one if they are enabled by default in the particular sample or
application you are running, such as disable UART_CONSOLE in menuconfig.
.. _SEGGER:
https://www.segger.com/products/debug-probes/j-link/models/other-j-links/st-link-on-board/
.. _Segger J-Link Software and Documentation Pack:
https://www.segger.com/downloads/jlink
.. _Segger RTT:
https://www.segger.com/jlink-rtt.html
.. _OpenOCD Windows:
http://gnutoolchains.com/arm-eabi/openocd/