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

📄 main.c

📁 TCPIP协议在DSK5402板上的实现
💻 C
字号:
#include	"cpu_reg.h"
#include	"string.h"
#include	"ip.h"

Uint16  FrameLenth;
Uint16  RxSuccessFlag;
int		ms,ms1;
//-------------------
Uint16	TxEthnetFrameBuffer[1518/2];
Uint16	RxEthnetFrameBuffer[1518/2];
//-------------------
extern	struct	ipaddr	server_ipaddr;
Uint16	Temp;
extern	Uint16	TCPTimeout;
void	main()
		{
//			Uint16	Temp;
		    asm("  STM #0000h,CLKMD ");  
     		while(*CLKMD & 0x01 );
     		asm("  STM #30C7h,CLKMD ");  //设置CPU运行频率=100M
/*  40C7h:5*clkin  =100M
    30c7h:4*clkin  =80M
    20c7h:3*clkin  =60M
    10C7h:2*clkin  =40M
*/
			*SWCR = 0x0001;
		    asm("  stm   #7240h, SWWSR ");
     //2 wait except for on-chip program 1
     		asm("  stm   #00A0h, PMST  "); //MP/MC = 0, IPTR = 001,ovly=1  
     		asm("  stm   #0802h, BSCR  "); 
     		asm("  STM 	 #0h,	 IMR   ");
     
     		asm("  STM #0010h,TCR  "); //关定时器
     		asm("  STM #0186ah,PRD  ");//1ms
     		asm("  STM #0C2fh,TCR  "); //TCR=最后四位
     		asm("  STM #0008h,IFR  ");
     		asm("  ORM #0009h,*(IMR) ");/*开时间中断*/
 
     		asm("  RSBX  INTM ");      /*开中断*/ 
     		Init8019();
	  		TCP_Init();
     		
			ms = 0;
			ms1 = 0;
			TCPTimeout = 0;
			while(ms<2000);
			
//			ArpRequest();				
			while(1)
			{
            	if(TCPTimeout)
                   Process_TCP_Timeout();
             	RTL8019ActiveOpen();
		       	Temp=RecFrame();
 				if (Temp)
			       DoNetworkStuff();
			}		
	}

interrupt void  timer0()
{
     ms++;
     ms1++;
     if (ms1>2000)
     	{
     		TCPTimeout = 1;
     		ms1 =0;
     	}	    	
}

⌨️ 快捷键说明

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