📄 console.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 + -