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

📄 ext_inf.h

📁 这是在DSP 的基础上扩展10M以太网来实现网络的通讯,用的CPU 为2812
💻 H
字号:

#define   SPCR10_VAL     		0x0000
#define   SPCR20_VAL     		0x0220
//2 words per frame
#define   RCR10_VAL      		0x0140
#define   RCR20_VAL      		0x04
//2 words per frame
#define   XCR10_VAL      		0x0140
#define   XCR20_VAL      		0x04
#define   PCR0_VAL       		0x01

#define   VOL1     0x81
#define   VOL2     0x82

#define   L_LINE_VOLUME        0x00
#define   R_LINE_VOLUME        0x01
#define   L_HEADPHONE_VOLUME   0x02
#define   R_HEADPHONE_VOLUME   0x03
#define   A_AUDIO_PATH         0x04
#define   D_AUDIO_PATH         0x05
#define   POWER_CON            0x06
#define   D_AUDIO_INTERFACE    0x07
#define   SAMPLE_RATE          0x08
#define   D_INTERFACE_ACT      0x09
#define   RESET                0x0f

#define		SERVER_IP        40
#define 	FRAMESIZE        500
#define 	TALK_SIZE      	440
#define 	READSIZE       	200
#define 	ONEQUESTSIZE   	4000
#define 	ONEQUESTPACK	8

#define 	PCMSIZE     	49000
#define 	PICTURESIZE   	21168


#define 	ORDERPORT  		0xac26
//9900
#define 	DATAPORT   		0x4a26

#define 	LOGIN        	0
#define 	PLAY         	1 
#define 	STOP         	2 
#define 	PAUSE        	3
#define 	REC          	4
#define 	BROAD        	5
#define 	TALK         	6

#define 	LINK            0x99
#define 	SETWAV          0x9a

#define 	REC_DATA        0xf3

#define 	FREW_STOP       0xf8
#define 	FF              0xf9
#define 	REW             0xfa


#define 	CLEARAUDIOBUF   0x86
#define 	CLEARTALKBUF    0x87
#define 	MIXSOUNDSTART   0x88
#define 	REC_START       0x89
#define 	REC_STOP        0x8a
#define 	FROOZE          0x8b

#define 	BROAD_START    	0x8c
#define 	BROAD_STOP     	0x8d
#define 	TALK_START     	0x8e
#define 	VOD_START      	0x8f
#define 	MENU_START     	0x92
#define 	EN_REQUEST     	0x9c
#define 	NO_REQUEST     	0x9d

#define 	MPEG1     		1
#define 	PCM       		2
#define 	BW        		3

#define 	TEXT      		0x82
#define 	MENU      		0x83
#define 	PROGRAM   		0x84

#define 	MP3_DAT   		1
#define 	MENU_DAT    	2
#define 	PCM_DAT     	3

#define	  SetData			GpioDataRegs.GPFDAT.bit.GPIOF0 = 1
#define	  ClrData   		GpioDataRegs.GPFDAT.bit.GPIOF0 = 0
#define	  SetClk			GpioDataRegs.GPFDAT.bit.GPIOF2 = 1
#define	  ClrClk			GpioDataRegs.GPFDAT.bit.GPIOF2 = 0
#define	  LedReg		    (*((volatile  unsigned  int *)0x23FF))
#define	  AicContrlReg  	(*((volatile  unsigned  int *)0x25FF)) 


#define  Set485OE		 	0x20
#define  Clr485OE		 	0xDF
#define	 Set8019RST		 	0x10
#define	 Clr8019RST		 	0xEF
#define  SetSPICS		 	0x08 
#define  ClrSPICS		 	0xF7 
#define	 SetAICCS		 	0x04  
#define  ClrAICCS		 	0xFB 	
#define  SetSIDIN		 	0x02  
#define	 ClrSIDIN		 	0xFD  
#define  SetSCLK		 	0x01  
#define  ClrSCLK		 	0xFE  

#define	 PAGE				0x44
#define	 NetPort			0x3700
/*register declarations for RTL8019AS  */

/*Page0(PS1=0,PS0=0)	*/
/*RD			*/
#define	CR		(*((volatile  unsigned  int *)(NetPort+0)))	
	/*Command*/
#define CLDA0	(*((volatile  unsigned  int *)(NetPort+1)))	
	/*Curent Local DMA Address 0*/
#define CLDA1   (*((volatile  unsigned  int *)(NetPort+2)))	
	/*Curent Local DMA Address 1*/
#define BNRY	(*((volatile  unsigned  int *)(NetPort+3)))	
	/*Boundary Pointer*/
#define	 TSR	(*((volatile  unsigned  int *)(NetPort+4)))		
	/*Transmit Status Register*/
#define	 NCR	(*((volatile  unsigned  int *)(NetPort+5)))		
	/*Number of Collisions Register*/
#define	 FIFO	(*((volatile  unsigned  int *)(NetPort+6)))		
#define	 ISR	(*((volatile  unsigned  int *)(NetPort+7)))		
	/*Interrupt Status Register*/
#define	 CRDA0	(*((volatile  unsigned  int *)(NetPort+8)))		
	/*Current Remote DMA Address 0*/
#define	 CRDA1	(*((volatile  unsigned  int *)(NetPort+9)))		
	/*Current Remote DMA Address 1*/
#define	 CRD0	(*((volatile  unsigned  int *)(NetPort+10)))		
	/*Configuration Register A*/
#define	 CRD1	(*((volatile  unsigned  int *)(NetPort+11)))		
	/*Configuration Register B*/
#define	 RSR	(*((volatile  unsigned  int *)(NetPort+12)))		
	/*Receive status Register*/
#define	 CNTR0	(*((volatile  unsigned  int *)(NetPort+13)))		
	/*Tally Counter 0(Frame Alignment Errors)*/
#define	 CNTR1	(*((volatile  unsigned  int *)(NetPort+14)))		
	/*Tally Counter 1(CRC Errors)*/
#define	 CNTR2	(*((volatile  unsigned  int *)(NetPort+15)))		

	/*Tally Counter 2(Missed packet Errors)*/
/*WR		*/	
#define	 PSTART	(*((volatile  unsigned  int *)(NetPort+1)))		
	/*Page Start Register*/
#define	 PSTOP	(*((volatile  unsigned  int *)(NetPort+2)))		
	/*Page stop Regiser*/
#define	 TPSR	(*((volatile  unsigned  int *)(NetPort+4)))		
	/*Transmit Page Start Address*/
#define	 TBCR0	(*((volatile  unsigned  int *)(NetPort+5)))		
	/*Transmit Byte Count Register 0*/
#define	 TBCR1	(*((volatile  unsigned  int *)(NetPort+6)))		
	/*Transmit Byte Count Register 1*/
#define	 RSAR0	(*((volatile  unsigned  int *)(NetPort+8)))		
	/*Remote Start Address Register 0*/
#define	 RSAR1	(*((volatile  unsigned  int *)(NetPort+9)))		
	/*Remote Start Address Register 1*/
#define	 RBCR0	(*((volatile  unsigned  int *)(NetPort+10)))		
	/*Remote Byte Count Register 0*/
#define	 RBCR1	(*((volatile  unsigned  int *)(NetPort+11)))		
	/*Remote Byte Count Register 1*/
#define	 RCR	(*((volatile  unsigned  int *)(NetPort+12)))		
	/*Receive Configuration Register*/
#define	 TCRN	(*((volatile  unsigned  int *)(NetPort+13)))		
	/*Transmit Configuration Register*/
#define	 DCR	(*((volatile  unsigned  int *)(NetPort+14)))		
	/*Data Configuration Register*/
#define	 IMRR	(*((volatile  unsigned  int *)(NetPort+15)))		

	/*Interrupt Mask Register*/

/*Page1(PS1=0,PS0=1)	*/
//#define CR		port3700
	/*Command*/
#define	 PAR0	(*((volatile  unsigned  int *)(NetPort+1)))		
	/*Physical Address Register 0*/
#define	 PAR1	(*((volatile  unsigned  int *)(NetPort+2)))		

	/*Physical Address Register 1*/	
#define	 PAR2	(*((volatile  unsigned  int *)(NetPort+3)))		
	/*Physical Address Register 2*/
#define	 PAR3	(*((volatile  unsigned  int *)(NetPort+4)))		
	/*Physical Address Register 3*/
#define	 PAR4	(*((volatile  unsigned  int *)(NetPort+5)))		
	/*Physical Address Register 4*/
#define	 PAR5	(*((volatile  unsigned  int *)(NetPort+6)))		
	/*Physical Address Register 5*/
#define	 CURR	(*((volatile  unsigned  int *)(NetPort+7)))		
	/*Current Page Register */
#define	 MAR0	(*((volatile  unsigned  int *)(NetPort+8)))		
	/*Multicast Address Register 0*/
#define	 MAR1	(*((volatile  unsigned  int *)(NetPort+9)))		
	/*Multicast Address Register 1*/
#define	 MAR2	(*((volatile  unsigned  int *)(NetPort+10)))		
	/*Multicast Address Register 2*/
#define	 MAR3	(*((volatile  unsigned  int *)(NetPort+11)))		
	/*Multicast Address Register 3*/
#define	 MAR4	(*((volatile  unsigned  int *)(NetPort+12)))		
	/*Multicast Address Register 4*/
#define	 MAR5	(*((volatile  unsigned  int *)(NetPort+13)))		
	/*Multicast Address Register 5*/
#define	 MAR6	(*((volatile  unsigned  int *)(NetPort+14)))		
	/*Multicast Address Register 6*/
#define	 MAR7	(*((volatile  unsigned  int *)(NetPort+15)))		
	/*Multicast Address Register 7*/

/*Page 2(PS1=1,PS0=0)*/
	
/*page 3(PS1=1,PS0=0)*/
#define	 DMA	(*((volatile  unsigned  int *)(NetPort+16)))		


#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;       //IP地址低位
  unsigned short addr4_3;       //IP地址高位
};
struct mac
{
  unsigned short addr2_1;      //
  unsigned short addr4_3;
  unsigned short addr6_5;
};

struct iphdr
{
  unsigned short  	tos_version;  //4位版本,4位首部长度,8位服务类型
  unsigned short 	tol_len;      //16位总长度
  unsigned short 	id;           //16位标识
  unsigned short 	frag_off;     //3位标志,13位片偏移
  unsigned short 	protocal_ttl; //8位生成时间,8位协议
  unsigned short 	chksum;       //16位首部校验和  
  struct ipaddr 	saddr;        //32位源IP地址
  struct ipaddr 	daddr;        //32位目的IP地址
};
struct udphdr
{
  unsigned short 	sport;        //16位源端口号
  unsigned short 	dport;        //16位目的端口号
  unsigned short 	length;       //16位UDP长度 
  unsigned short 	chksum;       //16位UDP校验和
};

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;
};
extern	void	delay(Uint32	k);
extern	void	InitAic23(void);
extern	void	WriteAic23(Uint16	addr,	Uint16	dat);
extern	void 	init_8019();
extern	void 	nic_recieve();
extern	void 	request();
extern	void 	get_server_mac();
extern	void	readdat(Uint16 x1,Uint16 x2);
extern	void 	getorder();
extern	void 	send_udp(unsigned short *buf,unsigned short length);
extern	void 	init_protocal();
extern	void 	load_udp(unsigned short  *buf,unsigned short  *length);
extern	void 	load_ip(unsigned short   *buf,unsigned short  *length);
extern	void 	send_frame(unsigned short  *buf, unsigned short MAC_type,unsigned short PROTO_type,unsigned short length);
extern	void 	send_arp(struct ipaddr *ip,unsigned short arp_type);
extern	void    send_igmp(Uint16  type);
extern	void	RST8019(void);
extern	void	handlekey(void);

interrupt	void	ISRMcbspSend(void);
interrupt	void	ISRTimer0(void);

unsigned short  checksum(unsigned short *buffer, short size);
unsigned short  change_byte(unsigned short value);

⌨️ 快捷键说明

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