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

📄 medium_io.c

📁 Hermit-at-1.1.3,一款bootloader
💻 C
字号:
#include <target/assert.h>#include <target/medium.h>#include <cs89712/ioregs.h>#include "eth.h"#ifdef ENABLE_MEDIUM_ETHERNET/* buffer used to read commands from the Ethernet interface */static unsigned char ethdata [128];static int ethdata_count, ethdata_pos;#endifint arch_getchar(unsigned long timeout){	if (current_medium == MEDIUM_SERIAL) {#if defined(CONSOLE) && CONSOLE == 1		while (IO_SYSFLG2 & URXFE2);		return IO_UARTDR2 & 0xff;#elif defined(CONSOLE) && CONSOLE == 0		while (IO_SYSFLG1 & URXFE1);		return IO_UARTDR1 & 0xff;#endif	}#ifdef ENABLE_MEDIUM_ETHERNET	if (current_medium == MEDIUM_ETHERNET) {		/* ethernet commands */		if (ethdata_pos == ethdata_count) {			/* read a packet from the Ethernet */			ethdata_count = ether_read(ethdata, sizeof ethdata);			assert(ethdata_count > 0);			assert(ethdata_count <= sizeof ethdata);			ethdata_pos = 0;		}		return ethdata[ethdata_pos++];	}#endif	return 0;}int arch_putchar(int c, unsigned long timeout){#if defined(CONSOLE) && CONSOLE == 1	while (IO_SYSFLG2 & UTXFF2);	IO_UARTDR2 = (unsigned char) c;#elif defined(CONSOLE) && CONSOLE == 0	while (IO_SYSFLG1 & UTXFF1);	IO_UARTDR1 = (unsigned char) c;#endif	return 0;}

⌨️ 快捷键说明

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