📄 mac.c
字号:
#include "uart.h"
#include "mac.h"
/*
* Global Variable for MAC/BDMA and CAM Configuration
*/
extern volatile U32 gMacCon ;
extern volatile U32 gMacTxCon ;
extern volatile U32 gMacRxCon ;
extern volatile U32 gBdmaTxCon ;
extern volatile U32 gBdmaRxCon ;
extern volatile U32 gCamCon ;
extern volatile U32 CntlPktTxDone ; /* Control Packet Tx Done Flag */
extern volatile U32 gCam0_Addr0 ;
extern volatile U32 gCam0_Addr1 ;
extern volatile U32 gCRxFDPtr ;
/*
* variable for capture frame
*/
volatile U32 gCapture_Addr0 ;
volatile U32 gCapture_Addr1 ;
/*
* Function : void MacTest(void)
* Description : Main function for MAC Block test
*/
void MacTest(void)
{
}
/*
* Function : void MacLoopBackTest(void)
* Description : MAC LoopBack Test
*/
void MacLoopBackTest(void)
{
}
/*
* Function : void PhyNoColLoopBack(void)
* Description : Loopback Test by PHY without collision
*/
void PhyNoColLoopBack(void)
{
MiiStationWrite(PHY_CNTL_REG, PHYHWADDR, PHY_FULLDUPLEX | \
DR_100MB | ENABLE_LOOPBACK) ;
/* ENABLE_LOOPBACK) ;*/
InterruptLoopBackTest() ;
ResetPhyChip() ;
}
/*
* Function : void PhyColLoopBack(void)
* Description : Loopback Test by PHY without collision
*/
void PhyColLoopBack(void)
{
MiiStationWrite(PHY_CNTL_REG, PHYHWADDR, PHY_FULLDUPLEX | \
DR_100MB | PHY_COL_TEST | ENABLE_LOOPBACK) ;
InterruptLoopBackTest() ;
ResetPhyChip() ;
}
/*
* Function : void MacPollLoopBack(void)
* Description : MAC Polling LoopBack Test
*/
void MacPollLoopBack(void)
{
int LoopCnt = 5 ;
while( LoopCnt-- ) PollingLoopBackTest() ;
}
/*
* Function : void MacAllLoopBack(void)
* Description : MAC All LoopBack Test
*/
void MacAllLoopBack(void)
{
MacInternalLoopBack() ;
PhyNoColLoopBack() ;
PhyColLoopBack() ;
}
/*
* Function : SingleTransfer
* Description : Transfer a Frame Data to another Host
*/
void SingleTransfer(void)
{
char TransferPacket ;
int i = 0 ;
do
{
TransferPacket = get_byte() ;
if ( (TransferPacket == 'T') || (TransferPacket == 't') )
Random_Pkt_Transmit(i++) ;
} while ( (TransferPacket != 'Q') && (TransferPacket != 'q') ) ;
}
/*
* Function : void MacEtcTest(void)
* Description : Other MAC Function
*/
void MacEtcTest(void)
{
}
/*
* Function : void CaptureCntlFrame(void)
* Description : Capture Control Rx Frame
*/
void CaptureCntlFrame(void)
{
gCapture_Addr0 = 0x0 ; gCapture_Addr1 = 0x0 ;
gCamCon = CompEn | StationAcc | GroupAcc | BroadAcc | NegCAM ;
#ifdef LITTLE
gBdmaRxCon = BRxDIE | BRxEn | BRxLittle | BRxMAINC | BRxBRST ;
#else
gBdmaRxCon = BRxDIE | BRxEn | BRxBig | BRxMAINC | BRxBRST ;
#endif
gMacRxCon = RxEn | EnAlign | EnCRCErr | EnOver | EnLongErr | \
EnRxPar | PassCtl ;
CaptureRxFrame() ;
gMacRxCon = RxEn | StripCRC ;
#ifdef LITTLE
gBdmaRxCon = BRxDIE | BRxEn | BRxLittle | BRxMAINC | BRxBRST | \
BRxNLIE | BRxNOIE | BRxSTSKO ;
#else
gBdmaRxCon = BRxDIE | BRxEn | BRxBig | BRxMAINC | BRxBRST | \
BRxNLIE | BRxNOIE | BRxSTSKO ;
#endif
gCamCon = CompEn | BroadAcc ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -