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

📄 mac_low.h

📁 此文档为采用FPGA实现的以太网MAC层
💻 H
字号:
#include "sys.h"//Defines for Uint32 variables to access EMAC#define EMAC_MODE *((volatile Uint32 *) Base_EMAC)#define EMAC_INT_SRC *((Uint32 *) (Base_EMAC+4))#define EMAC_INT_MASK *((Uint32 *) (Base_EMAC+8))#define EMAC_IPGT *((Uint32 *) (Base_EMAC+0xC))#define EMAC_TXBDNUM *((Uint32 *) (Base_EMAC+0x20))#define EMAC_MACADDR0 *((Uint32 *) (Base_EMAC+0x40))#define EMAC_MACADDR1 *((Uint32 *) (Base_EMAC+0x44))typedef struct{    Uint32 reg;    Uint32 buffer_address;} BD_TYPE;//Struct pointer to start of TX Buffer descriptors//Must be indexed into to access#define EMAC_TXBD_PTR ((BD_TYPE *) (Base_EMAC+0x400))#define BD_SIZE sizeof(BD_TYPE)//Maximum number of TX Buffer descriptors (max 0x80)#define TXBDNUM 0x40//total number of used BD#define RXBDCOUNT 16//Size of each BD in ram#define RXBDSIZE ((EMAC_RAM_SIZE/2)/RXBDCOUNT)//Struct pointer to start of RX Buffer descriptors//Must be indexed into to access#define EMAC_RXBD_PTR ((BD_TYPE *) (Base_EMAC+0x400+(sizeof(BD_TYPE)*TXBDNUM)))//Pointer to RAM contents#define EMAC_RAM_PTR (Base_EMAC_RAM)#define EMAC_TX_OFFSET 0//Defines size of RAM in bytes - RX buffer will start halfway#define EMAC_RAM_SIZE 0x4000//TX Pointer is start of ram#define EMAC_TX_PTR (EMAC_RAM_PTR+EMAC_TX_OFFSET)#define EMAC_RX_OFFSET (EMAC_RAM_SIZE/2)#define EMAC_RX_PTR (Base_EMAC_RAM+EMAC_RX_OFFSET)void mac_low_init(void);void mac_set_address(Uint8 *mac_address);void mac_txen(void);void mac_rxen(void);void mac_clr_rxint(void);void mac_rxint_en(void);void mac_rxint_dis(void);void mac_set_address(Uint8 *mac_address);void mac_set_len(Uint8 bdnum,Uint16 data_len) ;void mac_clr_rxbd(Uint8 bdnum);void mac_setbdaddr(Uint8 bdnum,Uint16 address);Uint32 mac_getbdaddr(Uint8 bdnum);void mac_setwr(Uint8 bdnum);

⌨️ 快捷键说明

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