diff options
Diffstat (limited to 'common/mbed/xprintf.cpp')
-rw-r--r-- | common/mbed/xprintf.cpp | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/common/mbed/xprintf.cpp b/common/mbed/xprintf.cpp deleted file mode 100644 index 3647ece75..000000000 --- a/common/mbed/xprintf.cpp +++ /dev/null @@ -1,51 +0,0 @@ -#include <cstdarg> -//#include <stdarg.h> -#include "mbed.h" -#include "mbed/xprintf.h" - - -#define STRING_STACK_LIMIT 120 - -//TODO -int xprintf(const char* format, ...) { return 0; } - -#if 0 -/* mbed Serial */ -Serial ser(UART_TX, UART_RX); - -/* TODO: Need small implementation for embedded */ -int xprintf(const char* format, ...) -{ - /* copy from mbed/common/RawSerial.cpp */ - std::va_list arg; - va_start(arg, format); - int len = vsnprintf(NULL, 0, format, arg); - if (len < STRING_STACK_LIMIT) { - char temp[STRING_STACK_LIMIT]; - vsprintf(temp, format, arg); - ser.puts(temp); - } else { - char *temp = new char[len + 1]; - vsprintf(temp, format, arg); - ser.puts(temp); - delete[] temp; - } - va_end(arg); - return len; - -/* Fail: __builtin_va_arg_pack? - * https://gcc.gnu.org/onlinedocs/gcc-4.3.5/gcc/Constructing-Calls.html#Constructing-Calls - void *arg = __builtin_apply_args(); - void *ret = __builtin_apply((void*)(&(ser.printf)), arg, 100); - __builtin_return(ret) -*/ -/* Fail: varargs can not be passed to printf - //int r = ser.printf("test %i\r\n", 123); - va_list arg; - va_start(arg, format); - int r = ser.printf(format, arg); - va_end(arg); - return r; -*/ -} -#endif |