diff options
Diffstat (limited to 'tmk_core/common/print.h')
| -rw-r--r-- | tmk_core/common/print.h | 42 | 
1 files changed, 36 insertions, 6 deletions
| diff --git a/tmk_core/common/print.h b/tmk_core/common/print.h index 8836c0fc7c..2d7184bd0d 100644 --- a/tmk_core/common/print.h +++ b/tmk_core/common/print.h @@ -29,7 +29,7 @@  #include <stdbool.h>  #include "util.h" -#if defined(PROTOCOL_CHIBIOS) +#if defined(PROTOCOL_CHIBIOS) || defined(PROTOCOL_ARM_ATSAM)  #define PSTR(x) x  #endif @@ -60,7 +60,7 @@  #    define println(s)         xputs(PSTR(s "\r\n"))  #    define uprint(s)          print(s)  #    define uprintln(s)        println(s) -#    define uprintf(fmt, ...)  xprintf(fmt, ...) +#    define uprintf(fmt, ...)  xprintf(fmt, ##__VA_ARGS__)  #  endif /* USER_PRINT / NORMAL PRINT */ @@ -73,7 +73,9 @@ void print_set_sendchar(int8_t (*print_sendchar_func)(uint8_t));  #elif defined(PROTOCOL_CHIBIOS) /* PROTOCOL_CHIBIOS */ +#ifndef TERMINAL_ENABLE  #  include "chibios/printf.h" +#endif  #  ifdef USER_PRINT /* USER_PRINT */ @@ -99,6 +101,34 @@ void print_set_sendchar(int8_t (*print_sendchar_func)(uint8_t));  #  endif /* USER_PRINT / NORMAL PRINT */ +#elif defined(PROTOCOL_ARM_ATSAM) /* PROTOCOL_ARM_ATSAM */ + +#  include "arm_atsam/printf.h" + +#  ifdef USER_PRINT /* USER_PRINT */ + +// Remove normal print defines +#    define print(s) +#    define println(s) +#    define xprintf(fmt, ...) + +// Create user print defines +#    define uprintf(fmt, ...)  __xprintf(fmt, ##__VA_ARGS__) +#    define uprint(s)          xprintf(s) +#    define uprintln(s)        xprintf(s "\r\n") + +#  else /* NORMAL PRINT */ + +// Create user & normal print defines +#    define xprintf(fmt, ...)  __xprintf(fmt, ##__VA_ARGS__) +#    define print(s)           xprintf(s) +#    define println(s)         xprintf(s "\r\n") +#    define uprint(s)          print(s) +#    define uprintln(s)        println(s) +#    define uprintf(fmt, ...)  xprintf(fmt, ##__VA_ARGS__) + +#  endif /* USER_PRINT / NORMAL PRINT */ +  #elif defined(__arm__) /* __arm__ */  #  include "mbed/xprintf.h" @@ -111,26 +141,26 @@ void print_set_sendchar(int8_t (*print_sendchar_func)(uint8_t));  #    define xprintf(fmt, ...)  // Create user print defines -#    define uprintf(fmt, ...)  __xprintf(fmt, ...) +#    define uprintf(fmt, ...)  __xprintf(fmt, ##__VA_ARGS__)  #    define uprint(s)          xprintf(s)  #    define uprintln(s)        xprintf(s "\r\n")  #  else /* NORMAL PRINT */  // Create user & normal print defines -#    define xprintf(fmt, ...)  __xprintf(fmt, ...) +#    define xprintf(fmt, ...)  __xprintf(fmt, ##__VA_ARGS__)  #    define print(s)           xprintf(s)  #    define println(s)         xprintf(s "\r\n")  #    define uprint(s)          print(s)  #    define uprintln(s)        println(s) -#    define uprintf(fmt, ...)  xprintf(fmt, ...) +#    define uprintf(fmt, ...)  xprintf(fmt, ##__VA_ARGS__)  #  endif /* USER_PRINT / NORMAL PRINT */  /* TODO: to select output destinations: UART/USBSerial */  #  define print_set_sendchar(func) -#endif /* __AVR__ / PROTOCOL_CHIBIOS / __arm__ */ +#endif /* __AVR__ / PROTOCOL_CHIBIOS / PROTOCOL_ARM_ATSAM / __arm__ */  // User print disables the normal print messages in the body of QMK/TMK code and  // is meant as a lightweight alternative to NOPRINT. Use it when you only want to do | 
