#include #include "dev/uart1.h" #include PLATFORM_HEADER #include "hal/micro/micro-common.h" #include "hal/micro/cortexm3/micro-common.h" //#include "uart.h" #ifdef __GNUC__ # define _LLIO_STDIN ((int) stdin) # define _LLIO_STDOUT ((int) stdout) # define _LLIO_STDERR ((int) stderr) # define _LLIO_ERROR (-1) #else # ifdef __ICCARM__ # include # endif #endif #undef putchar int __attribute__(( weak )) putchar(int c) { uart1_writeb(c); return c; } void __io_putchar(char c) { putchar(c); } size_t _write(int handle, const unsigned char * buffer, size_t size) { size_t nChars = 0; if (handle != _LLIO_STDOUT && handle != _LLIO_STDERR) { return _LLIO_ERROR; } if (buffer == 0) { // This means that we should flush internal buffers. //spin until TX complete (TX is idle) while ((SC1_UARTSTAT&SC_UARTTXIDLE)!=SC_UARTTXIDLE) {} return 0; } // ensure port is configured for UART if(SC1_MODE != SC1_MODE_UART) { return _LLIO_ERROR; } while(size--) { __io_putchar(*buffer++); ++nChars; } return nChars; } size_t _read(int handle, unsigned char * buffer, size_t size) { return 0; }