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

📄 ne2000.h

📁 ADC图形图像例子
💻 H
字号:

/********************************************************************
 * File: Ne2000.h
 * 
 * Copyright: Peak Microtech Corporation
 *
 *******************************************************************/
#ifndef _NE2000_H#define _NE2000_H#define  uint   unsigned short#define  uchar  unsigned char#define  ulong  unsigned intunion 	u {	 unsigned int 	word;        	 struct{unsigned char 	high;unsigned char 	low;}bytes;		  };union   w {  ulong 	dwords;             struct {uint 	high ;uint 	 low;}words;	  	     struct {uchar 	byte3;uchar  byte2;uchar 	byte1;uchar 	byte0;}bytes;          };union   Ethernet_Address_Type{                      			uint 	words[3];	              				uchar 	bytes[6];                      		 };union 	Ip_Address_Type{                      	unsigned int 	dwords;                      	unsigned short 	words[2];		      		  	unsigned char 	bytes[4];                       };struct  ethernet {  uchar 	RecStatus;                    uchar 	NextPage;                    uint 	length;                    uint 	DestMacId[3];                    uint 	SourceMacId[3];                    uint 	NextProtocal;                    uchar 	packet[1518];                   } ;struct  retransmit {uchar 	RtStatus;                    uchar 	timeout;                    uint 	length;                    uint 	DestMacId[3];                    uint 	SourceMacId[3];                    uint 	NextProtocal;                    uchar 	packet[1518];                   }  ;struct ip { uint 	EtherHead[9];            uchar 	VerandIphLen;            uchar 	ServerType;            uint 	TotalLen;            uint 	FrameIndex;            uint 	Segment;            uchar 	ttl;            uchar 	NextProtocal;            uint 	Crc;            uint 	SourceIp[2];            uint 	DestId[2];            uchar 	packet[1498];          };struct IpPacket  { uint 	EtherHead[9];                   uint 	IpPacket[720];                 };struct arp     { uint 	EtherHead[9];                                                        uint 	HardwareType;                 uint 	ProtocalType;                 uchar 	HardwareLen;        /*=0X06*/                 uchar 	ProtocalLen;        /*=0X04*/                 uint 	Operation;                 uint 	SourceMacId[3];                 uint 	SourceIp[2];                 uint 	DestMacId[3];                 uint 	DestId[2];                };struct icmp {                uint 	EtherHead[9];                uint 	IpHead[10];                uchar 	type;                uchar 	option;                uint 	Crc;                uint 	id;                uint 	seq;                uchar 	icmpdata[1478];              };struct tcp {   uint 	EtherHead[9];               uint 	IpHead[10];               uint 	SourcePort;               uint 	DestPort;               ulong 	SeqNum;               ulong 	AckNum;               uchar 	offset;               uchar 	control;               uint 	window;               uint 	Crc;               uint 	urg;               uchar 	tcpdata[1478];             };struct udp {   uint 	EtherHead[9];               uint 	IpHead[10];               uint 	SourcePort;               uint 	DestPort;               uint 	length;               uint 	Crc;               uchar 	udpdata[1478];             };     union Netcard {struct 	{uchar 	 	bytebuf[1536];}bytes;               struct 	{uint 	 	wordbuf[768];}words;               struct 	ethernet    EtherFrame;	       	   struct 	retransmit  ResendFrame;               struct 	arp   		ArpFrame;               struct 	icmp  		IcmpFrame;               struct 	tcp   		TcpFrame;               struct 	ip   		IpFrame;	       	   struct 	udp   		UdpFrame;               struct 	IpPacket 	IpPacket;              };struct Socket_Type{                   	uint   	My_Port;		   			uint  	Dest_Port;		   			uint  	Dest_Ip[2];		   			uint  	Dest_Mac_Id[3];		   			ulong 	IRS;                   	ulong 	ISS;                   	ulong 	Rcv_Next;		   			ulong 	Send_Next;                   	ulong 	Sent_UnAck;		   			uint 	Rcv_Window;                   	uint 	Snd_Window;        	   		uint 	Dest_Max_Seg_Size;                   	uint 	My_Max_Seg_Size;		   			ulong 	My_Wl1;		//seq		   			ulong 	My_Wl2;		//ack                   	uchar 	State;		   			uchar 	Open;                  };/*tcp state define */#define 	TCP_STATE_LISTEN        0#define 	TCP_STATE_SYN_RCVD      1#define 	TCP_STATE_SYN_SENT      2#define 	TCP_STATE_ESTABLISHED   3#define 	TCP_STATE_FIN_WAIT1     4#define 	TCP_STATE_FIN_WAIT2     5#define 	TCP_STATE_CLOSING       6#define 	TCP_STATE_CLOSE_WAIT    7#define 	TCP_STATE_LAST_ACK      8#define 	TCP_STATE_CLOSED        9#define 	TCP_STATE_TIME_WAIT     10//tcp connect flag#define 	TCP_FIN 0x01#define 	TCP_SYN 0x02#define 	TCP_RST 0x04#define 	TCP_PSH 0x08#define 	TCP_ACK 0x10#define 	TCP_URG 0x20
// About 8019as define// 8019 register base address#define REG_NET_BASE        		0x01300000	// PCS3#/* Page 0 register offsets. */#define REG_NET_CR			(0x00<<1)#define REG_NET_CLDA0		(0x01<<1)#define REG_NET_PSTART		(0x01<<1)#define REG_NET_CLDA1		(0x02<<1)#define REG_NET_PSTOP		(0x02<<1)#define REG_NET_BNRY		(0x03<<1)#define REG_NET_TSR			(0x04<<1)#define REG_NET_TPSR		(0x04<<1)#define REG_NET_NCR			(0x05<<1)#define REG_NET_TBCR0		(0x05<<1)#define REG_NET_FIFO		(0x06<<1)#define REG_NET_TBCR1		(0x06<<1)#define REG_NET_ISR			(0x07<<1)#define REG_NET_CRDA0		(0x08<<1)#define REG_NET_RSAR0		(0x08<<1)#define REG_NET_CRDA1		(0x09<<1)#define REG_NET_RSAR1		(0x09<<1)#define REG_NET_8019ID0		(0x0A<<1)#define REG_NET_RBCR0		(0x0A<<1)#define REG_NET_8019ID1		(0x0B<<1)#define REG_NET_RBCR1		(0x0B<<1)#define REG_NET_RSR			(0x0C<<1)#define REG_NET_RCR			(0x0C<<1)#define REG_NET_CNTR0		(0x0D<<1)#define REG_NET_TCR			(0x0D<<1)#define REG_NET_CNTR1		(0x0E<<1)#define REG_NET_DCR			(0x0E<<1)#define REG_NET_CNTR2		(0x0F<<1)#define REG_NET_IMR			(0x0F<<1)#define REG_NET_DMAPORT		(0x10<<1)#define REG_NET_RSTPORT		(0x18<<1)/* Page 1 register offsets. */#define REG_NET_PAR0		(0x01<<1)#define REG_NET_PAR1		(0x02<<1)#define REG_NET_PAR2		(0x03<<1)#define REG_NET_PAR3		(0x04<<1)#define REG_NET_PAR4		(0x05<<1)#define REG_NET_PAR5		(0x06<<1)#define REG_NET_CURR		(0x07<<1)#define REG_NET_MAR0		(0x08<<1)#define REG_NET_MAR1		(0x09<<1)#define REG_NET_MAR2		(0x0A<<1)#define REG_NET_MAR3		(0x0B<<1)#define REG_NET_MAR4		(0x0C<<1)#define REG_NET_MAR5		(0x0D<<1)#define REG_NET_MAR6		(0x0E<<1)#define REG_NET_MAR7		(0x0F<<1)/* Page 2 register offsets. */#define REG_NET_PSTART		(0x01<<1)#define REG_NET_PSTOP		(0x02<<1)#define REG_NET_TPSR		(0x04<<1)#define REG_NET_RCR			(0x0C<<1)#define REG_NET_TCR			(0x0D<<1)#define REG_NET_DCR			(0x0E<<1)#define REG_NET_IMR			(0x0F<<1)/* Page 3 register offsets. */#define REG_NET_9346CR		(0x01<<1)#define REG_NET_BPAGE		(0x02<<1)#define REG_NET_CONFIG0		(0x03<<1)#define REG_NET_CONFIG1		(0x04<<1)#define REG_NET_CONFIG2		(0x05<<1)#define REG_NET_CONFIG3		(0x06<<1)#define REG_NET_TEST		(0x07<<1)#define REG_NET_CSNSAV		(0x08<<1)#define REG_NET_HLTCLK		(0x09<<1)#define REG_NET_INTR		(0x0B<<1)#define REG_NET_FMWP		(0x0C<<1)#define REG_NET_CONFIG4		(0x0D<<1)/*  Register accessed at REG_NET_CR	, the 8019as control addr.  */#define CR_STP			0x01	/* Stop and reset the chip */#define CR_STA			0x02	/* Start the chip, clear reset */#define CR_TXP			0x04	/* Transmit a frame */#define CR_RD0			0x08	/* Remote read */#define CR_RD1			0x10	/* Remote write  */#define CR_RD2			0x20	/* Remote DMA */#define CR_PS0			0x40	/* Select page chip registers */#define CR_PS1			0x80	/* using the two high-order bits *//* Bits in REG_NET_ISR	 *//* |RST(7)|RDC(6)|CNT(5)|OVW(4)|TXE(3)|RXE(2)|PTX(1)|PRX(0)| */#define ISR_PRX		0x01	/* Receiver, no error */#define ISR_PTX		0x02	/* Transmitter, no error */#define ISR_RXE		0x04	/* Receiver, with error */#define ISR_TXE		0x08	/* Transmitter, with error */#define ISR_OVW		0x10	/* Receiver overwrote the ring */#define ISR_CNT		0x20	/* Counters need emptying */#define ISR_RDC		0x40	/* remote dma complete */#define ISR_RST		0x80	/* Reset completed *//* Bits in received packet status byte and REG_NET_RSR	*/#define RSR_PRX		0x01	/* Received a good packet */#define RSR_CRC		0x02	/* CRC error */#define RSR_FAE		0x04	/* frame alignment error */#define RSR_FO		0x08	/* FIFO overrun */#define RSR_MPA		0x10	/* missed pkt */#define RSR_PHY		0x20	/* physical/multicast address */#define RSR_DIS		0x40	/* receiver disable. set in monitor mode */#define RSR_DEF		0x80	/* deferring *//* Transmitted packet status, PG0_TSR. */#define TSR_PTX		0x01	/* Packet transmitted without error */#define TSR_ND		0x02	/* The transmit wasn't deferred. */#define TSR_COL		0x04	/* The transmit collided at least once. */#define TSR_ABT		0x08	/* The transmit collided 16 times, and was deferred. */#define TSR_CRS		0x10	/* The carrier sense was lost. */#define TSR_FU		0x20	/* A "FIFO underrun" occurred during transmit. */#define TSR_CDH		0x40	/* The collision detect "heartbeat" signal was lost. */#define TSR_OWC		0x80	/* There was an out-of-window collision. */// IO operation#define netreadb( _ADDR_ )					readb(REG_NET_BASE + _ADDR_ )	#define netwriteb( _ADDR_ , _DATA_ )		writeb( ( REG_NET_BASE + _ADDR_ ), _DATA_ )#define	netreadw( _ADDR_ )					readw(REG_NET_BASE + _ADDR_ )#define	netwritew( _ADDR_ , _DATA_ )		writew( ( REG_NET_BASE + _ADDR_ ) , _DATA_ )#define	netreadl( _ADDR_ )					readl(REG_NET_BASE+ _ADDR_ )#define	netwritel( _ADDR_ , _DATA_ )		writel( ( REG_NET_BASE + _ADDR_ ), _DATA_ )#endif	/* _NE2000_H */

⌨️ 快捷键说明

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