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