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

📄 ether_dev.h

📁 包括EPA协议栈
💻 H
字号:
#ifndef _ETHER_DEV_H
#define _ETHER_DEV_H
//ether_dev.h
#ifdef  ETHER_DEV_GLOBALS
#define ETHER_DEV_EXT
#else
#define ETHER_DEV_EXT extern
#endif

#include "tcpip.h"

#define CR		0x00

// Page 0
#define	PSTART		0x01	
#define	PSTOP		0x02
#define	BNDRY		0x03
#define	TPSR		0x04
#define	TBCR0		0x05
#define	TBCR1		0x06
#define CPR		0x06
#define	ISR		0x07
#define	RSAR0		0x08
#define	RSAR1		0x09
#define	RBCR0		0x0A
#define	RBCR1		0x0B
#define	RCR		0x0C
#define	TCR		0x0D
#define	DCR		0x0E
#define	IMR		0x0F
#define	EEPROM		0x14

// Page 1
#define	PAR0		0x01	
#define	PAR1		0x02
#define	PAR2		0x03
#define	PAR3		0x04
#define	PAR4		0x05
#define	PAR5		0x06
#define	CURR		0x07

#define	MAR0		0x08
#define	MAR1		0x09
#define	MAR2		0x0A
#define	MAR3		0x0B
#define	MAR4		0x0C
#define	MAR5		0x0D
#define	MAR6		0x0E
#define	MAR7		0x0F

#define	NIC_DATA	0x10
#define GPI		0x17
#define GPOC		0x17
#define	NIC_RESET	0x1F


// Bits in NIC Registers
#define CR_STOP		0x01
#define CR_START	0x02
#define CR_TRANSMIT	0x04
#define CR_DMAREAD	0x08
#define CR_DMAWRITE	0x10
#define CR_NODMA	0x20
#define CR_PAGE0	0x00
#define CR_PAGE1	0x40
#define CR_PAGE2	0x80

#define RCR_BCAST	0x04
#define RCR_MCAST	0x08
#define RCR_PROMISCUOUS	0x10
#define RCR_MONITOR	0x20

#define DCR_BYTEDMA	0x00
#define DCR_WORDDMA	0x01
#define DCR_NOLPBK	0x08
#define DCR_FIFO2	0x00
#define DCR_FIFO4	0x20
#define DCR_FIFO8	0x40
#define DCR_FIFO12	0x60

#define TCR_NOLPBK	0x00
#define TCR_INTLPBK	0x02
#define TCR_EXTLPBK	0x04
#define TCR_EXTLPBK2	0x06
#define TCR_FULLDUPLEX	0x80

#define GPOC_PPDSET	0x40
#define GPOC_INTPHY	0x00
#define GPOC_EXTPHY	0x20
#define GPOC_MPSEL	0x10

// NIC buffer
#define TX_BUF_Start	0x40	
#define TX_BUF_Stop	0x46	

#define RX_BUF_Start	0x46	
#define RX_BUF_Stop	0x80	

// DMA buffer operation
#define DMA_Write	0x01
#define DMA_Read	0x00


// Ethernet messages type
#define Ethernet_IP	0x0800
#define Ethernet_ARP	0x0806

//board information
#define Ethernet_Addr_Base0   0x400000
#define Ethernet_Addr_Base1   0x800000
#define Ethernet0  0
#define Ethernet1  1

#define NICRST		(1<<20)		//NIC(AX88796) Reset signal
#define NULL 0




//Function declare
ETHER_DEV_EXT uint16 etherdev_init(uint16 device);
ETHER_DEV_EXT uint16 EtherInput(uint8* addr, uint16 max_len,uint8 idx);
ETHER_DEV_EXT uint8 EtherOutput(uint8* addr, uint16 len, uint16 hw_id);

#endif

⌨️ 快捷键说明

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