zephyr/samples/subsys/debug/sysview/README.rst
Leandro Pereira 6ccfe5aa14 samples: Add SEGGER SystemView sample application
This sample application uses the kernel system logger already present
in Zephyr and publishes events through the SEGGER RTT protocol, so it's
available by the SEGGER SystemView application.

[1] https://www.segger.com/systemview.html?p=1731

Jira: ZEP-1463
Change-Id: If1eba4644b95175660b3040bdc4b2717b2cfc9ad
Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-04-25 02:16:37 +00:00

90 lines
3.2 KiB
ReStructuredText

.. _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>`_