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

📄 console.c

📁 it is a sample code for s3c2410 board.
💻 C
字号:
#include "console.h"
#include "4510addr.h"
#include <stdarg.h>

/*******************************************
 *uart initial setting
 *******************************************/
int console_init(void)
{
	//Line control register : Normal,No parity,1 stop,8 bits
	outl(0x03, ULCON0);
	//control register, receive interrupt ans transmit interrupt
	outl(0x09, UCON0); 
	//setting buadrate 19200
	outl(0x500, UBRDIV0);
	//Wait until tx shifter is empty.
    while (!(inl(USTAT0) & 0x80)); 
	return 0;
}

int console_write(int ch)
{
	while (!(inl(USTAT0) & 0x40));
	outl(ch, UTXBUF0);

	return 0;
}

int console_read(void)
{
	while (!(inl(USTAT0) & 0x20));

	return (int)inl(URXBUF0);
}

int kbhit(void)
{
	return (inl(USTAT0) & 0x20);
}

int getch(void)
{
	return console_read();
}

int putch(int ch)
{
	return console_write(ch);
}

int puts(const char *s)
{
	while (*s != 0) {
		putch(*s++);
	}
	return 0;
}

int getstr(const char *s, int n)
{
	char *p;
	int ch;

	memcpy(p, s, n);
	while (1) {
		ch = getch();
		if (ch == KEY_ENTER)
			break;
		if (ch == KEY_BACKSPACE && p > s) {
			p--;
			putch(ch);
		} else if ((p - s) < (n - 1)) {
			*p++ = (char)ch;
			putch(ch);
		}
	}
	*p = '\0';
	return 0;
}

⌨️ 快捷键说明

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