⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serial.c

📁 Intel PXA270的bootloader程序,在linux环境下运行的.
💻 C
字号:
#include <hardware.h>#include <stdarg.h>#include <io.h>#include <serial.h>#if defined(USE_FFUART)static const unsigned long base = 0x40100000;#elif defined(USE_BTUART)static const unsigned long base = 0x40200000;#elif defined(USE_STUART)static const unsigned long base = 0x40700000;#endif#define uart_put(v, p)		writeb(v, base + (p))#define uart_get(p)			readb(base + (p))extern bool uart_init(void){	int i;	if (uart_get(UART_IER) & IER_UUE)		while (!(uart_get(UART_LSR) & LSR_TEMT));#if defined(USE_FFUART)	pxa_gpio_mode(GPIO34_FFRXD_MD);	pxa_gpio_mode(GPIO39_FFTXD_MD);#elif defined(USE_BTUART)	pxa_gpio_mode(GPIO42_BTRXD_MD);	pxa_gpio_mode(GPIO43_BTTXD_MD);#elif defined(USE_STUART)	pxa_gpio_mode(GPIO46_STRXD_MD);	pxa_gpio_mode(GPIO47_STTXD_MD);#endif	uart_put(~IER_UUE, UART_IER);	uart_put(0x03, UART_LCR);		// 8bit data, 1 stop bit, no parity	uart_put(0x07, UART_FCR);	uart_put(0x03 | LCR_DLAB, UART_LCR);	uart_put(BaudToDLV(UART_BAUDRATE) >> 8, UART_DLH);	uart_put(BaudToDLV(UART_BAUDRATE) & 0xFF, UART_DLL);	uart_put(0x03, UART_LCR);	uart_put(IER_UUE, UART_IER);	// uart enable	i=20; do {		uart_put('\r', UART_THR);	} while (--i);	return true;}extern int uart_putc(int ch){	if (ch == '\n') uart_putc('\r');	while (!(uart_get(UART_LSR) & LSR_TDRQ));	uart_put(ch, UART_THR);	return ch;}extern int uart_getc(void){	int ch = -1;	if (uart_get(UART_LSR) & LSR_DR)		ch = uart_get(UART_RBR);	if (ch == '\r') ch = '\n';	return ch;}extern int uart_puts(const char *s){	const char *t = s;	while (*t) uart_putc(*t++);	return t - s;}extern int uart_putb(int ch){	while (!(uart_get(UART_LSR) & LSR_TDRQ));	uart_put(ch, UART_THR);	return ch;}extern int uart_getb(void){	int ch = -1;	if (uart_get(UART_LSR) & LSR_DR)		ch = uart_get(UART_RBR);	return ch;}extern int uart_write(const void *buff, int count){	const char *s = buff;	while (count-- > 0){		while (!(uart_get(UART_LSR) & LSR_TDRQ));		uart_put(*s++, UART_THR);	}	return count;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -