@@ -32,11 +32,26 @@ struct sketch_header_v1 {
3232#define SKETCH_FLAG_DEBUG 0x01
3333#define SKETCH_FLAG_LINKED 0x02
3434
35- #if DT_NODE_HAS_PROP (DT_PATH (zephyr_user ), cdc_acm )
35+ #define TARGET_HAS_USB_CDC_SHELL \
36+ DT_NODE_HAS_PROP(DT_PATH(zephyr_user), cdc_acm) && CONFIG_SHELL && CONFIG_USB_DEVICE_STACK
37+
38+ #if TARGET_HAS_USB_CDC_SHELL
3639const struct device * const usb_dev = DEVICE_DT_GET (DT_PHANDLE_BY_IDX (DT_PATH (zephyr_user ), cdc_acm , 0 ));
37- #endif
3840
39- static int enable_shell_usb (void );
41+ static int enable_shell_usb (void )
42+ {
43+ bool log_backend = CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL > 0 ;
44+ uint32_t level =
45+ (CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL > LOG_LEVEL_DBG ) ?
46+ CONFIG_LOG_MAX_LEVEL : CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL ;
47+ static const struct shell_backend_config_flags cfg_flags =
48+ SHELL_DEFAULT_BACKEND_CONFIG_FLAGS ;
49+
50+ shell_init (shell_backend_uart_get_ptr (), usb_dev , cfg_flags , log_backend , level );
51+
52+ return 0 ;
53+ }
54+ #endif
4055
4156#ifdef CONFIG_USERSPACE
4257K_THREAD_STACK_DEFINE (llext_stack , CONFIG_MAIN_STACK_SIZE );
@@ -84,7 +99,7 @@ static int loader(const struct shell *sh)
8499
85100 size_t sketch_buf_len = sketch_hdr -> len ;
86101
87- #if DT_NODE_HAS_PROP ( DT_PATH ( zephyr_user ), cdc_acm ) && CONFIG_SHELL && CONFIG_USB_DEVICE_STACK
102+ #if TARGET_HAS_USB_CDC_SHELL
88103 int debug = sketch_hdr -> flags & SKETCH_FLAG_DEBUG ;
89104 if (debug && strcmp (k_thread_name_get (k_current_get ()), "main" ) == 0 ) {
90105 // disables default shell on UART
@@ -211,22 +226,6 @@ static int loader(const struct shell *sh)
211226
212227#if CONFIG_SHELL
213228SHELL_CMD_REGISTER (sketch , NULL , "Run sketch" , loader );
214-
215- #if DT_NODE_HAS_PROP (DT_PATH (zephyr_user ), cdc_acm )
216- static int enable_shell_usb (void )
217- {
218- bool log_backend = CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL > 0 ;
219- uint32_t level =
220- (CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL > LOG_LEVEL_DBG ) ?
221- CONFIG_LOG_MAX_LEVEL : CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL ;
222- static const struct shell_backend_config_flags cfg_flags =
223- SHELL_DEFAULT_BACKEND_CONFIG_FLAGS ;
224-
225- shell_init (shell_backend_uart_get_ptr (), usb_dev , cfg_flags , log_backend , level );
226-
227- return 0 ;
228- }
229- #endif
230229#endif
231230
232231int main (void )
0 commit comments