www.pudn.com > cs8900a.rar > ext_inf.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);