hal_mac.h

来自「最新版IAR FOR ARM(EWARM)5.11中的代码例子」· C头文件 代码 · 共 574 行 · 第 1/2 页

H
574
字号
#define DmaMac_RxDMACAddr_Msk        0xffffffff

//*********  Mask
#define DmaMac_TxDMACAddr_Msk        0xffffffff

//*********  Values
#define DmaMac_CAddrMsk              0xFFFFFFFF
#define DmaMac_CAddrU                0x00000001


//-----------------------------------------------------------------------------
// DMA_MAC TX/RX DMA Current XferCount
//-----------------------------------------------------------------------------

//*********  Mask
#define DmaMac_RxDMACurrXCnt_Msk     0x00000fff

//*********  Mask
#define DmaMac_TxDMACurrXCnt_Msk     0x00000fff

//*********  Values
#define DmaMac_CurrXCntMsk           0x00000FFF
#define DmaMac_CurrXCntU             0x00000001

//-----------------------------------------------------------------------------
// DMA_MAC TX/RX DMA FIFO Timeout
//-----------------------------------------------------------------------------

//*********  Masks
#define DmaMac_RxDMAFifoTmOut_Msk    0x0000ffff
#define DmaMac_RxDMAFifoTmOut_Rst    0x00000000

//*********  Masks
#define DmaMac_TxDMAFifoTmOut_Msk    0x0000ffff
#define DmaMac_TxDMAFifoTmOut_Rst    0x00000000

//*********  Values
#define DmaMac_FifoTmOutMsk          0x0000FFFF
#define DmaMac_FifoTmOutU            0x00000001

//-----------------------------------------------------------------------------
// DMA_MAC TX/RX DMA FIFO Status
//-----------------------------------------------------------------------------

//*********  Masks
#define DmaMac_RxDMAFifoStat_Msk     0x3f1f1f0f
#define DmaMac_RxDMAFifoStat_Rst     0x00000001

//*********  Masks
#define DmaMac_TxDMAFifoStat_Msk     0x3f1f1f0f
#define DmaMac_TxDMAFifoStat_Rst     0x10000005

//*********  Values
#define DmaMac_FifoEmpty        0x00000001
#define DmaMac_FifoFull         0x00000002
#define DmaMac_FifoEntryT       0x00000004
#define DmaMac_FifoDelayT       0x00000008
#define DmaMac_FifoIOPMsk       0x00001F00
#define DmaMac_FifoIOPU         0x00000100
#define DmaMac_FifoDMAPMsk      0x001F0000
#define DmaMac_FifoDMAPU        0x00010000
#define DmaMac_FifoEntMsk       0x3F000000
#define DmaMac_FifoEntU         0x01000000


//*****************************************************************************
//*                                                                         *//
//*                                                                         *//
//*                                                                         *//
//*                                 MAC110                                  *//
//*                                                                         *//
//*                                                                         *//
//*                                                                         *//
//*****************************************************************************
//-----------------------------------------------------------------------------
// MAC110 RcvFrame Status
//-----------------------------------------------------------------------------
#define Mac_FrmLen              0x00003FFF
#define Mac_WdogTmout           0x00004000
#define Mac_RuntFrm             0x00008000
#define Mac_FrmTooLong          0x00010000
#define Mac_ColSeen             0x00020000
#define Mac_FrmType             0x00040000
#define Mac_MIIErr              0x00080000
#define Mac_DribBit             0x00100000
#define Mac_CRCErr              0x00200000
#define Mac_1LVLANFrm           0x00400000
#define Mac_2LVLANFrm           0x00800000
#define Mac_LenErr              0x01000000
#define Mac_CtrlFrm             0x02000000
#define Mac_BadCtrlFrm          0x04000000
#define Mac_MCastFrm            0x08000000
#define Mac_BCastFrm            0x10000000
#define Mac_FilterErr           0x20000000
#define Mac_FilterOK            0x40000000
#define Mac_MissedFrm           0x80000000

//-----------------------------------------------------------------------------
// MAC110 Control Register
//-----------------------------------------------------------------------------

//*********  Masks
#define Mac_Ctrl_Msk            0xd8ffbdec
#define Mac_Ctrl_Rst            0x00040000

//*********  Values
#define Mac_RxEn                0x00000004
#define Mac_TxEn                0x00000008
#define Mac_DfrChk              0x00000020
#define Mac_BckOff_10           0x00000000
#define Mac_BckOff_08           0x00000040
#define Mac_BckOff_04           0x00000080
#define Mac_BckOff_01           0x000000C0
#define Mac_AutoPadStrip        0x00000100
#define Mac_NoRty               0x00000400
#define Mac_NoRxBrd             0x00000800
#define Mac_LateColCtrl         0x00001000
#define Mac_ImperfFiltON        0x00002000
#define Mac_HashOnlyFilter      0x00008000
#define Mac_PassBadFrms         0x00010000
#define Mac_InvFilter           0x00020000
#define Mac_PrmscMode           0x00040000
#define Mac_PassAllMCast        0x00080000
#define Mac_FullDplxMode        0x00100000
#define Mac_LoopMode_nrm        0x00000000
#define Mac_LoopMode_int        0x00200000
#define Mac_LoopMode_ext        0x00400000
#define Mac_NoRxOwn             0x00800000
#define Mac_PortSlct            0x08000000
#define Mac_NoHeartBeat         0x10000000
#define Mac_BigEndMode          0x40000000
#define Mac_RxAll               0x80000000

//-----------------------------------------------------------------------------
// MAC110 Address_HI Register
//-----------------------------------------------------------------------------

//*********  Masks
#define Mac_AddrHI_Msk          0x0000ffff
#define Mac_AddrHI_Rst          0x0000ffff

//-----------------------------------------------------------------------------
// MAC110 Address_LO Register
//-----------------------------------------------------------------------------

//*********  Masks
#define Mac_AddrLO_Msk          0xffffffff
#define Mac_AddrLO_Rst          0xffffffff

//-----------------------------------------------------------------------------
// MAC110 Multicast Address_HI Register
//-----------------------------------------------------------------------------

//*********  Masks
#define Mac_MCAddrHI_Msk        0xffffffff
#define Mac_MCAddrHI_Rst        0x00000000

//-----------------------------------------------------------------------------
// MAC110 Multicast Address_LO Register
//-----------------------------------------------------------------------------

//*********  Masks
#define Mac_MCAddrLO_Msk        0xffffffff
#define Mac_MCAddrLO_Rst        0x00000000

//-----------------------------------------------------------------------------
// MAC110 MII Registers
//-----------------------------------------------------------------------------

//*********  Mask
#define Mii_AddrReg_Msk         0x0000ffc3
#define Mii_DataReg_Msk         0x0000ffff

//*********  Values
#define Mii_Busy                0x00000001
#define Mii_Write               0x00000002
#define Mii_RegisterMsk         0x000007c0
#define Mii_RegisterU           0x00000040
#define Phy_AddrMsk             0x0000f800
#define Phy_AddrU               0x00000800


//-----------------------------------------------------------------------------
// MAC110 Flow Control Register
//-----------------------------------------------------------------------------

//*********  Mask
#define Mii_FlwCtrlReg_Msk      0xffff0007

//*********  Values
#define Mii_FlwCtrlBusy         0x00000001
#define Mii_FlwCtrlEn           0x00000002
#define Mii_PassCtrlFrms        0x00000004
#define Mii_PauseTimeMsk        0xffff0000
#define Mii_PauseTimeU          0x00010000


//-----------------------------------------------------------------------------
// MAC110 MMC Statistic Control Register
//-----------------------------------------------------------------------------

//*********  Mask
#define Mmc_CtrlReg_Msk         0x00003fff

//*********  Values
#define Mmc_Reset               0x00000001
#define Mmc_RollOver            0x00000002
#define Mmc_ResetOnRd           0x00000004
#define Mmc_MaxFrmSzMsk         0x00003ff8
#define Mmc_MaxFrmSzU           0x00000008

//-----------------------------------------------------------------------------
// MAC110 MMC Statistic Int HI Registers
//-----------------------------------------------------------------------------

//*********  Mask
#define Mmc_IntHiReg_Msk        0x00000fff
#define Mmc_IntMskHiReg_Msk     0x00000fff

//*********  Values
#define Mmc_UnicastInt          0x00000001
#define Mmc_MulticastInt        0x00000002
#define Mmc_BroadcastInt        0x00000004

//-----------------------------------------------------------------------------
// MAC110 MMC Statistic Int LO Registers
//-----------------------------------------------------------------------------

//*********  Masks
#define Mmc_IntLoReg_Msk        0xffffffff
#define Mmc_IntMskLoReg_Msk     0xffffffff

//*********  Values
#define Mmc_TotFrmsInt          0x00000001
#define Mmc_GoodFrmsInt         0x00000002
#define Mmc_CtrlFrmsInt         0x00000004
#define Mmc_BadCtrlFrmsInt      0x00000008
#define Mmc_TotBytesInt         0x00000010


//*****************************************************************************
//*                                                                         *//
//*                                                                         *//
//*                                                                         *//
//*                    Prototypes for hal_mac.c functions                   *//
//*                                                                         *//
//*                                                                         *//
//*                                                                         *//
//*****************************************************************************
//-----------------------------------------------------------------------------
// Function prototypes hal_mac.c
//-----------------------------------------------------------------------------

int MAC_Init(void);
void MAC_SetPhyLayer(u16 PHYnum, u16 PHYreg, u16 CtrlBit, u16 Set);
void MAC_GetPhyLayer(u16 PHYnum, u16 PHYreg, u16 *CtrlBit);
int MAC_Send(EthernetFrame *frame, u16 len);
u16 MAC_Recv(EthernetFrame *frame);

//-----------------------------------------------------------------------------
//interrupt service routines hal_mac.c
//-----------------------------------------------------------------------------
void MAC_IrqHandler_RxEmpty(void);
void MAC_IrqHandler_RxFull(void);
void MAC_IrqHandler_RxEntry(void);
void MAC_IrqHandler_RxTo(void);
void MAC_IrqHandler_PckLost(void);
void MAC_IrqHandler_RxNext(void);
void MAC_IrqHandler_RxDone(void);
void MAC_IrqHandler_RxMErr(void);
void MAC_IrqHandler_RxCurrDone(void);
void MAC_IrqHandler_TxEmpty(void);
void MAC_IrqHandler_TxFull(void);
void MAC_IrqHandler_TxEntry(void);
void MAC_IrqHandler_TxTo(void);
void MAC_IrqHandler_TxNext(void);
void MAC_IrqHandler_TxDone(void);
void MAC_IrqHandler_TxMErr(void);
void MAC_IrqHandler_MACInt(void);
void MAC_IrqHandler_TxCurrDone(void);
//-----------------------------------------------------------------------------
#endif




⌨️ 快捷键说明

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