about nsc logging

I'm using the RTT log feature in NCS, and here is my prj.conf:I have two questions:

#
# Copyright (c) 2019 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#
CONFIG_NCS_SAMPLES_DEFAULTS=y
CONFIG_ESB=y
CONFIG_DK_LIBRARY=y
CONFIG_CLOCK_CONTROL=y
CONFIG_STDOUT_CONSOLE=y
CONFIG_FLASH=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_SOC_FLASH_NRF_EMULATE_ONE_BYTE_WRITE_ACCESS=y
CONFIG_FCB=y
CONFIG_FLASH_MAP=y
CONFIG_SETTINGS=y
CONFIG_SETTINGS_FCB=y
CONFIG_FLASH_LOAD_OFFSET=0x10000
CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
# CONFIG_ESB_FAST_SWITCHING=y

# 启用日志系统
CONFIG_LOG=y
CONFIG_LOG_MODE_DEFERRED=y

# 启用 RTT 后端
CONFIG_USE_SEGGER_RTT=y
CONFIG_LOG_BACKEND_RTT=y
CONFIG_LOG_BACKEND_RTT_MODE_BLOCK=n   # RTT输出方式,可选

# 禁用 UART 后端
CONFIG_LOG_BACKEND_UART=n
CONFIG_UART_CONSOLE=n
CONFIG_RTT_CONSOLE=y

# 若还在使用 printk,也重定向到 RTT
CONFIG_CONSOLE=y
CONFIG_PRINTK=y
CONFIG_STDOUT_CONSOLE=y

  1. After using LOG_INFto output logs, I feel the logs are not output immediately. Since I have enabled CONFIG_LOG_MODE_DEFERRED=y, I can understand this phenomenon. However, some logs are even delayed by about one second before output, which doesn't look ideal. I want to ask: in the nRF5 SDK (52 series), I could call NRF_LOG_PROCESS()in the main function's while(1) loop to quickly flush logs. How can I achieve quick log flushing in NCS?
  2. Even though I have enabled CONFIG_LOG_MODE_DEFERRED=y, the LOG_INFoperation itself still takes quite some time. I tested it with GPIO and found it takes up to 20-30 us. This makes it inconvenient for me to use LOG_INFin interrupt service routines. I remember when using Segger debugging with nRF5 SDK (52833), even with LOG_DEFERREDenabled, NRF_LOG_INFOonly took about 1-2 us. So in NCS, are there any methods to optimize the log operation time? What additional steps should I take?

Thank you!

Parents Reply Children
No Data
Related