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