This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 1f9e17f5c7eff4d28dc19f0b56c5256ae06f0e5b
Author: raiden00pl <[email protected]>
AuthorDate: Mon Nov 6 14:11:57 2023 +0100

    Documentation: add SystemView configuration instructions
---
 .../components/drivers/special/segger.rst          | 62 ++++++++++++++++++++--
 1 file changed, 58 insertions(+), 4 deletions(-)

diff --git a/Documentation/components/drivers/special/segger.rst 
b/Documentation/components/drivers/special/segger.rst
index 37835720ee..29097de3b8 100644
--- a/Documentation/components/drivers/special/segger.rst
+++ b/Documentation/components/drivers/special/segger.rst
@@ -2,9 +2,63 @@
 Segger RTT drivers
 ==================
 
+.. note:: Segger drivers works only with J-Link debug probes.
+          Sometimes it's possible to replace vendor-specific debug interface
+          with J-Link OB firmware. For details look at
+          `Segger website <https://www.segger.com/downloads/jlink>`_
+
 Supported Segger drivers:
 
-- serial over RTT - ``CONFIG_SERIAL_RTTx``,
-- console over RTT - ``CONFIG_SERIAL_RTT_CONSOLE_CHANNEL``
-- Segger SystemView - ``CONFIG_SEGGER_SYSVIEW``
-- Note RTT - ``CONFIG_NOTE_RTT``
+* Serial over RTT - ``CONFIG_SERIAL_RTTx``,
+* Console over RTT - ``CONFIG_SERIAL_RTT_CONSOLE_CHANNEL``
+* Segger SystemView - ``CONFIG_SEGGER_SYSVIEW``
+* Note RTT - ``CONFIG_NOTE_RTT``
+
+Segger SystemView
+=================
+
+Steps to enable SystemView support:
+
+#. Make sure your architecture supports a high-performance counter.
+   In most cases it will be:
+
+   :menuselection:`CONFIG_ARCH_PERF_EVENTS=y`
+
+   In that case, the the architecture logic must initialize the perf counter
+   with ``up_perf_init()``.
+
+#. Enable instrumentation support:
+
+   :menuselection:`CONFIG_SCHED_INSTRUMENTATION=y`
+
+#. Configure instrumentation support. Available options for SystemView are:
+
+   :menuselection:`CONFIG_SCHED_INSTRUMENTATION_SWITCH=y`
+
+   :menuselection:`CONFIG_SCHED_INSTRUMENTATION_SYSCALL=y`
+
+   :menuselection:`CONFIG_SCHED_INSTRUMENTATION_IRQHANDLER=y`
+
+#. Make sure that ``CONFIG_TASK_NAME_SIZE > 0``, otherwise task/thread
+   names will not be displayed correctly
+
+#. Enable Note Driver support and disable Note RAM driver:
+
+   :menuselection:`CONFIG_DRIVERS_NOTE=y`
+
+   :menuselection:`CONFIG_DRIVERS_NOTERAM=n`
+
+#. Enable Note RTT and Segger SystemView support:
+
+   :menuselection:`CONFIG_NOTE_RTT=y`
+
+   :menuselection:`CONFIG_SEGGER_SYSVIEW=y`
+
+#. Configure RTT channel and RTT buffer size for SystemView:
+
+   :menuselection:`CONFIG_SEGGER_SYSVIEW_RTT_CHANNEL=0`
+
+   :menuselection:`CONFIG_SEGGER_SYSVIEW_RTT_BUFFER_SIZE=1024`
+
+   In case SystemView returns buffer overflow errors, you should increase
+   ``CONFIG_NOTE_RTT_BUFFER_SIZE_UP``.

Reply via email to