usb: device: cdc_acm: Prevent recursive logging loop
Allow enabling CDC ACM logging only if CDC ACM is not used as logging backend. This prevents endless recursive logging loop, especially visible when minimal footprint logging is enabled. Fixes: #52981 Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
This commit is contained in:
parent
8bc094610c
commit
21975231e2
4 changed files with 15 additions and 2 deletions
|
@ -33,10 +33,11 @@ config USB_DEVICE_REMOTE_WAKEUP
|
||||||
|
|
||||||
if LOG
|
if LOG
|
||||||
|
|
||||||
# Set USB and CDC log level to error only
|
# Logger cannot use itself to log
|
||||||
config USB_CDC_ACM_LOG_LEVEL
|
config USB_CDC_ACM_LOG_LEVEL
|
||||||
default 1
|
default 0
|
||||||
|
|
||||||
|
# Set USB log level to error only
|
||||||
config USB_DEVICE_LOG_LEVEL
|
config USB_DEVICE_LOG_LEVEL
|
||||||
default 1
|
default 1
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,9 @@ CONFIG_SERIAL=y
|
||||||
# enable console
|
# enable console
|
||||||
CONFIG_CONSOLE=y
|
CONFIG_CONSOLE=y
|
||||||
|
|
||||||
|
# Logger cannot use itself to log
|
||||||
|
CONFIG_USB_CDC_ACM_LOG_LEVEL_OFF=y
|
||||||
|
|
||||||
# enable USB
|
# enable USB
|
||||||
CONFIG_USB_DEVICE_STACK=y
|
CONFIG_USB_DEVICE_STACK=y
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ CONFIG_USB_DEVICE_VID=0x0483
|
||||||
CONFIG_USB_DEVICE_PID=0x1234
|
CONFIG_USB_DEVICE_PID=0x1234
|
||||||
CONFIG_USB_DEVICE_STACK=y
|
CONFIG_USB_DEVICE_STACK=y
|
||||||
CONFIG_USB_DEVICE_PRODUCT="Zephyr CDC SensorTile.box"
|
CONFIG_USB_DEVICE_PRODUCT="Zephyr CDC SensorTile.box"
|
||||||
|
CONFIG_USB_CDC_ACM_LOG_LEVEL_OFF=y
|
||||||
|
|
||||||
CONFIG_UART_INTERRUPT_DRIVEN=y
|
CONFIG_UART_INTERRUPT_DRIVEN=y
|
||||||
CONFIG_UART_LINE_CTRL=y
|
CONFIG_UART_LINE_CTRL=y
|
||||||
|
|
|
@ -56,6 +56,14 @@
|
||||||
/* definitions */
|
/* definitions */
|
||||||
|
|
||||||
#include <zephyr/logging/log.h>
|
#include <zephyr/logging/log.h>
|
||||||
|
#if DT_NODE_HAS_COMPAT(DT_CHOSEN(zephyr_console), zephyr_cdc_acm_uart) \
|
||||||
|
&& defined(CONFIG_USB_CDC_ACM_LOG_LEVEL) \
|
||||||
|
&& CONFIG_USB_CDC_ACM_LOG_LEVEL != LOG_LEVEL_NONE
|
||||||
|
/* Prevent endless recursive logging loop and warn user about it */
|
||||||
|
#warning "USB_CDC_ACM_LOG_LEVEL forced to LOG_LEVEL_NONE"
|
||||||
|
#undef CONFIG_USB_CDC_ACM_LOG_LEVEL
|
||||||
|
#define CONFIG_USB_CDC_ACM_LOG_LEVEL LOG_LEVEL_NONE
|
||||||
|
#endif
|
||||||
LOG_MODULE_REGISTER(usb_cdc_acm, CONFIG_USB_CDC_ACM_LOG_LEVEL);
|
LOG_MODULE_REGISTER(usb_cdc_acm, CONFIG_USB_CDC_ACM_LOG_LEVEL);
|
||||||
|
|
||||||
/* 115200bps, no parity, 1 stop bit, 8bit char */
|
/* 115200bps, no parity, 1 stop bit, 8bit char */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue