Skip to content

Commit 8421543

Browse files
nordic-krchcarlescufi
authored andcommitted
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 <[email protected]>
1 parent 644b31d commit 8421543

File tree

3 files changed

+86
-5
lines changed

3 files changed

+86
-5
lines changed

subsys/shell/Kconfig.backends

Lines changed: 73 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@ config SHELL_BACKEND_SERIAL
2222
help
2323
Enable serial backends.
2424

25+
if SHELL_BACKEND_SERIAL
26+
2527
# Internal config to enable UART interrupts if supported.
2628
config SHELL_BACKEND_SERIAL_FORCE_INTERRUPTS
2729
bool
2830
default y
2931
depends on SERIAL_SUPPORT_INTERRUPT
3032
imply UART_INTERRUPT_DRIVEN
3133

32-
if SHELL_BACKEND_SERIAL
33-
3434
config SHELL_BACKEND_SERIAL_TX_RING_BUFFER_SIZE
3535
int "Set TX ring buffer size"
3636
default 8
@@ -56,14 +56,85 @@ config SHELL_BACKEND_SERIAL_RX_POLL_PERIOD
5656
help
5757
Determines how often UART is polled for RX byte.
5858

59+
choice
60+
prompt "Initial log level limit"
61+
default SHELL_BACKEND_SERIAL_LOG_LEVEL_DEFAULT
62+
63+
config SHELL_BACKEND_SERIAL_LOG_LEVEL_DEFAULT
64+
bool "System limit (LOG_MAX_LEVEL)"
65+
66+
config SHELL_BACKEND_SERIAL_LOG_LEVEL_DBG
67+
bool "Debug"
68+
69+
config SHELL_BACKEND_SERIAL_LOG_LEVEL_INF
70+
bool "Info"
71+
72+
config SHELL_BACKEND_SERIAL_LOG_LEVEL_WRN
73+
bool "Warning"
74+
75+
config SHELL_BACKEND_SERIAL_LOG_LEVEL_ERR
76+
bool "Error"
77+
78+
config SHELL_BACKEND_SERIAL_LOG_LEVEL_NONE
79+
bool "None"
80+
81+
endchoice
82+
83+
config SHELL_BACKEND_SERIAL_LOG_LEVEL
84+
int
85+
default 0 if SHELL_BACKEND_SERIAL_LOG_LEVEL_NONE
86+
default 1 if SHELL_BACKEND_SERIAL_LOG_LEVEL_ERR
87+
default 2 if SHELL_BACKEND_SERIAL_LOG_LEVEL_WRN
88+
default 3 if SHELL_BACKEND_SERIAL_LOG_LEVEL_INF
89+
default 4 if SHELL_BACKEND_SERIAL_LOG_LEVEL_DBG
90+
default 5 if SHELL_BACKEND_SERIAL_LOG_LEVEL_DEFAULT
91+
5992
endif #SHELL_BACKEND_SERIAL
6093

6194
config SHELL_BACKEND_RTT
6295
bool "Enable RTT backend."
96+
select USE_SEGGER_RTT
6397
select RTT_CONSOLE
6498
help
6599
Enable RTT backend.
66100

101+
if SHELL_BACKEND_RTT
102+
103+
choice
104+
prompt "Initial log level limit"
105+
default SHELL_BACKEND_RTT_LOG_LEVEL_DEFAULT
106+
107+
config SHELL_BACKEND_RTT_LOG_LEVEL_DEFAULT
108+
bool "System limit (LOG_MAX_LEVEL)"
109+
110+
config SHELL_BACKEND_RTT_LOG_LEVEL_DBG
111+
bool "Debug"
112+
113+
config SHELL_BACKEND_RTT_LOG_LEVEL_INF
114+
bool "Info"
115+
116+
config SHELL_BACKEND_RTT_LOG_LEVEL_WRN
117+
bool "Warning"
118+
119+
config SHELL_BACKEND_RTT_LOG_LEVEL_ERR
120+
bool "Error"
121+
122+
config SHELL_BACKEND_RTT_LOG_LEVEL_NONE
123+
bool "None"
124+
125+
endchoice
126+
127+
config SHELL_BACKEND_RTT_LOG_LEVEL
128+
int
129+
default 0 if SHELL_BACKEND_RTT_LOG_LEVEL_NONE
130+
default 1 if SHELL_BACKEND_RTT_LOG_LEVEL_ERR
131+
default 2 if SHELL_BACKEND_RTT_LOG_LEVEL_WRN
132+
default 3 if SHELL_BACKEND_RTT_LOG_LEVEL_INF
133+
default 4 if SHELL_BACKEND_RTT_LOG_LEVEL_DBG
134+
default 5 if SHELL_BACKEND_RTT_LOG_LEVEL_DEFAULT
135+
136+
endif #SHELL_BACKEND_RTT
137+
67138
config SHELL_BACKEND_DUMMY
68139
bool "Enable dummy backend."
69140
help

subsys/shell/shell_rtt.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ static void shell_rtt_rx_process(struct shell_rtt *sh_rtt)
2525

2626
if (count > 0) {
2727
sh_rtt->rx_cnt = count;
28-
sh_rtt->handler(SHELL_TRANSPORT_EVT_RX_RDY, sh_rtt->context);
28+
sh_rtt->handler(SHELL_TRANSPORT_EVT_RX_RDY,
29+
sh_rtt->context);
2930
}
3031

3132
k_sleep(K_MSEC(10));
@@ -102,8 +103,11 @@ const struct shell_transport_api shell_rtt_transport_api = {
102103
static int enable_shell_rtt(struct device *arg)
103104
{
104105
ARG_UNUSED(arg);
106+
bool log_backend = CONFIG_SHELL_BACKEND_RTT_LOG_LEVEL > 0;
107+
u32_t level = (CONFIG_SHELL_BACKEND_RTT_LOG_LEVEL > LOG_LEVEL_DBG) ?
108+
CONFIG_LOG_MAX_LEVEL : CONFIG_SHELL_BACKEND_RTT_LOG_LEVEL;
105109

106-
shell_init(&rtt_shell, NULL, false, false, LOG_LEVEL_INF);
110+
shell_init(&rtt_shell, NULL, true, log_backend, level);
107111

108112
return 0;
109113
}

subsys/shell/shell_uart.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,13 @@ static int enable_shell_uart(struct device *arg)
230230
ARG_UNUSED(arg);
231231
struct device *dev =
232232
device_get_binding(CONFIG_UART_CONSOLE_ON_DEV_NAME);
233-
shell_init(&uart_shell, dev, true, true, LOG_LEVEL_INF);
233+
bool log_backend = CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL > 0;
234+
u32_t level =
235+
(CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL > LOG_LEVEL_DBG) ?
236+
CONFIG_LOG_MAX_LEVEL : CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL;
237+
238+
shell_init(&uart_shell, dev, true, log_backend, level);
239+
234240
return 0;
235241
}
236242
SYS_INIT(enable_shell_uart, POST_KERNEL, 0);

0 commit comments

Comments
 (0)