From e23520662dfac30c38c41c87f5593c21f1abfb1d Mon Sep 17 00:00:00 2001 From: tmk Date: Tue, 26 Mar 2019 16:09:45 +0900 Subject: [PATCH] lufa: Add debug print support with UART --- tmk_core/common.mk | 8 ++++++-- tmk_core/protocol/lufa.mk | 13 +++++++++++++ tmk_core/protocol/lufa/lufa.c | 29 +++++++++++++++++++---------- 3 files changed, 38 insertions(+), 12 deletions(-) diff --git a/tmk_core/common.mk b/tmk_core/common.mk index 14951ec8..06507ecf 100644 --- a/tmk_core/common.mk +++ b/tmk_core/common.mk @@ -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))) diff --git a/tmk_core/protocol/lufa.mk b/tmk_core/protocol/lufa.mk index 1b529bde..19fc80d4 100644 --- a/tmk_core/protocol/lufa.mk +++ b/tmk_core/protocol/lufa.mk @@ -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 diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index b5d0b50e..ffa5cfbd 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -56,6 +56,10 @@ #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<