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