41 #if CFG_PRINTF_TARGET != PRINTF_TARGET_SEMIHOST
43 #if CFG_PRINTF_TARGET == PRINTF_TARGET_UART
44 #define retarget_getchar() board_uart_getchar()
45 #define retarget_putchar(c) board_uart_putchar(c);
46 #elif CFG_PRINTF_TARGET == PRINTF_TARGET_SWO
47 volatile int32_t ITM_RxBuffer;
48 #define retarget_getchar() ITM_ReceiveChar()
49 #define retarget_putchar(c) ITM_SendChar(c)
51 #error Target is not implemented yet
57 #if defined __CODE_RED
59 #if CFG_PRINTF_TARGET == PRINTF_TARGET_SWO
60 #error author does not know how to retarget SWO with lpcxpresso/red-suite
67 int __sys_write (
int iFileHandle,
char *buf,
int length)
71 for (
int i=0; i<length; i++)
73 if (buf[i] ==
'\n') retarget_putchar(
'\r');
75 retarget_putchar( buf[i] );
85 int __sys_readc (
void)
87 return (
int) retarget_getchar();
93 #elif defined __CC_ARM // keil
101 if ( ch ==
'\n' ) retarget_putchar(
'\r');
103 retarget_putchar(ch);
108 return retarget_getchar();
111 int fputc(
int ch, FILE *f)
120 #elif defined __ICCARM__ // TODO could not able to retarget to UART with IAR
122 #if CFG_PRINTF_TARGET == PRINTF_TARGET_UART
125 size_t __write(
int handle,
const unsigned char *buf,
size_t length)
128 if (handle == -1)
return 0;
131 if (handle != 1 && handle != 2)
return -1;
133 for (
size_t i=0; i<length; i++)
135 if (buf[i] ==
'\n') retarget_putchar(
'\r');
137 retarget_putchar( buf[i] );
143 size_t __read(
int handle,
unsigned char *buf,
size_t bufSize)
146 if (handle != 0)
return -1;
149 for (i=0; i<bufSize; i++)
163 #endif // CFG_PRINTF_TARGET != PRINTF_TARGET_SEMIHOST
uint8_t board_uart_getchar(void)
Get a character input from UART.