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

📄 ge_test.c

📁 程序是一个vxworks下对PMC公司3386千兆MAC芯片的驱动和配置
💻 C
📖 第 1 页 / 共 5 页
字号:
                	}
                	for(i=0;i<19;i++)
            		{
				outfpgaWrite(0x18,packet3[i]);
                	}
                	for(i=0;i<20;i++)
            		{
				outfpgaWrite(0x18,packet4[i]);
                	}
                	for(i=0;i<21;i++)
            		{
				outfpgaWrite(0x18,packet5[i]);
                	}
                case    6:
			for(i=0;i<17;i++)
            		{
				outfpgaWrite(0x18,packet1[i]);
                	}
                	for(i=0;i<18;i++)
            		{
				outfpgaWrite(0x18,packet2[i]);
                	}
                	for(i=0;i<19;i++)
            		{
				outfpgaWrite(0x18,packet3[i]);
                	}
                	for(i=0;i<20;i++)
            		{
				outfpgaWrite(0x18,packet4[i]);
                	}
                	for(i=0;i<21;i++)
            		{
				outfpgaWrite(0x18,packet5[i]);
                	}
                	for(i=0;i<22;i++)
            		{
				outfpgaWrite(0x18,packet6[i]);
                	}
                	break;
                case    7:
			for(i=0;i<17;i++)
            		{
				outfpgaWrite(0x18,packet1[i]);
                	}
                	for(i=0;i<18;i++)
            		{
				outfpgaWrite(0x18,packet2[i]);
                	}
                	for(i=0;i<19;i++)
            		{
				outfpgaWrite(0x18,packet3[i]);
                	}
                	for(i=0;i<20;i++)
            		{
				outfpgaWrite(0x18,packet4[i]);
                	}
                	for(i=0;i<21;i++)
            		{
				outfpgaWrite(0x18,packet5[i]);
                	}
                	for(i=0;i<22;i++)
            		{
				outfpgaWrite(0x18,packet6[i]);
                	}
                	for(i=0;i<23;i++)
            		{
				outfpgaWrite(0x18,packet7[i]);
                	}
                	break;
                case    8:
			for(i=0;i<17;i++)
            		{
				outfpgaWrite(0x18,packet1[i]);
                	}
                	for(i=0;i<18;i++)
            		{
				outfpgaWrite(0x18,packet2[i]);
                	}
                	for(i=0;i<19;i++)
            		{
				outfpgaWrite(0x18,packet3[i]);
                	}
                	for(i=0;i<20;i++)
            		{
				outfpgaWrite(0x18,packet4[i]);
                	}
                	for(i=0;i<21;i++)
            		{
				outfpgaWrite(0x18,packet5[i]);
                	}
                	for(i=0;i<22;i++)
            		{
				outfpgaWrite(0x18,packet6[i]);
                	}
                	for(i=0;i<23;i++)
            		{
				outfpgaWrite(0x18,packet7[i]);
                	}
                	for(i=0;i<24;i++)
            		{
				outfpgaWrite(0x18,packet8[i]);
                	}
                	break;
               
	       outfpgaWrite(0x18,0x1DA3B476);
            }
      return  OK;
    }
}

/*************************************************************************************/
STATUS  write_E()/*E口的地址为ABUS[28,29]变化,其他全为0*/
{
	ULONG  i;
	outfpgaWrite(0x1c,0x0);
	printf("\n*==========================write_E_Fifo========================*\n");
	for(i=0;i<E_LEN;i+=3)
	{
		*(ULONG*)(0x13008004)=E_DATA[i];
		*(ULONG*)(0x13008008)=E_DATA[i+1];
		*(ULONG*)(0x1300800c)=E_DATA[i+2];

		printf("%8lx =*=  %8lx  ",i,E_DATA[i]);
		printf("%8lx =*=  %8lx  ",i+1,E_DATA[i+1]);
		printf("%8lx =*=  %8lx  ",i+2,E_DATA[i+2]);
			printf("\n");
	}
	printf("\n*==========================THE END============================*\n");
	return  OK;
}
/*************************************************************************************/
STATUS  write_Ea()/*E口的地址为ABUS[28,29]变化,其他全为0*/
{
	ULONG  i;
	for(i=0;i<E_LENa;i+=3)
	{
		*(ULONG*)(0x13008004)=E_long_pac[i];
		*(ULONG*)(0x13008008)=E_long_pac[i+1];
		*(ULONG*)(0x1300800c)=E_long_pac[i+2];

		printf("%8lx =*=  %8lx  ",i,E_long_pac[i]);
		printf("%8lx =*=  %8lx  ",i+1,E_long_pac[i+1]);
		printf("%8lx =*=  %8lx  ",i+2,E_long_pac[i+2]);
			printf("\n");
	}
	return  OK;
}
STATUS  write_Eb()/*E口的地址为ABUS[28,29]变化,其他全为0*/
{
	ULONG  i;
	for(i=0;i<E_LEN;i+=3)
	{
		*(ULONG*)(0x13008004)=E_DATA[i];
		*(ULONG*)(0x13008008)=E_DATA[i+1];
		*(ULONG*)(0x1300800c)=E_DATA[i+2];

		printf("%8lx =*=  %8lx  ",i,E_DATA[i]);
		printf("%8lx =*=  %8lx  ",i+1,E_DATA[i+1]);
		printf("%8lx =*=  %8lx  ",i+2,E_DATA[i+2]);
			printf("\n");
	}
	return  OK;
}
STATUS  write_Ec()/*E口的地址为ABUS[28,29]变化,其他全为0*/
{
	ULONG  i;
	for(i=0;i<E_LENc;i+=3)
	{
		*(ULONG*)(0x13008004)=E_DATAc[i];
		*(ULONG*)(0x13008008)=E_DATAc[i+1];
		*(ULONG*)(0x1300800c)=E_DATAc[i+2];

		printf("%8lx =*=  %8lx  ",i,E_DATAc[i]);
		printf("%8lx =*=  %8lx  ",i+1,E_DATAc[i+1]);
		printf("%8lx =*=  %8lx  ",i+2,E_DATAc[i+2]);
			printf("\n");
	}
	return  OK;
}
STATUS  ReadBFifo()
{
	ULONG i;
	for(i=0;i<100;i++)
	{
	rctrl();	
	printf("\n");
	}
	return  OK;
}
/******************************************************************************************/
STATUS  read_B()
{
	ULONG i;
	if(taskLock()==ERROR)
	{
		return ERROR;
	}
	else
	{
		/*for(i=0;i<B_LEN;i+=3)*/
		for(i=0;i<500;i+=3)
		{
			B_DATA[i]=*(ULONG*)(0x13000104);
			B_DATA[i+1]=*(ULONG*)(0x13000108);
			B_DATA[i+2]=*(ULONG*)(0x1300010c);
			
			printf("%8lx ***  %8lx  ",i,B_DATA[i]);
			printf("%8lx ***  %8lx  ",i+1,B_DATA[i+1]);
			printf("%8lx ***  %8lx  ",i+2,B_DATA[i+2]);
			printf("\n");
		}
	}
	taskUnlock();
	return  OK;
}

void  bh32()
{
	ULONG data;
	data=*(ULONG*)(0x13000104);
	printf("%8lx\n",data);
	return;
}
void  bl32()
{
	ULONG data;
	data=*(ULONG*)(0x13000108);
	printf("%8lx\n",data);
	return;
}
void rctrl()
{
	ULONG rctrl0,rctrl6,rctrl7,rctrl8;
	rctrl0=*(ULONG*)(0x13000110);
	rctrl6=*(ULONG*)(0x13000114);
	rctrl7=*(ULONG*)(0x13000118);
	rctrl8=*(ULONG*)(0x1300011c);
	printf("RCTRL0=%8lx\n",rctrl0);
	printf("RCTRL6=%8lx\n",rctrl6);
	printf("RCTRL7=%8lx\n",rctrl7);
	printf("RCTRL8=%8lx\n",rctrl8);
	return;
}
void wctrl()
{
	ULONG  wctrl7=0xfffeeedd;
	*(ULONG*)(0x13000020)=wctrl7;
	printf("write WCTR7=%8lx\n",wctrl7);
	return;
}
STATUS  cmp_E()
{
	ULONG i;
	if(taskLock()==ERROR)
	{
		return ERROR;
	}
	else
	{
		for(i=0;i<E_LEN;i+=3)
		{
			E_DATAC[i]=*(ULONG*)(0x13008104);
			E_DATAC[i+1]=*(ULONG*)(0x13008108);
			E_DATAC[i+2]=*(ULONG*)(0x1300810c);
			printf("%8lx =*=  %8lx  ",i,E_DATAC[i]);
			printf("%8lx =*=  %8lx  ",i+1,E_DATAC[i+1]);
			printf("%8lx =*=  %8lx  ",i+2,E_DATAC[i+2]);
			printf("\n");
		}
	}
	taskUnlock();
	return  OK;
}

STATUS sendE(unsigned int num,unsigned int count)
{
	ULONG i;
	for(i=0;i<count;i++)
	{
		write_E(num);
	}
        return  OK;

}
void ek_once()
{
	*(ULONG*)(0x13008010)=0xffffffff;
	return;
}
void ek_loop()
{
	*(ULONG*)(0x13008014)=0xffffffff;
	return;
}
void ek_stop()
{
	*(ULONG*)(0x13008018)=0xffffffff;
	return;
}
void ek_reset()
{
        *(ULONG*)(0x1300801c)=0xffffffff;
	return;
}
void test_send_pro(ULONG sum)
{  
	ULONG i;
    	for(i=0;i<sum;i++)
    	{ 
		/*spb(1,0x01020304);*/
		spa();
    		/*taskDelay(1);*/
    	}
    return ;
}
void test_send_ip()
{    ULONG i;
    for(i=0;i<100;i++)
    { 	ULONG  j;
	for(j=0;j<E_LEN;j+=3)
	{
		*(ULONG*)(0x13008004)=E_DATA[j];
		*(ULONG*)(0x13008008)=E_DATA[j+1];
		*(ULONG*)(0x1300800c)=E_DATA[j+2];
        }
    }
    return ;
}
void rflag()
{
	ULONG data,flag20;
	taskLock();
	data=*(ULONG*)(0x13020014);
	taskUnlock();
	flag20 = data & (0x800);
	if(flag20!= 0x800)
	{
		printf("flag20 == 0\n");
	}
	else
	{
		printf("flag20 == 1\n");
	}	
	return ;
	
}
void clear_sta()
{
  PM3386Write(0x500,0x2);
  PM3386Write(0x600,0x2);
  return;
}
void pm3386_sta()
{
	unsigned char i,j;
	PM3386Write(0x500,0x1);
	PM3386Write(0x600,0x1);
	printf("\n=*=*=*=*=*=*=*CHANNEL 0*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=CHANNEL  1*=*=*=*=*=*=*=*=*=*=*=*=*\n\n");
	printf("      Frame Receive  OK    :%8ld	=*=",(PM3386Read(0x511)<<16)+PM3386Read(0x510)); 
	printf("      Frame Receive  OK    :%8ld\n",(PM3386Read(0x611)<<16)+PM3386Read(0x610));                  
	printf("      Octet Receive  OK    :%8ld	=*=",(PM3386Read(0x515)<<16)+PM3386Read(0x514));
	printf("      Octet Receive  OK    :%8ld\n",(PM3386Read(0x615)<<16)+PM3386Read(0x614));
	printf("      Frame Receive        :%8ld	=*=",(PM3386Read(0x519)<<16)+PM3386Read(0x518)); 
	printf("      Frame Receive        :%8ld\n",(PM3386Read(0x619)<<16)+PM3386Read(0x618)); 
	printf("      Octet Receive        :%8ld	=*=",(PM3386Read(0x51d)<<16)+PM3386Read(0x51c)); 
        printf("      Octet  Receive       :%8ld\n",(PM3386Read(0x61d)<<16)+PM3386Read(0x61c)); 
	printf("      UFrame Receive  OK   :%8ld	=*=",(PM3386Read(0x521)<<16)+PM3386Read(0x520)); 
	printf("      UFrame Receive  OK   :%8ld\n",(PM3386Read(0x621)<<16)+PM3386Read(0x620));
	printf("      MFrame Receive  OK   :%8ld	=*=",(PM3386Read(0x525)<<16)+PM3386Read(0x524));
	printf("      MFrame Receive  OK   :%8ld\n",(PM3386Read(0x625)<<16)+PM3386Read(0x624));              
	printf("      BFrame Receive  OK   :%8ld	=*=",(PM3386Read(0x529)<<16)+PM3386Read(0x528)); 
	printf("      BFrame Receive  OK   :%8ld\n",(PM3386Read(0x629)<<16)+PM3386Read(0x628));
	printf("      FCS    ERROR         :%8ld	=*=",(PM3386Read(0x539)<<16)+PM3386Read(0x538)); 
	printf("      FCS    ERROR         :%8ld\n",(PM3386Read(0x639)<<16)+PM3386Read(0x638));
	printf("      FrameLost MAC ERROR  :%8ld	=*=",(PM3386Read(0x53d)<<16)+PM3386Read(0x53c)); 
	printf("      FrameLost MAC ERROR  :%8ld\n",(PM3386Read(0x63d)<<16)+PM3386Read(0x63c));
	printf("      Symbol        ERROR  :%8ld	=*=",(PM3386Read(0x541)<<16)+PM3386Read(0x540));
	printf("      Symbol        ERROR  :%8ld\n",(PM3386Read(0x641)<<16)+PM3386Read(0x640));
	printf("      INRangeLengthErrors  :%8ld	=*=",(PM3386Read(0x545)<<16)+PM3386Read(0x544)); 
	printf("      INRangeLengthErrors  :%8ld\n",(PM3386Read(0x645)<<16)+PM3386Read(0x644));
	printf("      FrameTooLongErrors   :%8ld	=*=",(PM3386Read(0x54d)<<16)+PM3386Read(0x54c)); 
	printf("      FrameTooLongErrors   :%8ld\n",(PM3386Read(0x64d)<<16)+PM3386Read(0x64c));
	printf("      Jabbers              :%8ld	=*=",(PM3386Read(0x551)<<16)+PM3386Read(0x550)); 
        printf("      Jabbers              :%8ld\n",(PM3386Read(0x651)<<16)+PM3386Read(0x650));
	printf("      Fragments            :%8ld	=*=",(PM3386Read(0x555)<<16)+PM3386Read(0x554));
	printf("      Fragments            :%8ld\n",(PM3386Read(0x655)<<16)+PM3386Read(0x654)); 
	printf("      UndersizedFrames     :%8ld	=*=",(PM3386Read(0x559)<<16)+PM3386Read(0x558)); 
	printf("      UndersizedFrames     :%8ld\n",(PM3386Read(0x659)<<16)+PM3386Read(0x658));
	printf("      ReceiveFrame64Octet  :%8ld	=*=",(PM3386Read(0x55d)<<16)+PM3386Read(0x55c));
	printf("      ReceiveFrame64Octet  :%8ld\n",(PM3386Read(0x65d)<<16)+PM3386Read(0x65c)); 
	printf("      ReceiveFrame64--127  :%8ld	=*=",(PM3386Read(0x561)<<16)+PM3386Read(0x560)); 
	printf("      ReceiveFrame64--127  :%8ld\n",(PM3386Read(0x661)<<16)+PM3386Read(0x660));      
	printf("      ReceiveFrame128-255  :%8ld	=*=",(PM3386Read(0x565)<<16)+PM3386Read(0x564)); 
	printf("      ReceiveFrame128-255  :%8ld\n",(PM3386Read(0x665)<<16)+PM3386Read(0x664));
	printf("      ReceiveFrame256-511  :%8ld	=*=",(PM3386Read(0x569)<<16)+PM3386Read(0x568));
	printf("      ReceiveFrame256-511  :%8ld\n",(PM3386Read(0x669)<<16)+PM3386Read(0x668)); 
	printf("      ReceiveFrame512-1023 :%8ld	=*=",(PM3386Read(0x56d)<<16)+PM3386Read(0x56c));  
	printf("      ReceiveFrame512-1023 :%8ld\n",(PM3386Read(0x66d)<<16)+PM3386Read(0x66c));
	printf("      ReceiveFrame1024-1518:%8ld	=*=",(PM3386Read(0x571)<<16)+PM3386Read(0x570)); 
	printf("      ReceiveFrame1024-1518:%8ld\n",(PM3386Read(0x671)<<16)+PM3386Read(0x670));
	printf("      ReceiveFrame1519--MAX:%8ld	=*=",(PM3386Read(0x575)<<16)+PM3386Read(0x574)); 
	printf("      ReceiveFrame1519--MAX:%8ld\n",(PM3386Read(0x675)<<16)+PM3386Read(0x674));
	printf("      FilteredOctets       :%8ld	=*=",(PM3386Read(0x57d)<<16)+PM3386Read(0x57c)); 
        printf("      FilteredOctets       :%8ld\n",(PM3386Read(0x67d)<<16)+PM3386Read(0x67c));
	printf("      FilteredUnicastFrame :%8ld	=*=",(PM3386Read(0x581)<<16)+PM3386Read(0x580));
	printf("      FilteredUnicastFrame :%8ld\n",(PM3386Read(0x681)<<16)+PM3386Read(0x680));
	printf("      FilteredMulcastFrame :%8ld	=*=",(PM3386Read(0x585)<<16)+PM3386Read(0x584)); 
	printf("      FilteredMulcastFrame :%8ld\n",(PM3386Read(0x685)<<16)+PM3386Read(0x684));	
	printf("      FilteredBrocastFrame :%8ld	=*=",(PM3386Read(0x589)<<16)+PM3386Read(0x588)); 
	printf("      FilteredBrocastFrame :%8ld\n",(PM3386Read(0x689)<<16)+PM3386Read(0x688));
	printf("      Frame Transmitted OK :%8ld	=*=",(PM3386Read(0x591)<<16)+PM3386Read(0x590));
	printf("      Frame Transmitted OK :%8ld\n",(PM3386Read(0x691)<<16)+PM3386Read(0x690));
	printf("      Octet Transmitted OK :%8ld	=*=",(PM3386Read(0x595)<<16)+PM3386Read(0x594));
 	printf("      Octet Transmitted OK :%8ld\n",(PM3386Read(0x695)<<16)+PM3386Read(0x694));
	printf("      Octet Transmitted    :%8ld	=*=",(PM3386Read(0x599)<<16)+PM3386Read(0x598));
 	printf("      Octet Transmitted    :%8ld\n",(PM3386Read(0x699)<<16)+PM3386Read(0x698));
	printf("      FrameLostForMACError :%8ld	=*=",(PM3386Read(0x59d)<<16)+PM3386Read(0x59c));
 	printf("      FrameLostForMACError :%8ld\n",(PM3386Read(0x69d)<<16)+PM3386Read(0x69c));
	printf("      TransmitSystemError  :%8ld	=*=",(PM3386Read(0x5a1)<<16)+PM3386Read(0x5a0));
 	printf("      TransmitSystemError  :%8ld\n",(PM3386Read(0x6a1)<<16)+PM3386Read(0x6a0));
	printf("      UFrameTransmitAttempt:%8ld	=*=",(PM3386Read(0x5a5)<<16)+PM3386Read(0x5a4));
 	printf("      UFrameTransmitAttempt:%8ld\n",(PM3386Read(0x6a5)<<16)+PM3386Read(0x6a4));
	printf("      UFrameTransmitted OK :%8ld	=*=",(PM3386Read(0x5a9)<<16)+PM3386Read(0x5a8)); 
	printf("      UFrameTransmitted OK :%8ld\n",(PM3386Read(0x6a9)<<16)+PM3386Read(0x6a8));
	printf("      TransmitFrame64Octets:%8ld	=*=",(PM3386Read(0x5c5)<<16)+PM3386Read(0x5c4));
 	printf("      TransmitFrame64Octets:%8ld\n",(PM3386Read(0x6c5)<<16)+PM3386Read(0x6c4));
	printf("      TransmitFrame64--127 :%8ld	=*=",(PM3386Read(0x5c9)<<16)+PM3386Read(0x5c8)); 
	printf("      TransmitFrame64--127 :%8ld\n",(PM3386Read(0x6c9)<<16)+PM3386Read(0x6c8));
	printf("      TransmitFrame128-255 :%8ld	=*=",(PM3386Read(0x5cd)<<16)+PM3386Read(0x5cc)); 
	printf("      TransmitFrame128-255 :%8ld\n",(PM3386Read(0x6cd)<<16)+PM3386Read(0x6cc));
	printf("      TransmitFrame256-511 :%8ld	=*=",(PM3386Read(0x5d1)<<16)+PM3386Read(0x5d0));
 	printf("      TransmitFrame256-511 :%8ld\n",(PM3386Read(0x6d1)<<16)+PM3386Read(0x6d0));
	printf("      TransmitFrame512-1023:%8ld	=*=",(PM3386Read(0x5d5)<<16)+PM3386Read(0x5d4)); 
	printf("      TransmitFrame512-1023:%8ld\n",(PM3386Read(0x6d5)<<16)+PM3386Read(0x6d4));
	printf("      TransmitFram1024-1518:%8ld	=*=",(PM3386Read(0x5d9)<<16)+PM3386Read(0x5d8)); 
	printf("      TransmitFram1024-1518:%8ld\n",(PM3386Read(0x6d9)<<16)+PM3386Read(0x6d8));
	printf("      TransmitFrame1519-MAX:%8ld	=*=",(PM3386Read(0x5dd)<<16)+PM3386Read(0x5dc)); 
	printf("      Tran

⌨️ 快捷键说明

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