| # Copyright (c) 2021 Nordic Semiconductor ASA |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| config LOG_BACKEND_RTT |
| bool "Segger J-Link RTT backend" |
| depends on USE_SEGGER_RTT |
| default y if !SHELL_BACKEND_RTT |
| select SEGGER_RTT_CUSTOM_LOCKING |
| select LOG_OUTPUT |
| help |
| When enabled, backend will use RTT for logging. This backend works on a per |
| message basis. Only a whole message (terminated with a carriage return: '\r') |
| is transferred to up-buffer at once depending on available space and |
| selected mode. |
| In panic mode backend always blocks and waits until there is space |
| in up-buffer for a message and message is transferred to host. |
| |
| if LOG_BACKEND_RTT |
| |
| choice LOG_BACKEND_RTT_MODE |
| prompt "Logger behavior" |
| default LOG_BACKEND_RTT_MODE_BLOCK |
| |
| config LOG_BACKEND_RTT_MODE_DROP |
| bool "Drop messages that do not fit in up-buffer." |
| help |
| If there is not enough space in up-buffer for a message, drop it. |
| Number of dropped messages will be logged. |
| Increase up-buffer size helps to reduce dropping of messages. |
| |
| config LOG_BACKEND_RTT_MODE_BLOCK |
| bool "Block until message is transferred to host." |
| help |
| Waits until there is enough space in the up-buffer for a message. |
| |
| config LOG_BACKEND_RTT_MODE_OVERWRITE |
| bool "Overwrite messages if up-buffer full" |
| help |
| If there is not enough space in up-buffer for a message overwrite |
| oldest one. |
| |
| endchoice |
| |
| backend = RTT |
| backend-str = rtt |
| source "subsys/logging/Kconfig.template.log_format_config" |
| |
| config LOG_BACKEND_RTT_MESSAGE_SIZE |
| int "Size of internal buffer for storing messages." |
| range 32 256 |
| default 128 |
| depends on LOG_BACKEND_RTT_MODE_DROP |
| help |
| This option defines maximum message size transferable to up-buffer. |
| |
| if LOG_BACKEND_RTT_MODE_BLOCK |
| |
| config LOG_BACKEND_RTT_OUTPUT_BUFFER_SIZE |
| int "Size of the output buffer" |
| default 16 |
| help |
| Buffer is used by log_output module for preparing output data (e.g. |
| string formatting). |
| |
| config LOG_BACKEND_RTT_RETRY_CNT |
| int "Number of retries" |
| default 4 |
| help |
| Number of TX retries before dropping the data and assuming that |
| RTT session is inactive. |
| |
| config LOG_BACKEND_RTT_RETRY_DELAY_MS |
| int "Delay between TX retries in milliseconds" |
| default 5 |
| help |
| Sleep period between TX retry attempts. During RTT session, host pulls |
| data periodically. Period starts from 1-2 milliseconds and can be |
| increased if traffic on RTT increases (also from host to device). In |
| case of heavy traffic data can be lost and it may be necessary to |
| increase delay or number of retries. |
| |
| endif # LOG_BACKEND_RTT_MODE_BLOCK |
| |
| config LOG_BACKEND_RTT_BUFFER |
| int "Buffer number used for logger output." |
| range 0 SEGGER_RTT_MAX_NUM_UP_BUFFERS |
| default 0 |
| help |
| Select index of up-buffer used for logger output, by default it uses |
| terminal up-buffer and its settings. |
| |
| config LOG_BACKEND_RTT_BUFFER_SIZE |
| int "Size of reserved up-buffer for logger output." |
| default 1024 |
| depends on LOG_BACKEND_RTT_BUFFER > 0 |
| help |
| Specify reserved size of up-buffer used for logger output. |
| |
| # Enable processing of printk calls using log if terminal buffer is used. |
| # Same buffer is used by RTT console. If printk would go through RTT console |
| # that will lead to corruption of RTT data which is not protected against being |
| # interrupted by an interrupt. |
| config LOG_BACKEND_RTT_FORCE_PRINTK |
| bool |
| default y if LOG_BACKEND_RTT_BUFFER = 0 && RTT_CONSOLE |
| select LOG_PRINTK |
| |
| endif # LOG_BACKEND_RTT |