zephyr/samples/subsys/debug/sysview
David B. Kinder 62a0cd246d doc: fix uses of back quotes in documentation
ReST defines interpreted text roles where text enclosed by single quotes
can be "intrepreted", for example :ref:`some name` becomes a link to
a label anywhere in the doc set named "some name", :c:func:`funcname()`
becomes a link to the API documentation for "funcname", and
:option:`CONFIG_NAME` becomes a link to, in our case, the documentation
for the generated Kconfig option.

This patch fixes uses of `some name` (without a role) by either adding
an explicit role, or changing to ``some name``, which indicates inline
code block formatting (most likely what was intended).

This is a precursor to changing the default behavior of interpreted
text to treat `some name` as :any:`some name` (as configured in
doc/conf.py), which would attempt to create a link to any available
definition of "some name".

We may not change this default role behavior, but it becomes an option
after the fixes in this patch.  In any case, this patch fixes incorrect
uses of single-quoted text (possibly introduced because GitHub's
markdown language uses single-quoted text for inline code formatting).

Jira: ZEP-2414

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-08-03 11:08:23 -04:00
..
src samples: use K_THREAD_STACK_DEFINE macros 2017-06-09 18:53:28 -04:00
Makefile samples: Add SEGGER SystemView sample application 2017-04-25 02:16:37 +00:00
prj.conf samples: Add SEGGER SystemView sample application 2017-04-25 02:16:37 +00:00
README.rst doc: fix uses of back quotes in documentation 2017-08-03 11:08:23 -04:00

.. _segger_sysview:

SEGGER SystemView Sample
########################

Overview
********
This sample application uses the kernel system logger and publishes events
through the SEGGER RTT protocol, making it available to the SEGGER
SystemView application.

Requirements
************

* Board supported by J-Link (`list of supported boards <https://www.segger.com/jlink_supported_devices.html#DeviceList>`_)
* `SEGGER J-Link Software and Documentation pack <https://www.segger.com/downloads/jlink>`_
* The board might require a `special bootloader <https://www.segger.com/opensda.html>`_, also available from SEGGER
* `SEGGER SystemView <https://www.segger.com/systemview.html?p=1731>`_


Building and Running
********************

* Follow the instructions to install J-Link and SystemView software on your
  computer
* Open J-Link Commander.  On Linux, its executable is named ``JLinkExe``:

.. code-block:: console

  SEGGER J-Link Commander V6.10m (Compiled Nov 10 2016 18:38:45)
  DLL version V6.10m, compiled Nov 10 2016 18:38:36

  Connecting to J-Link via USB...O.K.
  Firmware: J-Link OpenSDA 2 compiled Feb 28 2017 19:27:22
  Hardware version: V1.00
  S/N: 621000000
  VTref = 3.300V


  Type "connect" to establish a target connection, '?' for help
  J-Link>

* Issue the "connect" command.  If it's the only connected board, ``Enter``
  can be pressed at the ``Device>`` prompt.
* Select the target interface.  Some devices only support the ``SWD`` type,
  so select it by typing ``S`` followed by ``Enter``.
* At the ``Speed>`` prompt, select the interface polling frequency.  The
  default of 4000kHz is sufficient, but a higher frequency can be specified.
* Once the connection has been successful, an output similar to this one
  should be produced:

.. code-block:: console

  Device "MK64FN1M0XXX12" selected.


  Found SWD-DP with ID 0x2BA01477
  Found SWD-DP with ID 0x2BA01477
  AP-IDR: 0x24770011, Type: AHB-AP
  Found Cortex-M4 r0p1, Little endian.
  FPUnit: 6 code (BP) slots and 2 literal slots
  CoreSight components:
  ROMTbl 0 @ E00FF000
  ROMTbl 0 [0]: FFF0F000, CID: B105E00D, PID: 000BB00C SCS
  ROMTbl 0 [1]: FFF02000, CID: B105E00D, PID: 003BB002 DWT
  ROMTbl 0 [2]: FFF03000, CID: B105E00D, PID: 002BB003 FPB
  ROMTbl 0 [3]: FFF01000, CID: B105E00D, PID: 003BB001 ITM
  ROMTbl 0 [4]: FFF41000, CID: B105900D, PID: 000BB9A1 TPIU
  ROMTbl 0 [5]: FFF42000, CID: B105900D, PID: 000BB925 ETM
  ROMTbl 0 [6]: FFF43000, CID: B105900D, PID: 003BB907 ETB
  ROMTbl 0 [7]: FFF44000, CID: B105900D, PID: 001BB908 CSTF
  Cortex-M4 identified.
  J-Link>

* Now open SystemView.  Select the option *Start Recording* from the
  *Target* menu (or press ``F5``), choose USB, the target device (in this
  case, ``MK64FN1M0XXX12``), and confirm that the target interface and speed
  matches the ones selected in J-Link Commander.  The *RTT Control Block
  Detection* can be left on *Auto Detection*.
* Once OK is clicked, information will be pulled from the device as usual:
  threads, interrupts, and other information will be populated
  automatically.

References
**********

* `Segger SystemView: Realtime Analysis and Visualization for FreeRTOS <https://mcuoneclipse.com/2015/11/16/segger-systemview-realtime-analysis-and-visualization-for-freertos/>`_
* `RTT Protocol <https://www.segger.com/jlink-rtt.html>`_