debug_uart: Replace debug functions with dummies if CONFIG_DEBUG_UART is not set
authorLukasz Czechowski <lukasz.czechowski@thaumatec.com>
Tue, 20 May 2025 11:36:42 +0000 (13:36 +0200)
committerKever Yang <kever.yang@rock-chips.com>
Fri, 6 Jun 2025 09:12:20 +0000 (17:12 +0800)
In case DEBUG UART is not used, define dummy macros replacing
the actual function implementations that will not be available.
This allows to compile code and avoid linker errors.
Redefine the DEBUG_UART_FUNCS macro if DEBUG UART is not available,
to avoid compilation errors.

Signed-off-by: Lukasz Czechowski <lukasz.czechowski@thaumatec.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
include/debug_uart.h

index 714b369..d5e397d 100644 (file)
@@ -128,6 +128,8 @@ void printdec(unsigned int value);
                        (1 << CONFIG_DEBUG_UART_SHIFT), \
                CONFIG_DEBUG_UART_SHIFT)
 
+#ifdef CONFIG_DEBUG_UART
+
 /*
  * Now define some functions - this should be inserted into the serial driver
  */
@@ -197,4 +199,22 @@ void printdec(unsigned int value);
                _DEBUG_UART_ANNOUNCE \
        } \
 
+#else
+
+#define DEBUG_UART_FUNCS
+
+#define _printch(ch) (void)(ch)
+#define printhex1(digit) (void)(digit)
+#define printhex(value, digits) do { (void)(value); (void)(digits); } while(0)
+
+#define printch(ch) (void)(ch)
+#define printascii(str) (void)(str)
+#define printhex2(value) (void)(value)
+#define printhex4(value) (void)(value)
+#define printhex8(value) (void)(value)
+#define printdec(value) (void)(value)
+#define debug_uart_init() ((void)0)
+
+#endif
+
 #endif