
How To Run: see TencentOS-tiny\board\ALPHA_I.MX_emmc_256ddr\README.md TODO Next: 1. VFP support 2. fault diagnosis support 3. qemu vexpress ca9 support 4. raspberry pi support 5. SMP support
61 lines
993 B
C
61 lines
993 B
C
#include "vsprintf.h"
|
|
#include "string.h"
|
|
#include "printf.h"
|
|
#include "bsp_uart.h"
|
|
|
|
extern void uart_putc(unsigned char c);
|
|
extern unsigned char uart_getc(void);
|
|
|
|
#define OUTBUFSIZE 1024
|
|
#define INBUFSIZE 1024
|
|
|
|
|
|
static char g_pcOutBuf[OUTBUFSIZE];
|
|
static char g_pcInBuf[INBUFSIZE];
|
|
|
|
|
|
int printf(const char *fmt, ...)
|
|
{
|
|
int i;
|
|
int len;
|
|
va_list args;
|
|
|
|
va_start(args, fmt);
|
|
len = vsprintf(g_pcOutBuf,fmt,args);
|
|
va_end(args);
|
|
for (i = 0; i < strlen(g_pcOutBuf); i++)
|
|
{
|
|
uart_putc(g_pcOutBuf[i]);
|
|
}
|
|
return len;
|
|
}
|
|
|
|
int scanf(const char * fmt, ...)
|
|
{
|
|
int i = 0;
|
|
unsigned char c;
|
|
va_list args;
|
|
|
|
while(1)
|
|
{
|
|
c = uart_getc();
|
|
uart_putc(c);
|
|
if((c == 0x0d) || (c == 0x0a))
|
|
{
|
|
g_pcInBuf[i] = '\0';
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
g_pcInBuf[i++] = c;
|
|
}
|
|
}
|
|
|
|
va_start(args,fmt);
|
|
i = vsscanf(g_pcInBuf,fmt,args);
|
|
va_end(args);
|
|
|
|
return i;
|
|
}
|
|
|