www.pudn.com > vxworks0108.rar > serial.c


/*
modification history
--------------------
2003-4-14,deng xindong   dxd-2000@163.net
*/


#include "ns16550.h"
#include "type.h"
#include "vg4.h"

#define CONFIG_CONS_INDEX  1

#if CONFIG_CONS_INDEX == 1
static NS16550_t console = (NS16550_t) M1543C_COM1_IO_ADRS;
#elif CONFIG_CONS_INDEX == 2
static NS16550_t console = (NS16550_t) M1543C_COM2_IO_ADRS;
#else
#error no valid console defined
#endif

void
serial_init (unsigned long dummy, int baudrate)
{
	int clock_divisor = CFG_NS16550_CLK / 16 / baudrate;
	NS16550_init(console, clock_divisor);
}

void
serial_putc(const char c)
{
	if (c == '\n')
		NS16550_putc(console, '\r');

	NS16550_putc(console, c);
}

void
serial_puts (const char *s)
{
	while (*s) {
		serial_putc (*s++);
	}
}


int
serial_getc(void)
{
	return NS16550_getc(console);
}

int
serial_tstc(void)
{
	return NS16550_tstc(console);
}

void
serial_setbrg (unsigned long dummy, int baudrate)
{
	int clock_divisor = CFG_NS16550_CLK / 16 / baudrate;

	NS16550_reinit(console, clock_divisor);
}