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 + -
显示快捷键?