📄 eth.h
字号:
/*
*****************************************************************************************************
*
* File name: eth.h
*****************************************************************************************************
*/
#ifdef OS_GLOBALS
#define OS_EXT
#else
#define OS_EXT extern
#endif
/*
*****************************************************************************************************
*
*
*****************************************************************************************************/
#define reg00 XBYTE[0x8100] //reg00- 10为isa网卡接口的寄存器地址300-310;
#define reg01 XBYTE[0x8101]
#define reg02 XBYTE[0x8102]
#define reg03 XBYTE[0x8103]
#define reg04 XBYTE[0x8104]
#define reg05 XBYTE[0x8105]
#define reg06 XBYTE[0x8106]
#define reg07 XBYTE[0x8107]
#define reg08 XBYTE[0x8108]
#define reg09 XBYTE[0x8109]
#define reg0a XBYTE[0x810a]
#define reg0b XBYTE[0x810b]
#define reg0c XBYTE[0x810c]
#define reg0d XBYTE[0x810d]
#define reg0e XBYTE[0x810e]
#define reg0f XBYTE[0x810f]
#define reg10 XBYTE[0x8110]
#define reg18 XBYTE[0x8118] //复位端口
/*#define reg00 *((unsigned char volatile xdata *) 0x8100) //reg00- 10为isa网卡接口的寄存器地址300-310;
#define reg01 *((unsigned char volatile xdata *) 0x8101)
#define reg02 *((unsigned char volatile xdata *) 0x8102)
#define reg03 *((unsigned char volatile xdata *) 0x8103)
#define reg04 *((unsigned char volatile xdata *) 0x8104)
#define reg05 *((unsigned char volatile xdata *) 0x8105)
#define reg06 *((unsigned char volatile xdata *) 0x8106)
#define reg07 *((unsigned char volatile xdata *) 0x8107)
#define reg08 *((unsigned char volatile xdata *) 0x8108)
#define reg09 *((unsigned char volatile xdata *) 0x8109)
#define reg0a *((unsigned char volatile xdata *) 0x810a)
#define reg0b *((unsigned char volatile xdata *) 0x810b)
#define reg0c *((unsigned char volatile xdata *) 0x810c)
#define reg0d *((unsigned char volatile xdata *) 0x810d)
#define reg0e *((unsigned char volatile xdata *) 0x810e)
#define reg0f *((unsigned char volatile xdata *) 0x810f)
#define reg10 *((unsigned char volatile xdata *) 0x8110)
#define reg18 *((unsigned char volatile xdata *) 0x8118) //复位端口*/
//以太网协议
#define ARP_PROTOCOL 0x0806
#define REVARP_PROTOCOL 0x8035
#define IP_PROTOCOL 0x0800
#define SNMP_PROTOCOL 0x814c
#define PPP_PROTOCOL 0xc021
#define FALSE 0
#define TRUE 1
#define MCU_RECV_RAM 5000 //5000个字节环形缓冲区用于存放收到的包
/*
*****************************************************************************************************
*
*
*****************************************************************************************************
*/
extern xdata union Ethernet_address my_ethernet_address;
extern xdata union IP_address my_ip_address; //本机的ip地址
extern xdata union netcard rxdnet;
extern xdata union netcard txdnet;
extern xdata union IP_address gateway_ip_address;
extern xdata union IP_address temp_ip_address; //用于存放临时IP地址
extern xdata union IP_address mask_ip_address;
extern unsigned int frameindex; //IP包的序列号
/*
*****************************************************************************************************
*
*
*****************************************************************************************************
*/
unsigned int checksum(unsigned int xdata *check,unsigned int length);
void page(unsigned char pagenumber);//ne2000页选择
void Rtl8019Init(void);//ne2000网卡初始化
void send_packet(union netcard xdata*txdnet,unsigned int length);//ne2000发包子程序
unsigned char recv_packet(union netcard xdata *rxdnet);//ne2000收包子程序
bit Query8019(void);
void MainCycle(void);//主循环
unsigned int createipheadcrc(union netcard xdata *pTxdnet);
bit verifyipheadcrc(union netcard xdata *pRxdnet);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -