diff --git a/loader/main.c b/loader/main.c index a77b1fd3e..45a25c552 100644 --- a/loader/main.c +++ b/loader/main.c @@ -14,6 +14,7 @@ LOG_MODULE_REGISTER(sketch); #include #include #include +#include #include #include @@ -35,11 +36,11 @@ struct sketch_header_v1 { #define SKETCH_FLAG_LINKED 0x02 #define SKETCH_FLAG_IMMEDIATE 0x04 -#define TARGET_HAS_USB_CDC_SHELL \ - DT_NODE_HAS_PROP(DT_PATH(zephyr_user), cdc_acm) && CONFIG_SHELL && \ +#define TARGET_HAS_USB_CDC \ + DT_NODE_HAS_PROP(DT_PATH(zephyr_user), cdc_acm) && \ (CONFIG_USB_DEVICE_STACK || CONFIG_USB_DEVICE_STACK_NEXT) -#if TARGET_HAS_USB_CDC_SHELL +#if TARGET_HAS_USB_CDC const struct device *const usb_dev = DEVICE_DT_GET(DT_PHANDLE_BY_IDX(DT_PATH(zephyr_user), cdc_acm, 0)); @@ -63,6 +64,7 @@ int usb_enable(usb_dc_status_callback status_cb) { } #endif +#if CONFIG_SHELL static int enable_shell_usb(void) { bool log_backend = CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL > 0; uint32_t level = (CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL > LOG_LEVEL_DBG) ? @@ -75,6 +77,7 @@ static int enable_shell_usb(void) { return 0; } #endif +#endif #ifdef CONFIG_USERSPACE K_THREAD_STACK_DEFINE(llext_stack, CONFIG_MAIN_STACK_SIZE); @@ -198,8 +201,9 @@ static int loader(const struct shell *sh) { size_t sketch_buf_len = sketch_hdr->len; -#if TARGET_HAS_USB_CDC_SHELL +#if TARGET_HAS_USB_CDC int debug = (!sketch_valid) || (sketch_hdr->flags & SKETCH_FLAG_DEBUG); +#if CONFIG_SHELL if (debug && strcmp(k_thread_name_get(k_current_get()), "main") == 0) { // disables default shell on UART shell_uninit(shell_backend_uart_get_ptr(), NULL); @@ -214,6 +218,17 @@ static int loader(const struct shell *sh) { enable_shell_usb(); return 0; } +#elif CONFIG_LOG + for (int i = 0; i < log_backend_count_get(); i++) { + const struct log_backend *backend; + backend = log_backend_get(i); + log_backend_init(backend); + log_backend_enable(backend, backend->cb->ctx, CONFIG_LOG_DEFAULT_LEVEL); + if (!debug) { + break; + } + } +#endif #endif if (sketch_hdr->flags & SKETCH_FLAG_LINKED) { diff --git a/loader/prj.conf b/loader/prj.conf index e5aaf7f41..d0ee6c5bb 100644 --- a/loader/prj.conf +++ b/loader/prj.conf @@ -13,15 +13,9 @@ CONFIG_MAIN_STACK_SIZE=32768 CONFIG_ARDUINO_API=y -CONFIG_SHELL=y -CONFIG_SHELL_STACK_SIZE=2048 -CONFIG_SHELL_CMD_BUFF_SIZE=2048 -CONFIG_SHELL_LOG_LEVEL_DBG=n - CONFIG_LLEXT=y CONFIG_LLEXT_LOG_LEVEL_ERR=y CONFIG_LLEXT_HEAP_SIZE=32 -CONFIG_LLEXT_SHELL=y CONFIG_LLEXT_STORAGE_WRITABLE=y CONFIG_LLEXT_EXPORT_DEVICES=y @@ -41,9 +35,6 @@ CONFIG_UART_CONSOLE=y CONFIG_FLASH=y CONFIG_FLASH_MAP=y -CONFIG_CPP=y -CONFIG_STD_CPP17=y -CONFIG_GLIBCXX_LIBCPP=y CONFIG_REQUIRES_FULL_LIBC=y CONFIG_CBPRINTF_FP_SUPPORT=y @@ -52,3 +43,6 @@ CONFIG_INPUT_THREAD_PRIORITY_OVERRIDE=y CONFIG_INPUT_THREAD_PRIORITY=0 CONFIG_EVENTS=y +CONFIG_THREAD_STACK_INFO=y +CONFIG_DYNAMIC_THREAD=y +CONFIG_DYNAMIC_THREAD_ALLOC=y diff --git a/variants/arduino_giga_r1_stm32h747xx_m7/arduino_giga_r1_stm32h747xx_m7.conf b/variants/arduino_giga_r1_stm32h747xx_m7/arduino_giga_r1_stm32h747xx_m7.conf index 29d512f84..635490f90 100644 --- a/variants/arduino_giga_r1_stm32h747xx_m7/arduino_giga_r1_stm32h747xx_m7.conf +++ b/variants/arduino_giga_r1_stm32h747xx_m7/arduino_giga_r1_stm32h747xx_m7.conf @@ -3,21 +3,27 @@ CONFIG_USB_DEVICE_PRODUCT="Arduino GIGA R1" CONFIG_USB_DEVICE_MANUFACTURER="Arduino" CONFIG_USB_DEVICE_VID=0x2341 CONFIG_USB_DEVICE_PID=0x0066 +CONFIG_USB_DEVICE_INITIALIZE_AT_BOOT=n CONFIG_USB_CDC_ACM=y -CONFIG_USB_CDC_ACM_RINGBUF_SIZE=512 +CONFIG_USB_CDC_ACM_RINGBUF_SIZE=1024 CONFIG_UART_LINE_CTRL=y CONFIG_CDC_ACM_DTE_RATE_CALLBACK_SUPPORT=y CONFIG_LLEXT_STORAGE_WRITABLE=n CONFIG_SHARED_MULTI_HEAP=y -CONFIG_HEAP_MEM_POOL_SIZE=24576 -CONFIG_SHELL_STACK_SIZE=32768 +CONFIG_HEAP_MEM_POOL_SIZE=32768 CONFIG_MAIN_STACK_SIZE=32768 CONFIG_LLEXT_HEAP_SIZE=128 +CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=-1 -CONFIG_CPP=n -CONFIG_SHELL=n +CONFIG_CODE_DATA_RELOCATION=y +CONFIG_MAIN_STACK_REGION="DTCM" +CONFIG_LLEXT_HEAP_REGION="SRAM2" + +CONFIG_LOG_BACKEND_UART=y +CONFIG_LOG_BACKEND_UART_AUTOSTART=n +CONFIG_LOG_DEFAULT_LEVEL=2 CONFIG_FPU=y CONFIG_ADC=y diff --git a/variants/arduino_giga_r1_stm32h747xx_m7/arduino_giga_r1_stm32h747xx_m7.overlay b/variants/arduino_giga_r1_stm32h747xx_m7/arduino_giga_r1_stm32h747xx_m7.overlay index 4d9269ca1..6aba6b4b0 100644 --- a/variants/arduino_giga_r1_stm32h747xx_m7/arduino_giga_r1_stm32h747xx_m7.overlay +++ b/variants/arduino_giga_r1_stm32h747xx_m7/arduino_giga_r1_stm32h747xx_m7.overlay @@ -320,9 +320,15 @@ /{ chosen { zephyr,camera = &dcmi; + zephyr,log-uart = &log_uarts; /* zephyr,console = &board_cdc_acm_uart; */ }; + log_uarts: log_uarts { + compatible = "zephyr,log-uart"; + uarts = <&usart1 &board_cdc_acm_uart>; + }; + /* used to overcome problems with _C analog pins */ gpioz: gpio@deadbeef { compatible = "vnd,gpio"; diff --git a/variants/arduino_nano_33_ble_nrf52840_sense/arduino_nano_33_ble_nrf52840_sense.conf b/variants/arduino_nano_33_ble_nrf52840_sense/arduino_nano_33_ble_nrf52840_sense.conf index 1b7191cad..ea265a899 100644 --- a/variants/arduino_nano_33_ble_nrf52840_sense/arduino_nano_33_ble_nrf52840_sense.conf +++ b/variants/arduino_nano_33_ble_nrf52840_sense/arduino_nano_33_ble_nrf52840_sense.conf @@ -19,18 +19,22 @@ CONFIG_USB_DEVICE_VID=0x2341 CONFIG_USB_DEVICE_PID=0x035A CONFIG_USB_CDC_ACM=y -CONFIG_USB_CDC_ACM_RINGBUF_SIZE=512 +CONFIG_USB_CDC_ACM_RINGBUF_SIZE=1024 CONFIG_UART_LINE_CTRL=y CONFIG_CDC_ACM_DTE_RATE_CALLBACK_SUPPORT=y +CONFIG_LOG_BACKEND_UART=y +CONFIG_LOG_BACKEND_UART_AUTOSTART=n +CONFIG_LOG_DEFAULT_LEVEL=2 + CONFIG_ADC=y CONFIG_PWM=y CONFIG_LLEXT_STORAGE_WRITABLE=n -CONFIG_SHELL_STACK_SIZE=2048 CONFIG_HEAP_MEM_POOL_SIZE=16384 CONFIG_LLEXT_HEAP_SIZE=128 CONFIG_MAIN_STACK_SIZE=16384 +CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=-1 CONFIG_FPU=y diff --git a/variants/arduino_nano_33_ble_nrf52840_sense/arduino_nano_33_ble_nrf52840_sense.overlay b/variants/arduino_nano_33_ble_nrf52840_sense/arduino_nano_33_ble_nrf52840_sense.overlay index ee99b2697..beb714835 100644 --- a/variants/arduino_nano_33_ble_nrf52840_sense/arduino_nano_33_ble_nrf52840_sense.overlay +++ b/variants/arduino_nano_33_ble_nrf52840_sense/arduino_nano_33_ble_nrf52840_sense.overlay @@ -42,6 +42,17 @@ }; }; +/{ + chosen { + zephyr,log-uart = &log_uarts; + }; + + log_uarts: log_uarts { + compatible = "zephyr,log-uart"; + uarts = <&uart0 &board_cdc_acm_uart>; + }; +}; + / { zephyr,user { diff --git a/variants/arduino_nano_matter_mgm240sd22vna/arduino_nano_matter_mgm240sd22vna.conf b/variants/arduino_nano_matter_mgm240sd22vna/arduino_nano_matter_mgm240sd22vna.conf index 0abcbeddb..2009182ff 100644 --- a/variants/arduino_nano_matter_mgm240sd22vna/arduino_nano_matter_mgm240sd22vna.conf +++ b/variants/arduino_nano_matter_mgm240sd22vna/arduino_nano_matter_mgm240sd22vna.conf @@ -31,6 +31,8 @@ CONFIG_STACK_SENTINEL=n CONFIG_INIT_STACKS=n CONFIG_THREAD_NAME=n CONFIG_THREAD_STACK_INFO=n +CONFIG_DYNAMIC_THREAD=n +CONFIG_DYNAMIC_THREAD_ALLOC=n CONFIG_STACK_CANARIES=n CONFIG_THREAD_ANALYZER=n CONFIG_SYS_HEAP_RUNTIME_STATS=n diff --git a/variants/arduino_nicla_sense_me_nrf52832/arduino_nicla_sense_me_nrf52832.conf b/variants/arduino_nicla_sense_me_nrf52832/arduino_nicla_sense_me_nrf52832.conf index 8fb871e57..4388a81e4 100644 --- a/variants/arduino_nicla_sense_me_nrf52832/arduino_nicla_sense_me_nrf52832.conf +++ b/variants/arduino_nicla_sense_me_nrf52832/arduino_nicla_sense_me_nrf52832.conf @@ -9,21 +9,20 @@ CONFIG_BT_BUF_EVT_DISCARDABLE_SIZE=255 CONFIG_BT_MAX_CONN=4 CONFIG_BT_CTLR_ADV_EXT=y CONFIG_BT_CTLR_ADV_PERIODIC=y - -CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=512 +CONFIG_BT_RX_STACK_SIZE=1024 +CONFIG_BT_HCI_TX_STACK_SIZE=1024 # Workaround: Unable to allocate command buffer when using K_NO_WAIT since # Host number of completed commands does not follow normal flow control. CONFIG_BT_BUF_CMD_TX_COUNT=10 +CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=512 + CONFIG_ADC=y #CONFIG_PWM=y CONFIG_LLEXT_STORAGE_WRITABLE=n -CONFIG_SHELL_STACK_SIZE=1024 CONFIG_HEAP_MEM_POOL_SIZE=1024 CONFIG_LLEXT_HEAP_SIZE=15 CONFIG_MAIN_STACK_SIZE=2048 - -CONFIG_BT_RX_STACK_SIZE=1024 -CONFIG_BT_HCI_TX_STACK_SIZE=1024 +CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=-1 diff --git a/variants/arduino_opta_stm32h747xx_m7/arduino_opta_stm32h747xx_m7.conf b/variants/arduino_opta_stm32h747xx_m7/arduino_opta_stm32h747xx_m7.conf index b23ca5cde..0f28cc3de 100644 --- a/variants/arduino_opta_stm32h747xx_m7/arduino_opta_stm32h747xx_m7.conf +++ b/variants/arduino_opta_stm32h747xx_m7/arduino_opta_stm32h747xx_m7.conf @@ -5,19 +5,26 @@ CONFIG_USB_DEVICE_VID=0x2341 CONFIG_USB_DEVICE_PID=0x0064 CONFIG_USB_CDC_ACM=y -CONFIG_USB_CDC_ACM_RINGBUF_SIZE=512 +CONFIG_USB_CDC_ACM_RINGBUF_SIZE=1024 CONFIG_UART_LINE_CTRL=y CONFIG_CDC_ACM_DTE_RATE_CALLBACK_SUPPORT=y CONFIG_LLEXT_STORAGE_WRITABLE=n -CONFIG_HEAP_MEM_POOL_SIZE=24576 -CONFIG_SHELL_STACK_SIZE=32768 +CONFIG_HEAP_MEM_POOL_SIZE=32768 CONFIG_MAIN_STACK_SIZE=32768 CONFIG_LLEXT_HEAP_SIZE=128 +CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=-1 -CONFIG_FPU=y +CONFIG_CODE_DATA_RELOCATION=y +CONFIG_MAIN_STACK_REGION="DTCM" +CONFIG_LLEXT_HEAP_REGION="SRAM2" + +CONFIG_LOG_BACKEND_UART=y +CONFIG_LOG_BACKEND_UART_AUTOSTART=n +CONFIG_LOG_DEFAULT_LEVEL=2 +CONFIG_FPU=y CONFIG_ADC=y CONFIG_DAC=n CONFIG_PWM=n @@ -45,13 +52,10 @@ CONFIG_SDHC_INIT_PRIORITY=75 CONFIG_SDIO_STACK=y CONFIG_CYW4343W=y CONFIG_WIFI=y -CONFIG_NET_L2_WIFI_SHELL=y CONFIG_AIROC_WIFI_CUSTOM=y CONFIG_STM32_MEMMAP=y -CONFIG_NET_CORE_LOG_LEVEL_DBG=y - CONFIG_NETWORKING=y CONFIG_NET_IPV6=n CONFIG_NET_IPV4=y @@ -87,7 +91,7 @@ CONFIG_MBEDTLS=y CONFIG_MBEDTLS_BUILTIN=y CONFIG_MBEDTLS_PEM_CERTIFICATE_FORMAT=y CONFIG_MBEDTLS_ENABLE_HEAP=y -CONFIG_MBEDTLS_HEAP_SIZE=60000 +CONFIG_MBEDTLS_HEAP_SIZE=80000 CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN=7168 CONFIG_MBEDTLS_HASH_ALL_ENABLED=y CONFIG_MBEDTLS_CMAC=y diff --git a/variants/arduino_opta_stm32h747xx_m7/arduino_opta_stm32h747xx_m7.overlay b/variants/arduino_opta_stm32h747xx_m7/arduino_opta_stm32h747xx_m7.overlay index d018328ea..2b8cef4cf 100644 --- a/variants/arduino_opta_stm32h747xx_m7/arduino_opta_stm32h747xx_m7.overlay +++ b/variants/arduino_opta_stm32h747xx_m7/arduino_opta_stm32h747xx_m7.overlay @@ -40,6 +40,12 @@ zephyr,console = &usart6; zephyr,shell-uart = &usart6; zephyr,uart-mcumgr = &usart6; + zephyr,log-uart = &log_uarts; + }; + + log_uarts: log_uarts { + compatible = "zephyr,log-uart"; + uarts = <&usart6 &board_cdc_acm_uart>; }; /* used to overcome problems with _C analog pins */ diff --git a/variants/arduino_portenta_c33_r7fa6m5bh3cfc/arduino_portenta_c33_r7fa6m5bh3cfc.conf b/variants/arduino_portenta_c33_r7fa6m5bh3cfc/arduino_portenta_c33_r7fa6m5bh3cfc.conf index c79f252c3..397671251 100644 --- a/variants/arduino_portenta_c33_r7fa6m5bh3cfc/arduino_portenta_c33_r7fa6m5bh3cfc.conf +++ b/variants/arduino_portenta_c33_r7fa6m5bh3cfc/arduino_portenta_c33_r7fa6m5bh3cfc.conf @@ -10,7 +10,6 @@ CONFIG_USB_DEVICE_INITIALIZE_AT_BOOT=n CONFIG_SERIAL=y CONFIG_UART_LINE_CTRL=y CONFIG_USBD_CDC_ACM_CLASS=y -CONFIG_CDC_ACM_DTE_RATE_CALLBACK_SUPPORT=y CONFIG_USBD_CDC_ACM_LOG_LEVEL_ERR=y CONFIG_UDC_DRIVER_LOG_LEVEL_ERR=y CONFIG_USBD_LOG_LEVEL_ERR=y @@ -21,15 +20,14 @@ CONFIG_FPU=y CONFIG_USERSPACE=n CONFIG_ARM_MPU=n -CONFIG_CPP=n -CONFIG_SHELL=n +CONFIG_LOG_BACKEND_UART=y +CONFIG_LOG_BACKEND_UART_AUTOSTART=n +CONFIG_LOG_DEFAULT_LEVEL=2 CONFIG_MAIN_STACK_SIZE=32768 CONFIG_LLEXT_HEAP_SIZE=128 CONFIG_HEAP_MEM_POOL_SIZE=32768 CONFIG_ISR_STACK_SIZE=8192 -CONFIG_LOG_PROCESS_THREAD_STACK_SIZE=8192 -CONFIG_IDLE_STACK_SIZE=8192 CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=8192 CONFIG_ADC=y diff --git a/variants/arduino_portenta_c33_r7fa6m5bh3cfc/arduino_portenta_c33_r7fa6m5bh3cfc.overlay b/variants/arduino_portenta_c33_r7fa6m5bh3cfc/arduino_portenta_c33_r7fa6m5bh3cfc.overlay index 6b5d5aefa..262463420 100644 --- a/variants/arduino_portenta_c33_r7fa6m5bh3cfc/arduino_portenta_c33_r7fa6m5bh3cfc.overlay +++ b/variants/arduino_portenta_c33_r7fa6m5bh3cfc/arduino_portenta_c33_r7fa6m5bh3cfc.overlay @@ -5,6 +5,17 @@ }; }; +/{ + chosen { + zephyr,log-uart = &log_uarts; + }; + + log_uarts: log_uarts { + compatible = "zephyr,log-uart"; + uarts = <&uart9 &board_cdc_acm_uart>; + }; +}; + &flash0 { partitions { mcuboot: partition@0 { diff --git a/variants/arduino_portenta_h7_stm32h747xx_m7/arduino_portenta_h7_stm32h747xx_m7.conf b/variants/arduino_portenta_h7_stm32h747xx_m7/arduino_portenta_h7_stm32h747xx_m7.conf index 4d5631b26..f657c10ed 100644 --- a/variants/arduino_portenta_h7_stm32h747xx_m7/arduino_portenta_h7_stm32h747xx_m7.conf +++ b/variants/arduino_portenta_h7_stm32h747xx_m7/arduino_portenta_h7_stm32h747xx_m7.conf @@ -3,9 +3,10 @@ CONFIG_USB_DEVICE_PRODUCT="Arduino Portenta H7" CONFIG_USB_DEVICE_MANUFACTURER="Arduino" CONFIG_USB_DEVICE_VID=0x2341 CONFIG_USB_DEVICE_PID=0x005b +CONFIG_USB_DEVICE_INITIALIZE_AT_BOOT=n CONFIG_USB_CDC_ACM=y -CONFIG_USB_CDC_ACM_RINGBUF_SIZE=512 +CONFIG_USB_CDC_ACM_RINGBUF_SIZE=1024 CONFIG_UART_LINE_CTRL=y CONFIG_CDC_ACM_DTE_RATE_CALLBACK_SUPPORT=y @@ -14,8 +15,9 @@ CONFIG_SHARED_MULTI_HEAP=y CONFIG_HEAP_MEM_POOL_SIZE=32768 CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=-1 -CONFIG_CPP=n -CONFIG_SHELL=n +CONFIG_LOG_BACKEND_UART=y +CONFIG_LOG_BACKEND_UART_AUTOSTART=n +CONFIG_LOG_DEFAULT_LEVEL=2 CONFIG_FPU=y CONFIG_ICACHE=y diff --git a/variants/arduino_portenta_h7_stm32h747xx_m7/arduino_portenta_h7_stm32h747xx_m7.overlay b/variants/arduino_portenta_h7_stm32h747xx_m7/arduino_portenta_h7_stm32h747xx_m7.overlay index f3f377b3c..75782c44f 100644 --- a/variants/arduino_portenta_h7_stm32h747xx_m7/arduino_portenta_h7_stm32h747xx_m7.overlay +++ b/variants/arduino_portenta_h7_stm32h747xx_m7/arduino_portenta_h7_stm32h747xx_m7.overlay @@ -248,6 +248,12 @@ zephyr,console = &usart6; zephyr,shell-uart = &usart6; zephyr,cdc-acm-uart0 = &usart6; + zephyr,log-uart = &log_uarts; + }; + + log_uarts: log_uarts { + compatible = "zephyr,log-uart"; + uarts = <&usart6 &board_cdc_acm_uart>; }; /* used to overcome problems with _C analog pins */ diff --git a/variants/arduino_uno_q_stm32u585xx/arduino_uno_q_stm32u585xx.conf b/variants/arduino_uno_q_stm32u585xx/arduino_uno_q_stm32u585xx.conf index 52da466e3..1d6cbef98 100644 --- a/variants/arduino_uno_q_stm32u585xx/arduino_uno_q_stm32u585xx.conf +++ b/variants/arduino_uno_q_stm32u585xx/arduino_uno_q_stm32u585xx.conf @@ -1,8 +1,7 @@ CONFIG_LLEXT_STORAGE_WRITABLE=n -CONFIG_HEAP_MEM_POOL_SIZE=131072 -CONFIG_SHELL_STACK_SIZE=32768 -CONFIG_MAIN_STACK_SIZE=32768 +CONFIG_HEAP_MEM_POOL_SIZE=32768 CONFIG_LLEXT_HEAP_SIZE=128 +CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=-1 CONFIG_FPU=y @@ -25,17 +24,11 @@ CONFIG_ARM_MPU=n CONFIG_ENTROPY_GENERATOR=y CONFIG_TEST_RANDOM_GENERATOR=y -CONFIG_LOG_MODE_IMMEDIATE=n - CONFIG_COUNTER=y -CONFIG_COUNTER_SHELL=y CONFIG_DEBUG_THREAD_INFO=y -CONFIG_MAX_THREAD_BYTES=6 -CONFIG_DYNAMIC_THREAD=y CONFIG_DYNAMIC_THREAD_POOL_SIZE=2 -CONFIG_DYNAMIC_THREAD_ALLOC=y CONFIG_MAIN_THREAD_PRIORITY=5