📄 ether_dev.h
字号:
#ifndef _ETHER_DEV_H
#define _ETHER_DEV_H
//ether_dev.h
#ifdef ETHER_DEV_GLOBALS
#define ETHER_DEV_EXT
#else
#define ETHER_DEV_EXT extern
#endif
#include "tcpip.h"
#define CR 0x00
// Page 0
#define PSTART 0x01
#define PSTOP 0x02
#define BNDRY 0x03
#define TPSR 0x04
#define TBCR0 0x05
#define TBCR1 0x06
#define CPR 0x06
#define ISR 0x07
#define RSAR0 0x08
#define RSAR1 0x09
#define RBCR0 0x0A
#define RBCR1 0x0B
#define RCR 0x0C
#define TCR 0x0D
#define DCR 0x0E
#define IMR 0x0F
#define EEPROM 0x14
// Page 1
#define PAR0 0x01
#define PAR1 0x02
#define PAR2 0x03
#define PAR3 0x04
#define PAR4 0x05
#define PAR5 0x06
#define CURR 0x07
#define MAR0 0x08
#define MAR1 0x09
#define MAR2 0x0A
#define MAR3 0x0B
#define MAR4 0x0C
#define MAR5 0x0D
#define MAR6 0x0E
#define MAR7 0x0F
#define NIC_DATA 0x10
#define GPI 0x17
#define GPOC 0x17
#define NIC_RESET 0x1F
// Bits in NIC Registers
#define CR_STOP 0x01
#define CR_START 0x02
#define CR_TRANSMIT 0x04
#define CR_DMAREAD 0x08
#define CR_DMAWRITE 0x10
#define CR_NODMA 0x20
#define CR_PAGE0 0x00
#define CR_PAGE1 0x40
#define CR_PAGE2 0x80
#define RCR_BCAST 0x04
#define RCR_MCAST 0x08
#define RCR_PROMISCUOUS 0x10
#define RCR_MONITOR 0x20
#define DCR_BYTEDMA 0x00
#define DCR_WORDDMA 0x01
#define DCR_NOLPBK 0x08
#define DCR_FIFO2 0x00
#define DCR_FIFO4 0x20
#define DCR_FIFO8 0x40
#define DCR_FIFO12 0x60
#define TCR_NOLPBK 0x00
#define TCR_INTLPBK 0x02
#define TCR_EXTLPBK 0x04
#define TCR_EXTLPBK2 0x06
#define TCR_FULLDUPLEX 0x80
#define GPOC_PPDSET 0x40
#define GPOC_INTPHY 0x00
#define GPOC_EXTPHY 0x20
#define GPOC_MPSEL 0x10
// NIC buffer
#define TX_BUF_Start 0x40
#define TX_BUF_Stop 0x46
#define RX_BUF_Start 0x46
#define RX_BUF_Stop 0x80
// DMA buffer operation
#define DMA_Write 0x01
#define DMA_Read 0x00
// Ethernet messages type
#define Ethernet_IP 0x0800
#define Ethernet_ARP 0x0806
//board information
#define Ethernet_Addr_Base0 0x400000
#define Ethernet_Addr_Base1 0x800000
#define Ethernet0 0
#define Ethernet1 1
#define NICRST (1<<20) //NIC(AX88796) Reset signal
#define NULL 0
//Function declare
ETHER_DEV_EXT uint16 etherdev_init(uint16 device);
ETHER_DEV_EXT uint16 EtherInput(uint8* addr, uint16 max_len,uint8 idx);
ETHER_DEV_EXT uint8 EtherOutput(uint8* addr, uint16 len, uint16 hw_id);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -