lufa: Add debug print support with UART

This commit is contained in:
tmk 2019-03-26 16:09:45 +09:00
parent c41e48a0ab
commit e23520662d
3 changed files with 38 additions and 12 deletions

View 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)))

View 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

View file

@ -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<<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);