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

📄 rtl8019a.h

📁 包括DSP实验测试程序、实验示例、应用程序以及经典的DSP的C程序和汇编程序库
💻 H
字号:
#define PAGE	0x44

/*register declarations for RTL8019AS			*/

/*Page0(PS1=0,PS0=0)	*/
/*RD			*/
#define CR		port2000
	/*Command*/
#define CLDA0	port2001
	/*Curent Local DMA Address 0*/
#define CLDA1	port2002
	/*Curent Local DMA Address 1*/
#define BNRY 	port2003
	/*Boundary Pointer*/
#define TSR		port2004
	/*Transmit Status Register*/
#define NCR		port2005
	/*Number of Collisions Register*/
#define FIFO	port2006
#define ISR		port2007
	/*Interrupt Status Register*/
#define CRDA0	port2008
	/*Current Remote DMA Address 0*/
#define CRDA1	port2009
	/*Current Remote DMA Address 1*/
#define CRD0	port200A
	/*Configuration Register A*/
#define CRD1	port200B
	/*Configuration Register B*/
#define RSR		port200C
	/*Receive status Register*/
#define CNTR0  	port200D
	/*Tally Counter 0(Frame Alignment Errors)*/
#define CNTR1	port200E
	/*Tally Counter 1(CRC Errors)*/
#define CNTR2	port200F
	/*Tally Counter 2(Missed packet Errors)*/
/*WR		*/	
#define PSTART	port2001
	/*Page Start Register*/
#define PSTOP	port2002
	/*Page stop Regiser*/
#define TPSR	port2004
	/*Transmit Page Start Address*/
#define TBCR0	port2005
	/*Transmit Byte Count Register 0*/
#define TBCR1	port2006
	/*Transmit Byte Count Register 1*/
#define RSAR0	port2008
	/*Remote Start Address Register 0*/
#define RSAR1	port2009
	/*Remote Start Address Register 1*/
#define RBCR0	port200A
	/*Remote Byte Count Register 0*/
#define RBCR1	port200B
	/*Remote Byte Count Register 1*/
#define RCR		port200C
	/*Receive Configuration Register*/
#define TCR  	port200D
	/*Transmit Configuration Register*/
#define DCR		port200E
	/*Data Configuration Register*/
#define IMRR	port200F
	/*Interrupt Mask Register*/

/*Page1(PS1=0,PS0=1)	*/
#define CR	port2000
	/*Command*/
#define PAR0	port2001
	/*Physical Address Register 0*/
#define PAR1	port2002
	/*Physical Address Register 1*/	
#define PAR2	port2003
	/*Physical Address Register 2*/
#define PAR3	port2004
	/*Physical Address Register 3*/
#define PAR4	port2005
	/*Physical Address Register 4*/
#define PAR5	port2006
	/*Physical Address Register 5*/
#define CURR	port2007
	/*Current Page Register */
#define MAR0	port2008
	/*Multicast Address Register 0*/
#define MAR1	port2009
	/*Multicast Address Register 1*/
#define MAR2	port200A
	/*Multicast Address Register 2*/
#define MAR3	port200B
	/*Multicast Address Register 3*/
#define MAR4	port200C
	/*Multicast Address Register 4*/
#define MAR5	port200D
	/*Multicast Address Register 5*/
#define MAR6	port200E
	/*Multicast Address Register 6*/
#define MAR7	port200F
	/*Multicast Address Register 7*/

/*Page 2(PS1=1,PS0=0)*/
	
/*page 3(PS1=1,PS0=0)*/

#define DMA	    port2010

#define ARP	    1
#define UDP     2
#define IGMP    3
#define LSS     4

#define BROADCAST     1
#define REC_ARP       2
#define NOD           3


	/*Configuration Register D*/
	
/*NOTE:									*/
/*	Some registers in page 2 are complementary to the registers in 	*/
/*	page 0.								*/
/*	Page0	RD		WR					*/		
/*	0X01	CLDA0		PSTART					*/
/*	0X02	CLDA1		PSTOP					*/
/*	0X04			TPSR					*/
/*	0X0C			RCR					*/
/*	0X0D			TCR					*/
/*	0X0E			DCR					*/
/*	0X0F			IMR					*/
	

struct ipaddr
{
  unsigned short addr2_1;
  unsigned short addr4_3;
};
struct mac
{
  unsigned short addr2_1;
  unsigned short addr4_3;
  unsigned short addr6_5;
};

struct iphdr
{
  unsigned short  tos_version;
  unsigned short tol_len;
  unsigned short id;
  unsigned short frag_off;
  unsigned short protocal_ttl;
  unsigned short chksum;
  struct ipaddr saddr;
  struct ipaddr daddr;
};
struct udphdr
{
  unsigned short sport;
  unsigned short dport;
  unsigned short length;
  unsigned short chksum;
};

struct igmphdr
{
  unsigned short type_mrt;
  unsigned short chksum;
  struct  ipaddr groupaddr;
};
struct pre_udphdr
{
  struct ipaddr saddr;
  struct ipaddr daddr;
  unsigned short  protocal_value;
  unsigned short  length;
};
struct arp
{
  unsigned short hard_type;
  unsigned short proto_type;
  unsigned short proto_hard_length;
  unsigned short op_code;
  struct mac    send_macaddr;
  struct ipaddr send_ipaddr;
  struct mac    rec_macaddr;
  struct ipaddr rec_ipaddr;
};

ioport unsigned short CR;
ioport unsigned short CLDA0;
ioport unsigned short CLDA1;
ioport unsigned short BNRY;
ioport unsigned short TSR;
ioport unsigned short NCR;
ioport unsigned short FIFO;
ioport unsigned short ISR;
ioport unsigned short ISR;
ioport unsigned short CRDA0;
ioport unsigned short CLDA1;
ioport unsigned short CRD0;
ioport unsigned short CRD1;
ioport unsigned short RSR;
ioport unsigned short CNTR0;
ioport unsigned short CNTR1;
ioport unsigned short CNTR2;
ioport unsigned short PSTART;
ioport unsigned short PSTOP;
ioport unsigned short TPSR;
ioport unsigned short TBCR0;
ioport unsigned short TBCR1;
ioport unsigned short RSAR0;
ioport unsigned short RSAR1;
ioport unsigned short RBCR0;
ioport unsigned short RBCR1;
ioport unsigned short RCR;
ioport unsigned short TCR;
ioport unsigned short DCR;
ioport unsigned short IMRR;
/*Page1(PS1=0,PS0=1)	*/
ioport unsigned short PAR0;
ioport unsigned short PAR1;
ioport unsigned short PAR2;
ioport unsigned short PAR3;
ioport unsigned short PAR4;
ioport unsigned short PAR5;
ioport unsigned short CURR;
ioport unsigned short MAR0;
ioport unsigned short MAR1;
ioport unsigned short MAR2;
ioport unsigned short MAR3;
ioport unsigned short MAR4;
ioport unsigned short MAR5;
ioport unsigned short MAR6;
ioport unsigned short MAR7;
/*page 3(PS1=1,PS0=0)*/
ioport unsigned short CR93C46;
ioport unsigned short CONFIG3;

ioport unsigned short DMA;


void init_protocal();
void load_udp(unsigned short *buf,unsigned short *length);
void load_ip(unsigned short *buf,unsigned short *length);
void send_frame(unsigned short *buf,unsigned short MAC_type,unsigned short PROTO_type,unsigned short length);
void send_arp(struct ipaddr *ip,unsigned short arp_type);
unsigned short checksum(unsigned short *buffer, short size);
unsigned short  change_byte(unsigned short value);
void send_igmp(unsigned short type);

⌨️ 快捷键说明

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