]> git.friedersdorff.com Git - max/tmk_keyboard.git/commitdiff
lufa: Add debug print support with UART
authortmk <hasu@tmk-kbd.com>
Tue, 26 Mar 2019 07:09:45 +0000 (16:09 +0900)
committertmk <hasu@tmk-kbd.com>
Mon, 6 May 2019 15:06:54 +0000 (00:06 +0900)
tmk_core/common.mk
tmk_core/protocol/lufa.mk
tmk_core/protocol/lufa/lufa.c

index 14951ec8517e884163d0a154ecce360d3ed460b8..06507ecf2d0474cd4509eecb24fccc853f6e368a 100644 (file)
@@ -50,8 +50,12 @@ endif
 ifeq (yes,$(strip $(CONSOLE_ENABLE)))
     OPT_DEFS += -DCONSOLE_ENABLE
 else
-    OPT_DEFS += -DNO_PRINT
-    OPT_DEFS += -DNO_DEBUG
+    # Remove print functions when console is disabled and
+    # no other print method like UART is available
+    ifneq (yes, $(strip $(DEBUG_PRINT_AVAILABLE)))
+       OPT_DEFS += -DNO_PRINT
+       OPT_DEFS += -DNO_DEBUG
+    endif
 endif
 
 ifeq (yes,$(strip $(COMMAND_ENABLE)))
index 1b529bde61e15dc6575150545b1de1f8cefdc0e3..19fc80d480ed8e086a6141f8524e1ab879f6f112 100644 (file)
@@ -49,7 +49,20 @@ OPT_DEFS += $(LUFA_OPTS)
 # This indicates using LUFA stack
 OPT_DEFS += -DPROTOCOL_LUFA
 
+ifeq (yes,$(strip $(LUFA_DEBUG)))
+    LUFA_OPTS += -DLUFA_DEBUG
+endif
+
 ifeq (yes,$(strip $(LUFA_DEBUG_SUART)))
     SRC += common/avr/suart.S
     LUFA_OPTS += -DLUFA_DEBUG_SUART
+    # Keep print/debug lines when disabling HID console. See common.mk.
+    DEBUG_PRINT_AVAILABLE = yes
+endif
+
+ifeq (yes,$(strip $(LUFA_DEBUG_UART)))
+    SRC += common/avr/uart.c
+    LUFA_OPTS += -DLUFA_DEBUG_UART
+    # Keep print/debug lines when disabling HID console. See common.mk.
+    DEBUG_PRINT_AVAILABLE = yes
 endif
index b5d0b50e7b1de376798a68a1d8266ee836f7c364..ffa5cfbde6fea5bf27f52e31a931b22fbd24f629 100644 (file)
 #include "avr/suart.h"
 #endif
 
+#ifdef LUFA_DEBUG_UART
+#include "uart.h"
+#endif
+
 #include "matrix.h"
 #include "descriptor.h"
 #include "lufa.h"
@@ -218,7 +222,9 @@ static void console_task(void)
 */
 void EVENT_USB_Device_Connect(void)
 {
+#ifdef LUFA_DEBUG
     print("[C]");
+#endif
     /* For battery powered device */
     if (!USB_IsInitialized) {
         USB_Disable();
@@ -229,7 +235,9 @@ void EVENT_USB_Device_Connect(void)
 
 void EVENT_USB_Device_Disconnect(void)
 {
+#ifdef LUFA_DEBUG
     print("[D]");
+#endif
     /* For battery powered device */
     USB_IsInitialized = false;
 /* TODO: This doesn't work. After several plug in/outs can not be enumerated.
@@ -575,25 +583,22 @@ static void send_consumer(uint16_t data)
 /*******************************************************************************
  * sendchar
  ******************************************************************************/
-#ifdef CONSOLE_ENABLE
 int8_t sendchar(uint8_t c)
 {
     #ifdef LUFA_DEBUG_SUART
     xmit(c);
     #endif
 
-    bool r = console_putc(c);
-    return (r ? 0 : -1);
-}
-#else
-int8_t sendchar(uint8_t c)
-{
-    #ifdef LUFA_DEBUG_SUART
-    xmit(c);
+    #ifdef LUFA_DEBUG_UART
+    uart_putchar(c);
+    #endif
+
+    #ifdef CONSOLE_ENABLE
+    console_putc(c);
     #endif
+
     return 0;
 }
-#endif
 
 
 /*******************************************************************************
@@ -629,6 +634,10 @@ int main(void)
     SUART_OUT_PORT |= (1<<SUART_OUT_BIT);
 #endif
 
+#ifdef LUFA_DEBUG_UART
+    uart_init(115200);
+#endif
+
     // setup sendchar: DO NOT USE print functions before this line
     print_set_sendchar(sendchar);
     host_set_driver(&lufa_driver);