mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #12 from ARMmbed/feature-swo
Optional SWO output instead of UARTpull/11051/head v1.0.0-minimal-printf
commit
3e3b133515
|
@ -12,6 +12,10 @@
|
||||||
"enable-64-bit": {
|
"enable-64-bit": {
|
||||||
"help": "Enable printing 64 bit integers",
|
"help": "Enable printing 64 bit integers",
|
||||||
"value": true
|
"value": true
|
||||||
|
},
|
||||||
|
"console-output": {
|
||||||
|
"help": "Console output. Options: UART, SWO",
|
||||||
|
"value": "UART"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,18 +25,26 @@
|
||||||
/* MBED */
|
/* MBED */
|
||||||
/***************************/
|
/***************************/
|
||||||
#if TARGET_LIKE_MBED
|
#if TARGET_LIKE_MBED
|
||||||
|
|
||||||
|
#define CONSOLE_OUTPUT_UART 1
|
||||||
|
#define CONSOLE_OUTPUT_SWO 2
|
||||||
|
#define mbed_console_concat_(x) CONSOLE_OUTPUT_##x
|
||||||
|
#define mbed_console_concat(x) mbed_console_concat_(x)
|
||||||
|
#define CONSOLE_OUTPUT mbed_console_concat(MBED_CONF_MINIMAL_PRINTF_CONSOLE_OUTPUT)
|
||||||
|
|
||||||
|
#if MBED_CONF_PLATFORM_STDIO_CONVERT_NEWLINES
|
||||||
|
static char mbed_stdio_out_prev = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CONSOLE_OUTPUT == CONSOLE_OUTPUT_UART
|
||||||
|
#if DEVICE_SERIAL
|
||||||
/*
|
/*
|
||||||
Serial initialization and new line replacement is a direct copy from mbed_retarget.cpp
|
Serial initialization and new line replacement is a direct copy from mbed_retarget.cpp
|
||||||
If the static modifier were to be removed, this part of the code would not be necessary.
|
If the static modifier were to be removed, this part of the code would not be necessary.
|
||||||
*/
|
*/
|
||||||
#include "hal/serial_api.h"
|
#include "hal/serial_api.h"
|
||||||
|
|
||||||
#if DEVICE_SERIAL
|
|
||||||
static serial_t stdio_uart = { 0 };
|
static serial_t stdio_uart = { 0 };
|
||||||
#if MBED_CONF_PLATFORM_STDIO_CONVERT_NEWLINES
|
|
||||||
static char mbed_stdio_out_prev = 0;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* module variable for keeping track of initialization */
|
/* module variable for keeping track of initialization */
|
||||||
static bool not_initialized = true;
|
static bool not_initialized = true;
|
||||||
|
@ -47,11 +55,9 @@ static void init_serial()
|
||||||
{
|
{
|
||||||
not_initialized = false;
|
not_initialized = false;
|
||||||
|
|
||||||
#if DEVICE_SERIAL
|
|
||||||
serial_init(&stdio_uart, STDIO_UART_TX, STDIO_UART_RX);
|
serial_init(&stdio_uart, STDIO_UART_TX, STDIO_UART_RX);
|
||||||
#if MBED_CONF_PLATFORM_STDIO_BAUD_RATE
|
#if MBED_CONF_PLATFORM_STDIO_BAUD_RATE
|
||||||
serial_baud(&stdio_uart, MBED_CONF_PLATFORM_STDIO_BAUD_RATE);
|
serial_baud(&stdio_uart, MBED_CONF_PLATFORM_STDIO_BAUD_RATE);
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -59,6 +65,22 @@ static void init_serial()
|
||||||
#define MBED_INITIALIZE_PRINT(x) { init_serial(); }
|
#define MBED_INITIALIZE_PRINT(x) { init_serial(); }
|
||||||
#define MBED_PRINT_CHARACTER(x) { serial_putc(&stdio_uart, x); }
|
#define MBED_PRINT_CHARACTER(x) { serial_putc(&stdio_uart, x); }
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define MBED_INITIALIZE_PRINT(x)
|
||||||
|
#define MBED_PRINT_CHARACTER(x)
|
||||||
|
|
||||||
|
#endif // if DEVICE_SERIAL
|
||||||
|
|
||||||
|
#elif CONSOLE_OUTPUT == CONSOLE_OUTPUT_SWO
|
||||||
|
|
||||||
|
#include "hal/itm_api.h"
|
||||||
|
|
||||||
|
#define MBED_INITIALIZE_PRINT(x) { mbed_itm_init(); }
|
||||||
|
#define MBED_PRINT_CHARACTER(x) { mbed_itm_send(ITM_PORT_SWO, x); }
|
||||||
|
|
||||||
|
#endif // if CONSOLE_OUTPUT
|
||||||
|
|
||||||
/***************************/
|
/***************************/
|
||||||
/* Linux */
|
/* Linux */
|
||||||
/***************************/
|
/***************************/
|
||||||
|
|
Loading…
Reference in New Issue