diff --git a/src/keyboard/controller.c b/src/keyboard/controller.c index 8462676..5cfb3af 100644 --- a/src/keyboard/controller.c +++ b/src/keyboard/controller.c @@ -1320,12 +1320,10 @@ void usb_debug_printf(const char *fmt, ...) { } usb_debug_flush_output(); } -#endif -#ifdef KBD_DEBUG -#define debug_print(s) usb_debug_print(PSTR(s)) -#define debug_printf(s, args...) usb_debug_printf(PSTR(s), args) -#else -#define debug_print(s) -#define debug_printf(...) +void usb_debug_free_memory() { + extern int __heap_start, *__brkval; int v, free; + free = (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); + debug_printf("free memory: %d bytes\n", free); +} #endif diff --git a/src/keyboard/controller.h b/src/keyboard/controller.h index c04da2c..d2a9cb3 100644 --- a/src/keyboard/controller.h +++ b/src/keyboard/controller.h @@ -207,8 +207,16 @@ extern uint16_t consumer_key; extern volatile uint8_t debug_flush_timer; +void usb_debug_free_memory(void); void usb_debug_print(const char *s); void usb_debug_printf(const char *fmt, ...); +int8_t usb_debug_putchar(char c); +void usb_debug_flush_output(void); -int8_t usb_debug_putchar(char c); // transmit a character -void usb_debug_flush_output(void); // immediately transmit any buffered output +#ifdef KBD_DEBUG +#define debug_print(s) usb_debug_print(PSTR(s)) +#define debug_printf(s, args...) usb_debug_printf(PSTR(s), args) +#else +#define debug_print(s) +#define debug_printf(...) +#endif