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

📄 ethernetinit.h

📁 arm7s3c44b0x0里ps2口和lcd口驱动编程实例
💻 H
字号:
#ifndef __ETHERNET_INIT__
#define __ETHERNET_INIT__

#define MACLEN  6
#define CRCLEN  4
#define BROADCASTADDR (0xff, 0xff, 0xff, 0xff, 0xff, 0xff)
#define MAXFRAMELENHARD  1518
#define MINFRAMELENHARD  64
#define MAXFRAMELEN   1514
#define MINFRAMELEN   60
#define ETHERNETDATALEN (MAXFRAMELEN - sizeof(ETHERNETHEADER))

#define RTL8019_Base	0x08000000				//Bank4 0x08000000~0x0c000000
#define DATAPORT  (*(volatile unsigned char*)(RTL8019_Base + 0x1000)) //1 byte//0x10
#define DATAPORTW (*(volatile unsigned short*)(RTL8019_Base + 0x1000))//2 byte//0x10
#define RTLRESET  (*(volatile unsigned char*)(RTL8019_Base + 0x1800))//0x18

/* page0 register offsets */
#define CMDR    (*(volatile unsigned char*)(RTL8019_Base + 0x0000))//0x00            /* command register for read & write */
#define PSTART  (*(volatile unsigned char*)(RTL8019_Base + 0x0100))//0x01            /* page start register for write */
#define PSTOP   (*(volatile unsigned char*)(RTL8019_Base + 0x0200))//0x02            /* page stop register for write */
#define BNRY    (*(volatile unsigned char*)(RTL8019_Base + 0x0300))//0x03            /* boundary reg for rd and wr */
#define TPSR    (*(volatile unsigned char*)(RTL8019_Base + 0x0400))//0x04            /* tx start page start reg for wr */
#define TBCR0   (*(volatile unsigned char*)(RTL8019_Base + 0x0500))//0x05            /* tx byte count 0 reg for wr */
#define TBCR1   (*(volatile unsigned char*)(RTL8019_Base + 0x0600))//0x06            /* tx byte count 1 reg for wr */
#define ISR     (*(volatile unsigned char*)(RTL8019_Base + 0x0700))//0x07            /* interrupt status reg for rd and wr */
#define RSAR0   (*(volatile unsigned char*)(RTL8019_Base + 0x0800))//0x08            /* low byte of remote start addr */
#define RSAR1   (*(volatile unsigned char*)(RTL8019_Base + 0x0900))//0x09            /* hi byte of remote start addr */
#define RBCR0   (*(volatile unsigned char*)(RTL8019_Base + 0x0a00))//0x0A            /* remote byte count reg 0 for wr */
#define RBCR1   (*(volatile unsigned char*)(RTL8019_Base + 0x0b00))//0x0B            /* remote byte count reg 1 for wr */
#define RCR     (*(volatile unsigned char*)(RTL8019_Base + 0x0c00))//0x0C            /* rx configuration reg for wr */
#define TCR     (*(volatile unsigned char*)(RTL8019_Base + 0x0d00))//0x0D            /* tx configuration reg for wr */
#define DCR     (*(volatile unsigned char*)(RTL8019_Base + 0x0e00))//0x0E            /* data configuration reg for wr */
#define IMR     (*(volatile unsigned char*)(RTL8019_Base + 0x0f00))//0x0F            /* interrupt mask reg for wr */

/* page 1 register offsets */
#define PAR0    RTL8019_REG_1//0x01            /* physical addr reg 0 for rd and wr */
#define PAR1    RTL8019_REG_2//0x02
#define PAR2    RTL8019_REG_3//0x03
#define PAR3    RTL8019_REG_4//0x04
#define PAR4    RTL8019_REG_5//0x05
#define PAR5    RTL8019_REG_6//0x06
#define CURR    RTL8019_REG_7//0x07            /* current page reg for rd and wr */
#define MAR0    RTL8019_REG_8//0x08            /* multicast addr reg 0 for rd and WR */
#define MAR1    RTL8019_REG_9//0x08
#define MAR2    RTL8019_REG_A//0x08
#define MAR3    RTL8019_REG_B//0x08
#define MAR4    RTL8019_REG_C//0x08
#define MAR5    RTL8019_REG_D//0x08
#define MAR6    RTL8019_REG_E//0x08
#define MAR7    RTL8019_REG_F//0x08

/* Buffer Length and Field Definition */
#define TXSTART  0x40           /* Tx buffer start page */
#define TXPAGES  6              /* Pages for Tx buffer */
#define RXSTART  (TXSTART+TXPAGES)  /* Rx buffer start page */
#define RXSTOP   0x5f           /* Ditto for byte mode */
#define DCRVAL   0x48
#define STARHACK 0              /* Set non-zero to enable Starlan length hack */

typedef struct
{
	BYTE destination[MACLEN];
	BYTE source[MACLEN];
	WORD datatype;
}ETHERNETHEADER; 

typedef struct
{
	ETHERNETHEAD head;
	BYTE data[ETHERNETDATALEN];
	DWORD crc;	
}ETHERNETFRAME;

void EthernetReset(void);

#endif

⌨️ 快捷键说明

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