mbed library sources. Supersedes mbed-src.

Fork of mbed-dev by mbed official

Revision:
160:d5399cc887bb
Parent:
149:156823d33999
--- a/platform/mbed_board.c	Tue Feb 28 17:13:35 2017 +0000
+++ b/platform/mbed_board.c	Tue Mar 14 16:40:56 2017 +0000
@@ -15,10 +15,10 @@
  */
 #include <stdio.h>
 #include "hal/gpio_api.h"
-#include "platform/wait_api.h"
-#include "platform/toolchain.h"
+#include "platform/mbed_wait_api.h"
+#include "platform/mbed_toolchain.h"
 #include "platform/mbed_interface.h"
-#include "platform/critical.h"
+#include "platform/mbed_critical.h"
 #include "hal/serial_api.h"
 
 #if DEVICE_SERIAL
@@ -75,16 +75,31 @@
 
 void mbed_error_vfprintf(const char * format, va_list arg) {
 #if DEVICE_SERIAL
+
+#if MBED_CONF_PLATFORM_STDIO_CONVERT_NEWLINES
+    char stdio_out_prev;
+#endif
+
     core_util_critical_section_enter();
     char buffer[128];
     int size = vsprintf(buffer, format, arg);
     if (size > 0) {
         if (!stdio_uart_inited) {
-        serial_init(&stdio_uart, STDIO_UART_TX, STDIO_UART_RX);
+            serial_init(&stdio_uart, STDIO_UART_TX, STDIO_UART_RX);
         }
-        for (int i = 0; i < size; i++) {
+#if MBED_CONF_PLATFORM_STDIO_CONVERT_NEWLINES
+        for (unsigned int i = 0; i < size; i++) {
+            if (buffer[i] == '\n' && stdio_out_prev != '\r') {
+                 serial_putc(&stdio_uart, '\r');
+            }
+            serial_putc(&stdio_uart, buffer[i]);
+            stdio_out_prev = buffer[i];
+        }
+#else
+        for (unsigned int i = 0; i < size; i++) {
             serial_putc(&stdio_uart, buffer[i]);
         }
+#endif
     }
     core_util_critical_section_exit();
 #endif