shell: Add initial log level for rtt and uart backends

RTT and uart shell backends were started with fixed
log limit set to INF. Configuration has been moved
to Kconfig allowing certain level or default LOG_MAX_LEVEL.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
This commit is contained in:
Krzysztof Chruscinski 2018-11-16 14:09:31 +01:00 committed by Carles Cufí
commit 8421543f1c
3 changed files with 86 additions and 5 deletions

View file

@ -22,6 +22,8 @@ config SHELL_BACKEND_SERIAL
help
Enable serial backends.
if SHELL_BACKEND_SERIAL
# Internal config to enable UART interrupts if supported.
config SHELL_BACKEND_SERIAL_FORCE_INTERRUPTS
bool
@ -29,8 +31,6 @@ config SHELL_BACKEND_SERIAL_FORCE_INTERRUPTS
depends on SERIAL_SUPPORT_INTERRUPT
imply UART_INTERRUPT_DRIVEN
if SHELL_BACKEND_SERIAL
config SHELL_BACKEND_SERIAL_TX_RING_BUFFER_SIZE
int "Set TX ring buffer size"
default 8
@ -56,14 +56,85 @@ config SHELL_BACKEND_SERIAL_RX_POLL_PERIOD
help
Determines how often UART is polled for RX byte.
choice
prompt "Initial log level limit"
default SHELL_BACKEND_SERIAL_LOG_LEVEL_DEFAULT
config SHELL_BACKEND_SERIAL_LOG_LEVEL_DEFAULT
bool "System limit (LOG_MAX_LEVEL)"
config SHELL_BACKEND_SERIAL_LOG_LEVEL_DBG
bool "Debug"
config SHELL_BACKEND_SERIAL_LOG_LEVEL_INF
bool "Info"
config SHELL_BACKEND_SERIAL_LOG_LEVEL_WRN
bool "Warning"
config SHELL_BACKEND_SERIAL_LOG_LEVEL_ERR
bool "Error"
config SHELL_BACKEND_SERIAL_LOG_LEVEL_NONE
bool "None"
endchoice
config SHELL_BACKEND_SERIAL_LOG_LEVEL
int
default 0 if SHELL_BACKEND_SERIAL_LOG_LEVEL_NONE
default 1 if SHELL_BACKEND_SERIAL_LOG_LEVEL_ERR
default 2 if SHELL_BACKEND_SERIAL_LOG_LEVEL_WRN
default 3 if SHELL_BACKEND_SERIAL_LOG_LEVEL_INF
default 4 if SHELL_BACKEND_SERIAL_LOG_LEVEL_DBG
default 5 if SHELL_BACKEND_SERIAL_LOG_LEVEL_DEFAULT
endif #SHELL_BACKEND_SERIAL
config SHELL_BACKEND_RTT
bool "Enable RTT backend."
select USE_SEGGER_RTT
select RTT_CONSOLE
help
Enable RTT backend.
if SHELL_BACKEND_RTT
choice
prompt "Initial log level limit"
default SHELL_BACKEND_RTT_LOG_LEVEL_DEFAULT
config SHELL_BACKEND_RTT_LOG_LEVEL_DEFAULT
bool "System limit (LOG_MAX_LEVEL)"
config SHELL_BACKEND_RTT_LOG_LEVEL_DBG
bool "Debug"
config SHELL_BACKEND_RTT_LOG_LEVEL_INF
bool "Info"
config SHELL_BACKEND_RTT_LOG_LEVEL_WRN
bool "Warning"
config SHELL_BACKEND_RTT_LOG_LEVEL_ERR
bool "Error"
config SHELL_BACKEND_RTT_LOG_LEVEL_NONE
bool "None"
endchoice
config SHELL_BACKEND_RTT_LOG_LEVEL
int
default 0 if SHELL_BACKEND_RTT_LOG_LEVEL_NONE
default 1 if SHELL_BACKEND_RTT_LOG_LEVEL_ERR
default 2 if SHELL_BACKEND_RTT_LOG_LEVEL_WRN
default 3 if SHELL_BACKEND_RTT_LOG_LEVEL_INF
default 4 if SHELL_BACKEND_RTT_LOG_LEVEL_DBG
default 5 if SHELL_BACKEND_RTT_LOG_LEVEL_DEFAULT
endif #SHELL_BACKEND_RTT
config SHELL_BACKEND_DUMMY
bool "Enable dummy backend."
help

View file

@ -25,7 +25,8 @@ static void shell_rtt_rx_process(struct shell_rtt *sh_rtt)
if (count > 0) {
sh_rtt->rx_cnt = count;
sh_rtt->handler(SHELL_TRANSPORT_EVT_RX_RDY, sh_rtt->context);
sh_rtt->handler(SHELL_TRANSPORT_EVT_RX_RDY,
sh_rtt->context);
}
k_sleep(K_MSEC(10));
@ -102,8 +103,11 @@ const struct shell_transport_api shell_rtt_transport_api = {
static int enable_shell_rtt(struct device *arg)
{
ARG_UNUSED(arg);
bool log_backend = CONFIG_SHELL_BACKEND_RTT_LOG_LEVEL > 0;
u32_t level = (CONFIG_SHELL_BACKEND_RTT_LOG_LEVEL > LOG_LEVEL_DBG) ?
CONFIG_LOG_MAX_LEVEL : CONFIG_SHELL_BACKEND_RTT_LOG_LEVEL;
shell_init(&rtt_shell, NULL, false, false, LOG_LEVEL_INF);
shell_init(&rtt_shell, NULL, true, log_backend, level);
return 0;
}

View file

@ -230,7 +230,13 @@ static int enable_shell_uart(struct device *arg)
ARG_UNUSED(arg);
struct device *dev =
device_get_binding(CONFIG_UART_CONSOLE_ON_DEV_NAME);
shell_init(&uart_shell, dev, true, true, LOG_LEVEL_INF);
bool log_backend = CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL > 0;
u32_t level =
(CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL > LOG_LEVEL_DBG) ?
CONFIG_LOG_MAX_LEVEL : CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL;
shell_init(&uart_shell, dev, true, log_backend, level);
return 0;
}
SYS_INIT(enable_shell_uart, POST_KERNEL, 0);