亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? etherne.c

?? 這是ARMSYS44B0-P專業(yè)開發(fā)板的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
/* NE2000-compatible net card drivers
noice: this file only can work for "Byte-mode".*/

#include <stdio.h>
//#include <conio.h>
#include <stdlib.h>
#include <string.h>
//#include "..\Target\44blib.h"

#include "ether.h"              /* Typedefs and function prototypes */
#include "netutil.h"
#include "net.h"

#define WORDMODE 0              /* Set to zero if using 8-bit XT-bus cards */
//---------8019 register define (ethernet.sch)------------------------------//
#define RTL8019_Base	0x08000000//Bank4 0x08000000~0x0c000000
#define RTL_Offset_00	0x0000    //Register (3 pages) 
#define RTL_Offset_01	0x0100
#define RTL_Offset_02	0x0200
#define RTL_Offset_03	0x0300
#define RTL_Offset_04	0x0400
#define RTL_Offset_05	0x0500
#define RTL_Offset_06	0x0600
#define RTL_Offset_07	0x0700
#define RTL_Offset_08	0x0800
#define RTL_Offset_09	0x0900
#define RTL_Offset_0a	0x0a00
#define RTL_Offset_0b	0x0b00
#define RTL_Offset_0c	0x0c00
#define RTL_Offset_0d	0x0d00
#define RTL_Offset_0e	0x0e00
#define RTL_Offset_0f	0x0f00
#define RTL_Offset_10	0x1000    //DMA address
#define RTL_Offset_18	0x1800    //Reset address
#define RTL8019_REG_0	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_00))
#define RTL8019_REG_1	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_01))
#define RTL8019_REG_2	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_02))
#define RTL8019_REG_3	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_03))
#define RTL8019_REG_4	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_04))
#define RTL8019_REG_5	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_05))
#define RTL8019_REG_6	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_06))
#define RTL8019_REG_7	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_07))
#define RTL8019_REG_8	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_08))
#define RTL8019_REG_9	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_09))
#define RTL8019_REG_A	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_0a))
#define RTL8019_REG_B	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_0b))
#define RTL8019_REG_C	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_0c))
#define RTL8019_REG_D	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_0d))
#define RTL8019_REG_E	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_0e))
#define RTL8019_REG_F	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_0f))
#define RTL8019_REG_DMA		(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_10)) //1 byte
#define RTL8019_REG_DMA_HW	(*(volatile unsigned short*)(RTL8019_Base+RTL_Offset_10))//2 byte
#define RTL8019_REG_RST		(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_18))


/* NE2000 definitions */
#define DATAPORT RTL8019_REG_DMA//0x10
#define NE_RESET RTL8019_REG_RST//0x18

/* 8390 Network Interface Controller (NIC) page0 register offsets */
#define CMDR    RTL8019_REG_0//0x00            /* command register for read & write */
#define PSTART  RTL8019_REG_1//0x01            /* page start register for write */
#define PSTOP   RTL8019_REG_2//0x02            /* page stop register for write */
#define BNRY    RTL8019_REG_3//0x03            /* boundary reg for rd and wr */
#define TPSR    RTL8019_REG_4//0x04            /* tx start page start reg for wr */
#define TBCR0   RTL8019_REG_5//0x05            /* tx byte count 0 reg for wr */
#define TBCR1   RTL8019_REG_6//0x06            /* tx byte count 1 reg for wr */
#define ISR     RTL8019_REG_7//0x07            /* interrupt status reg for rd and wr */
#define RSAR0   RTL8019_REG_8//0x08            /* low byte of remote start addr */
#define RSAR1   RTL8019_REG_9//0x09            /* hi byte of remote start addr */
#define RBCR0   RTL8019_REG_A//0x0A            /* remote byte count reg 0 for wr */
#define RBCR1   RTL8019_REG_B//0x0B            /* remote byte count reg 1 for wr */
#define RCR     RTL8019_REG_C//0x0C            /* rx configuration reg for wr */
#define TCR     RTL8019_REG_D//0x0D            /* tx configuration reg for wr */
#define DCR     RTL8019_REG_E//0x0E            /* data configuration reg for wr */
#define IMR     RTL8019_REG_F//0x0F            /* interrupt mask reg for wr */

/* NIC 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 Info */
#define TXSTART  0x40           /* Tx buffer start page */
#define TXPAGES  6              /* Pages for Tx buffer */
#define RXSTART  (TXSTART+TXPAGES)  /* Rx buffer start page */
#if WORDMODE
#define RXSTOP   0x7e           /* Rx buffer end page for word mode */
#define DCRVAL   0x49           /* DCR values for word mode */
#else
#define RXSTOP   0x5f           /* Ditto for byte mode */
#define DCRVAL   0x48
#endif
#define STARHACK 0              /* Set non-zero to enable Starlan length hack */

typedef struct                  /* Net driver configuration data */
{
    WORD dtype;                     /* Driver type */
    BYTE myeth[MACLEN];             /* MAC (Ethernet) addr */
    LWORD ebase;                    /* Card I/O base addr */
    WORD next_pkt;                  /* Next (current) Rx page */
} CONFIGNE;

static CONFIGNE configs[MAXNETS];   /* Driver configurations */

static LWORD ebase;              /* Temp I/O base addr; usually 280h for PC */
int promisc=0;                  /* Flag to enable promiscuous mode */

typedef struct {                /* NIC hardware packet header */
    BYTE stat;                  /*     Error status */
    BYTE next;                  /*     Pointer to next block */
    WORD len;                   /*     Length of this frame incl. CRC */
} NICHDR;
NICHDR nichdr;

BYTE MYMAC[MACLEN]={0x01,0x12,0x34,0x56,0x67,0x89};

/* Private prototypes */
void resetnic(CONFIGNE *cp, char cold);
void getnic(WORD addr, BYTE data[], WORD len);
void putnic(WORD addr, BYTE data[], WORD len);
BYTE nicwrap(int page);
//BYTE innic(int reg);
//void outnic(int reg, int b);
extern void Delay(int time);
extern void Uart_Printf(char *fmt,...);

/* Initialise card given driver type and base addr.
** Return driver type, 0 if error */
int init_etherne(WORD dtype, LWORD baseaddr)
{
    int ok=0;
    CONFIGNE *cp;
    
    cp = &configs[dtype & NETNUM_MASK]; /* Get pointer into driver data */
    cp->dtype = dtype;                  /* Set driver type */
    cp->ebase = ebase = baseaddr;       /* Set card I/O base address */
    //outnic(NE_RESET, innic(NE_RESET)); 
    NE_RESET=0x03;                      /* Write a random number, then do reset */
    Delay(100);
    //if ((innic(ISR) & 0x80) == 0)       /* Report if failed */
    if((ISR & 0x80)==0)
    {
        Uart_Printf("  Ethernet card failed to reset!\n");
    }
    else
    {
        Uart_Printf("\nEthernet card success to reset!\n");
        resetnic(cp, 1);                /* Reset Ethernet card, get my addr */
        ok = 1;
    }
    return(ok);
}

/* Close down ethernet controller */
void close_etherne(WORD dtype)
{
    ebase = configs[dtype & NETNUM_MASK].ebase;
    if (ebase)
    {
        //outnic(CMDR, 0x21);
        CMDR=0x21;             /* Stop, DMA abort, page 0 */
        configs[dtype & NETNUM_MASK].ebase = 0;
    }
}

/* Return pointer to my Ethernet addr, given driver type */
BYTE *etherne_addr(WORD dtype)
{
    return(configs[dtype & NETNUM_MASK].myeth);
}

/* Poll network interface to keep it alive; send & receive frames */
void poll_etherne(WORD dtype)
{
    WORD len;
    static BYTE ebuff[MAXFRAMEC];
    CONFIGNE *cp;

    cp = &configs[dtype & NETNUM_MASK];
    if (cp->ebase)                          /* If Ether card in use.. */
    {
        ebase = cp->ebase;                  /* Set card I/O address */
        //outnic(ISR, 0x01);
        ISR=0x01;                           /* Clear interrupt flag */
		/* Transmit */
        //while (!(innic(CMDR)&0x04) &&       /* While NIC ready & frame avail */
        while(!(CMDR&0x04) &&
            (len=transmit_upcall(cp->dtype, ebuff, MAXFRAME))>0)
        {                                   /* ..transmit frame */
            put_etherne(cp->dtype, ebuff, len);
        }
		Delay(200);
        /* Receive */
        while ((len=get_etherne(cp->dtype, ebuff))>0)
        {                                   /* Store frames in buff */
            receive_upcall(cp->dtype, ebuff, len);
        }
        
    }
}

/* Get packet into buffer, return length (excl CRC), or 0 if none available */
WORD get_etherne(WORD dtype, void *pkt)
{
    WORD len=0, curr;
    BYTE bnry;
    CONFIGNE *cp;
#if STARHACK
    int hilen, lolen;
#endif
    //Uart_Printf("\n Come to get_etherne");
    cp = &configs[dtype & NETNUM_MASK];
    ebase = cp->ebase;
    //if (innic(ISR) & 0x10)              /* If Rx overrun.. */
    if(ISR & 0x10)
    {
        Uart_Printf("  NIC Rx overrun\n");
        resetnic(cp, 0);                /* ..reset controller (drastic!) */
    }
    //outnic(CMDR, 0x60);
    CMDR=0x60;                          /* DMA abort, page 1 */
    curr = CURR;//innic(CURR);                 /* Get current page */
    //outnic(CMDR, 0x20);
    CMDR=0x20;                          /* DMA abort, page 0 */
    if (curr != cp->next_pkt)           /* If Rx packet.. */
    {
        //Uart_Printf("\n Rx packet");
        memset(&nichdr, 0xee, sizeof(nichdr));  /* ..get NIC header */
        getnic((WORD)(cp->next_pkt<<8), (BYTE *)&nichdr, sizeof(nichdr));
#if STARHACK
        hilen = nichdr.next - cp->next_pkt - 1;
        lolen = nichdr.len & 0xff;
        if (hilen < 0)                  /* Do len calc from NIC datasheet */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级日韩三级| 国产福利91精品一区| 免费高清在线一区| 国内精品视频一区二区三区八戒 | 在线观看免费视频综合| 欧美日韩国产小视频在线观看| 欧美一区二区三区的| 国产亚洲成aⅴ人片在线观看 | 91色乱码一区二区三区| 欧美三区在线观看| 久久久久亚洲综合| 亚洲曰韩产成在线| 国产自产v一区二区三区c| 91色porny蝌蚪| 精品国产91久久久久久久妲己| 国产精品久久久久永久免费观看| 亚洲成人免费在线| 国产精品综合在线视频| 日本乱人伦aⅴ精品| 欧美mv日韩mv| 亚洲一区二区三区中文字幕| 国产一区 二区| 欧美日产在线观看| 中文字幕精品综合| 日本欧洲一区二区| 97超碰欧美中文字幕| 欧美v日韩v国产v| 亚洲韩国一区二区三区| 成人在线综合网| 日韩欧美久久久| 依依成人精品视频| 国产成人精品一区二区三区网站观看| 在线区一区二视频| 欧美激情综合五月色丁香| 日本免费在线视频不卡一不卡二| av一区二区久久| 精品美女一区二区| 天堂va蜜桃一区二区三区漫画版| 成人免费毛片高清视频| 欧美精品一区二区精品网| 午夜伦理一区二区| 91农村精品一区二区在线| 久久人人97超碰com| 日产精品久久久久久久性色| 色婷婷av一区二区三区之一色屋| 国产亚洲欧洲997久久综合| 日韩av电影天堂| 欧美日韩午夜在线| 一区二区三区四区在线播放| 懂色中文一区二区在线播放| 91精品国产麻豆国产自产在线 | 91麻豆免费视频| 国产日韩欧美a| 老司机免费视频一区二区| 欧美无乱码久久久免费午夜一区 | 91亚洲国产成人精品一区二区三| 精品福利在线导航| 日韩精品一二三区| 欧美影院一区二区| 亚洲乱码一区二区三区在线观看| 国产成都精品91一区二区三| 2019国产精品| 国产精品综合在线视频| 久久影院视频免费| 国内不卡的二区三区中文字幕| 337p亚洲精品色噜噜噜| 午夜精品久久久久| 欧美日本精品一区二区三区| 亚洲国产视频直播| 欧美亚洲国产bt| 夜夜精品视频一区二区 | 亚洲乱码国产乱码精品精可以看| 成人永久aaa| 国产精品看片你懂得| 成人aaaa免费全部观看| 中文一区在线播放| 99国产精品久久久久久久久久久| 国产精品国产三级国产专播品爱网 | 色综合一个色综合亚洲| 亚洲人成在线播放网站岛国| 91在线国产观看| 亚洲女人小视频在线观看| a级精品国产片在线观看| 国产精品成人一区二区三区夜夜夜 | 6080yy午夜一二三区久久| 亚洲不卡一区二区三区| 日韩欧美一区电影| 韩国理伦片一区二区三区在线播放| 久久新电视剧免费观看| 国产成人综合自拍| 国产精品传媒入口麻豆| 91黄色免费版| 天天综合网 天天综合色| 日韩欧美在线123| 国产乱码字幕精品高清av | 国产成人av在线影院| 国产欧美日韩卡一| caoporm超碰国产精品| 亚洲乱码日产精品bd| 在线不卡中文字幕播放| 麻豆中文一区二区| 久久久久国产一区二区三区四区 | 樱桃国产成人精品视频| 在线播放中文字幕一区| 久久国产精品一区二区| 国产精品天美传媒沈樵| 在线精品视频一区二区三四 | 日韩欧美色综合网站| 国产成人精品亚洲午夜麻豆| 亚洲免费色视频| 欧美一区二区三区视频| 国产成人在线观看免费网站| 亚洲男人的天堂网| 欧美一区二区三区日韩| 成人免费视频caoporn| 亚洲一区二区综合| 久久久91精品国产一区二区三区| 99精品久久免费看蜜臀剧情介绍| 日韩二区三区四区| 久久久九九九九| 色哟哟欧美精品| 黄一区二区三区| 亚洲综合在线免费观看| 欧美成人在线直播| 91视频免费观看| 国产呦萝稀缺另类资源| 亚洲亚洲精品在线观看| 久久亚洲精品国产精品紫薇| 91黄色免费网站| 国产999精品久久| 五月开心婷婷久久| 国产精品久久久久久久蜜臀| 欧美精品九九99久久| 波多野结衣一区二区三区| 日韩avvvv在线播放| 亚洲伦在线观看| 久久亚洲精品小早川怜子| 欧美日韩在线播放一区| 成人高清av在线| 精品一区二区三区久久| 亚洲精品日韩一| 国产亚洲欧美在线| 欧美一区二区福利在线| 在线国产电影不卡| 成人国产精品免费网站| 国产在线视频一区二区三区| 亚洲国产一区二区三区| 亚洲欧美在线视频| 久久综合国产精品| 欧美日韩国产片| 91视频在线观看| 成人av电影在线| 国产精品一品视频| 奇米在线7777在线精品| 亚洲国产精品久久人人爱 | 一本一本大道香蕉久在线精品| 国产伦精品一区二区三区免费 | 91精品国产乱码| 在线免费观看日韩欧美| 99精品1区2区| 国产aⅴ综合色| 韩日欧美一区二区三区| 午夜欧美2019年伦理| 一区二区三区不卡视频| 国产精品美女久久久久aⅴ| 久久众筹精品私拍模特| 欧美一级片在线看| 欧美精品一级二级三级| 在线观看三级视频欧美| 91麻豆国产香蕉久久精品| 成人福利视频网站| 国产99精品国产| 东方aⅴ免费观看久久av| 经典一区二区三区| 精彩视频一区二区| 久久不见久久见中文字幕免费| 蜜桃久久久久久| 美腿丝袜亚洲一区| 蜜桃在线一区二区三区| 蜜臀91精品一区二区三区| 日本特黄久久久高潮| 美女一区二区三区| 美女看a上一区| 精品一区二区免费在线观看| 久久99九九99精品| 国产一区在线观看麻豆| 国产传媒一区在线| 成人福利电影精品一区二区在线观看| 成人午夜电影小说| 91玉足脚交白嫩脚丫在线播放| 99r国产精品| 欧美色图免费看| 欧美精品乱码久久久久久| 欧美一区二区三区在线观看视频 | 狠狠狠色丁香婷婷综合激情| 国产在线视频一区二区三区| 懂色av一区二区三区蜜臀| jlzzjlzz欧美大全| 日本韩国一区二区三区视频| 欧美三级蜜桃2在线观看|