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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ip.c

?? 5402 IP源程序
?? C
?? 第 1 頁 / 共 2 頁
字號:

#include    "cpu_reg.h"
#include	"string.h"
#include	"ip.h"

extern	Uint16	AicRegs;
extern	Uint16  RxSuccessFlag;
extern	Uint16	TxEthnetFrameBuffer[1518/2];
extern	Uint16	RxEthnetFrameBuffer[1518/2];
extern	int		ms;

const Uint16 MyMAC[] = 
{0xE002,0xA04C,0x7A7E};

const Uint16 MyIP[] =
{0xA8C0,0x0B01};

const Uint16 RemoteIP[] =
{0xA8C0,0x2801};

const Uint16 SubnetMask[] =
{0xFFFF,0x00FF};

const Uint16 GatewayIP[] = 
{0xA8C0,0x0101};

Uint16	TxBufFlag;
Uint16	bnry,curr;
Uint16 UDPUserDataLenth; 
Uint16 IpEdition;                                //IP版本
Uint16 IpServiceType;
Uint16 IpIdent;
Uint16 MyUdpPort;

Uint16 RemoteMAC[3];                             // 48 bit MAC
Uint16 RecdFrameMAC[3];
Uint16 RecdFrameIP[2];
Uint16 RecdIpFrameLenth;
Uint16 TxFrameSize;
Uint16 ARPAnswerSuccessFlag;

void delay(int k)
{
   while(k--);
}

Uint16	SwapByte(Uint16	value)
		{
    		Uint16	temp;
    		temp=(value<<8)|(value>>8);
    		return(temp);
		}								

//==============================================================================
/**********************************************************************
**函數原型:    void  page(uchar pagenumber)
**入口參數:   	Uint16	pagenumber: 要切換的頁
**出口參數:		無
**返 回 值:	無      
**說    明:	選擇頁,可選擇0,1,2三頁,第四頁ne000兼容芯片保留 
************************************************************************/
void	page(Uint16 pagenumber)
		{
			Uint16	temp;
			temp = Reg00;				//command register
			temp = temp & 0x3B ; 			//注意txp位不能要
			pagenumber=pagenumber <<6;
			temp=temp | pagenumber;
			Reg00=temp;
		}


/**********************************************************************
**函數原型:     void 	Init8019()
**入口參數:		無
**出口參數:		無
**返 回 值:		無              
**說    明:		對芯片的工作寄存器進行設置,各個寄存器的用法可參考文檔和
**				絡芯片的數據手冊
************************************************************************/
void	Init8019()
		{
			ms =0;
			while(ms<100);
/**********************************************************************

1.Reg00命令寄存器: CR,命令寄存器,地址偏移量00H,為一個字節
  位:  7   6   5   4   3   2   1   0 
名字: PS1 PS0 RD2 RD1 RD0 TXP STA STP 
//============================================
2.
RD2,RD1,RD0: 這3個位代表要執行的功能。
 0   0   1 : 讀網卡內存
 0   1   0 : 寫網卡內存
 0   1   1 : 發送網卡數據包
 1   *   * : 完成或結束DMA的讀寫操作
//============================================
3.TXP位置1時發送數據包,發完自動清零
//============================================
4.
STA,STP:	這兩個位用來啟動命令或停止命令
 1   0 		啟動命令
 0   1 		停止命令
//============================================
********************************************************/
			Reg00=0x21;   //使芯片處于停止模式,這時進行寄存器設置
			ms = 0;
			while(ms<100); //延時100毫秒,確保芯片進入停止模式
			page(0);
			delay(10);
			Reg0a= 0x00;   //清rbcr0
			delay(1);
			Reg0b= 0x00;   //清rbcr1
			delay(1);
			Reg0c= 0xe0;  //RCR,監視模式,不接收數據包
			delay(1);
			Reg0d= 0xe2;  //TCR,loop back模式
			delay(1);
			Reg01= 0x4c;   //pstart = 0x4c
			delay(1);
			Reg02= 0x80;   //pstop = 0x80
			delay(1);
			Reg03= 0x4c;   //bnry = 4c
			delay(1);
			Reg04= 0x40;  //TPSR,發送起始頁寄存器
			delay(1);
			Reg07= 0xff;  //清除所有中斷標志位,中斷狀態寄存器
			delay(1);
			Reg0f= 0x01;  //中斷屏蔽寄存器清0,禁止中斷
			delay(1);
			Reg0e= 0xc9;  // 數據配置寄存器,16位dma方式
			page(1);
			delay(10);
			Reg07= 0x4d;
			delay(1);
			Reg08= 0x00;
			delay(1);
			Reg09= 0x00;
			delay(1);
			Reg0a= 0x00;
			delay(1);
			Reg0b= 0x00;
			delay(1);
			Reg0c= 0x00;
			delay(1);
			Reg0d= 0x00;
			delay(1);
			Reg0e= 0x00;
			delay(1);
			Reg0f= 0x00;
			
    		Reg01=0x02;
    		Reg02=0xE0;
    		Reg03=0x4C;
    		Reg04=0xA0;
    		Reg05=0x7E;
    		Reg06=0x7A;
			
			page(3);
			delay(10);
			Reg01 = 0x30;
			delay(1);
			Reg04 = 0x80;
			delay(1);
			
			page(0);
			delay(10);
			Reg0c= 0xce;  //將芯片設置成正常模式,跟外部網絡連接
			delay(1);			
			Reg0d= 0xe0;
			delay(1);
			Reg00= 0x22;  //啟動芯片開始工作
//-----------------------------------
			Reg07= 0xff;  //清除所有中斷標志位
			ms = 0;
			while(ms<100);
		}


Uint16 CalcCheckSum(Uint16 *Start, Uint16 Count, Uint16 IsTCP, Uint16 IsUDP)
{
    Uint32 Sum;
  
    Sum = 0;
    if ((IsTCP)||(IsUDP)) 
    {
        Sum += MyIP[0];
        Sum += MyIP[1];
        Sum += RemoteIP[0];
        Sum += RemoteIP[1];
        Sum += SwapWord(Count*2);
        if(IsTCP)
             Sum += SwapWord(PROTOCOL_TCP);
        else
             Sum += SwapWord(PROTOCOL_UDP);
    }
    while (Count > 0) 
    {
        Sum += *Start;
        Start ++;
        Count --;
    }
    Sum = (Sum & 0xFFFF) + ((Sum >> 16)&0xFFFF);
    if(Sum&0xFFFF0000)
        Sum++;
    return((Uint16)((~Sum)&0xFFFF));
}


//=============================================================================
/**********************************************************************
**函數原型:    void 		SendFrame(Uint16 *TxdNetBuff,Uint16  length)
**入口參數:		Uint16    	*TxdNetBuff	:指向發送緩沖區
**              uint length					:發送數據包的長度
**出口參數:		無
**返 回 值:	無              
**說    明:	發送數據包,以太網底層驅動程序,所有的數據發送都要通過該程序
************************************************************************/
void	SendFrame(Uint16	*TxdNetBuff,Uint16 length)
		{
			Uint16		i,ii;
		   	if(length<46/2)
       			{
          			for(i=length;i<60/2;i++)	TxEthnetFrameBuffer[i]=0;
          			length=60/2;
       			}
			
			page(0);
			delay(10);						//切換至第0頁
			length = length <<1;
			TxBufFlag=!TxBufFlag;			//設置兩個發緩區,提高發送效率
			if(TxBufFlag)
				{Reg09=0x40 ;}				//設置發送頁地址
			else
				{Reg09=0x46 ;}				//設置發送頁地址
    
			Reg08=0x00; 					//read page address low
			delay(1);
			Reg0b = length >>8;				//寫發送長度高位
			delay(1);
			Reg0a = length & 0x00ff;        //寫發送長度低位  
			delay(1);
			Reg00=0x12;						//write dma, page0

			for(i=0;i<length/2;i++)
				{
					Reg10 = TxEthnetFrameBuffer[i];
   				}
/***************************************/
//以下為終止DMA操作
			Reg0b=0x00; 
			delay(1);
			Reg0a=0x00;
			delay(1);
			Reg00=0x22;			//結束或放棄DMA操作
			delay(1);
/***************************************/

			for(i=0;i<6;i++)	//最多重發6次
				{
					for(ii=0;ii<1000;ii++)
    					{//檢查CR寄存器的txp位是否為低,為1說明正在發送,為0說明發完或出錯放棄
        					if((Reg00&0x04)==0)  
        						{ break; }
        				}
					if((Reg04&0x01)!=0)//表示發送成功,判斷發送狀態寄存器TSR,決定是否出錯
						{break;};
					Reg00=0x3e;
				}
			delay(1);
			Reg07=0xff;
			if(TxBufFlag)
				{
  					Reg04=0x40;   //txd packet start;
  				}
			else
				{
     				Reg04=0x46;  //txd packet start;
    			}
    		delay(1);	
			Reg06=length>>8;  //high byte counter
			delay(1);
			Reg05=length&0xff;//low byte counter
			delay(1);
			Reg07=0xff;
			delay(1);
			Reg00=0x3e;       //to sendpacket;
	}

/**********************************************************************
**函數原型:    Uint16        Rec_NewPacket()
**入口參數:		無
**出口參數:		無
**返 回 值:	0          沒有新數據包
**              1          接收到新數據包
**說    明:	查詢是否有新數據包并接收進緩沖區
************************************************************************/
Uint16	RecFrame()
		{
			Uint16	i,ii;
			Uint16	Temp,length;
			union{
					Uint16	total;	
					struct{
							Uint16	high:8;
							Uint16	low:8;
						  }e;
				 }d;
			for(i=0;i<1518/2;i++)	RxEthnetFrameBuffer[i] = 0;				 		  		
			page(0);
			delay(10);
			bnry = Reg03;				//bnry page have read 讀頁指針
			bnry = bnry & 0x00FF;
			page(1);
			delay(10);
			curr = Reg07;				//curr writepoint 8019寫頁指針
			curr = curr & 0x00FF;
			page(0);
			delay(10);
			if((curr==0))return(0);	//讀的過程出錯
			bnry++;
			if(bnry>0x7f)	bnry=0x4c;
			if(bnry!=curr)			//此時表示有新的數據包在緩沖區里
    			{					//在任何操作都最好返回page0
     				page(0);
     				delay(10);
     //=======================================
     				Reg09=bnry;		//讀頁地址的高字節
     				delay(5);
     				Reg08=0x00; 	//讀頁地址的低字節
     				delay(5);
     				Reg0b=0x00;		//讀取字節計數高字節
     				delay(5);
     				Reg0a=18;       //讀取字節計數高字節
     				delay(5);
     				Reg00=0x0a;     //啟動Remote DMA讀操作
	 				delay(5);	
     				for(i=0;i<9;i++)	//讀取一包的前18個字節:4字節的8019頭部,6字節目的地址,6字節原地址,2字節協議
                    	{
                       		RxEthnetFrameBuffer[i]=Reg10;
                       		delay(1);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线观看免费视频| 91久久精品网| 亚洲一区在线看| 欧美大片一区二区三区| 91黄色在线观看| 国产大陆亚洲精品国产| 日韩av网站免费在线| 玉足女爽爽91| 国产免费久久精品| 欧美一区二区大片| 日本久久一区二区| 成人涩涩免费视频| 久久99久国产精品黄毛片色诱| 亚洲乱码国产乱码精品精的特点 | 91在线码无精品| 极品瑜伽女神91| 午夜精品久久久久久久久| 最新日韩av在线| 欧美国产一区二区在线观看| 精品女同一区二区| 欧美一区二区啪啪| 欧美日韩国产高清一区二区| 色综合久久久久网| 99热在这里有精品免费| 国产v综合v亚洲欧| 国产精品伊人色| 国产成人综合在线播放| 精品无人码麻豆乱码1区2区| 蜜桃久久av一区| 蜜桃视频第一区免费观看| 污片在线观看一区二区| 亚洲不卡一区二区三区| 亚洲午夜日本在线观看| 一区二区三国产精华液| 亚洲视频中文字幕| 亚洲男人天堂av| 亚洲精品日韩一| 亚洲美女屁股眼交| 一区二区成人在线视频| 亚洲一区二区三区四区在线| 亚洲国产精品一区二区久久恐怖片| 一区二区日韩电影| 日日夜夜精品视频免费| 喷白浆一区二区| 国产在线观看免费一区| 国产精品影视天天线| 成人一二三区视频| 91亚洲国产成人精品一区二区三| 91老师国产黑色丝袜在线| 日本韩国一区二区三区| 欧美日韩中文字幕一区| 欧美另类变人与禽xxxxx| 在线电影一区二区三区| 日韩丝袜美女视频| 久久精品一区二区三区av| 国产亚洲欧美在线| 亚洲欧美另类小说| 亚洲444eee在线观看| 麻豆成人久久精品二区三区小说| 国产一区在线观看麻豆| 波多野结衣在线aⅴ中文字幕不卡| 91啪亚洲精品| 欧美人体做爰大胆视频| 精品精品国产高清a毛片牛牛| 久久久国产综合精品女国产盗摄| 成人欧美一区二区三区白人| 一区二区成人在线| 韩日欧美一区二区三区| 99精品1区2区| 91麻豆精品国产91久久久使用方法| 日韩三级精品电影久久久| 亚洲国产精品成人综合色在线婷婷| 亚洲日本在线观看| 日本成人在线网站| 成人一区二区三区视频在线观看 | 视频一区免费在线观看| 韩日精品视频一区| 一本大道综合伊人精品热热| 91精品国产aⅴ一区二区| 久久蜜桃av一区二区天堂| 一区二区欧美在线观看| 精品亚洲porn| 欧美在线一区二区| 久久亚洲春色中文字幕久久久| 国产精品乱人伦一区二区| 首页国产欧美日韩丝袜| 99天天综合性| 精品卡一卡二卡三卡四在线| 亚洲免费大片在线观看| 国产一区二区三区四区五区美女| 一本到不卡免费一区二区| 精品久久久影院| 亚洲一级在线观看| 国产91清纯白嫩初高中在线观看 | 青青草97国产精品免费观看无弹窗版| 懂色av噜噜一区二区三区av| 欧美麻豆精品久久久久久| 中文字幕一区二区日韩精品绯色| 三级欧美在线一区| 91丝袜美腿高跟国产极品老师 | 欧美伊人久久久久久久久影院 | 国产精品你懂的在线欣赏| 日本亚洲三级在线| 日本精品裸体写真集在线观看 | 日韩一级在线观看| 亚洲一区二三区| 91农村精品一区二区在线| 欧美精品一区二区在线播放| 亚洲高清中文字幕| www.av精品| 国产精品免费aⅴ片在线观看| 蜜臀久久久久久久| 欧美人狂配大交3d怪物一区| 亚洲人精品午夜| 成人免费黄色大片| 国产日韩欧美精品综合| 麻豆国产精品视频| 欧美一级片免费看| 亚洲va国产天堂va久久en| 91精品91久久久中77777| 国产精品麻豆视频| 国产高清不卡二三区| 久久久噜噜噜久噜久久综合| 美女网站在线免费欧美精品| 69久久99精品久久久久婷婷| 亚洲成人午夜电影| 欧美午夜精品久久久久久孕妇| 亚洲精品国产视频| 色婷婷亚洲一区二区三区| 亚洲男同1069视频| 在线视频你懂得一区| 亚洲欧美视频在线观看| 日本韩国一区二区三区| 一二三区精品视频| 在线亚洲人成电影网站色www| 中文字幕一区不卡| 成人a区在线观看| 国产精品精品国产色婷婷| 成人午夜在线免费| 国产精品国产三级国产三级人妇 | 国产精品原创巨作av| 久久免费看少妇高潮| 国产河南妇女毛片精品久久久| 欧美xingq一区二区| 狠狠色综合播放一区二区| 国产欧美一二三区| 北岛玲一区二区三区四区| 亚洲男人天堂一区| 欧美日韩一区不卡| 日本va欧美va精品| 精品国产1区二区| 国产精品亚洲成人| 中文字幕av一区二区三区免费看| 99视频精品在线| 一区二区高清在线| 日韩欧美电影一二三| 国产电影一区二区三区| 亚洲色图另类专区| 欧洲精品一区二区三区在线观看| 亚洲成人一区二区在线观看| 日韩一区二区三区在线观看| 国产一区二区成人久久免费影院| 国产精品另类一区| 在线精品视频小说1| 日本特黄久久久高潮| 久久久久国产精品人| 91在线视频在线| 午夜私人影院久久久久| 久久人人97超碰com| 成人精品小蝌蚪| 午夜精品aaa| www国产精品av| eeuss鲁一区二区三区| 午夜av电影一区| 欧美国产精品一区二区三区| 欧美色综合网站| 国产一区二区三区| 一区二区三区四区乱视频| 欧美一个色资源| 91小宝寻花一区二区三区| 青草国产精品久久久久久| 国产精品成人免费在线| 在线播放视频一区| av激情亚洲男人天堂| 热久久免费视频| 中文字幕不卡三区| 91麻豆精品国产91久久久使用方法| 国产成人精品亚洲777人妖| 亚洲一区在线免费观看| 久久久国产精品午夜一区ai换脸 | 久久久久久免费网| 91行情网站电视在线观看高清版| 麻豆精品国产传媒mv男同| 亚洲愉拍自拍另类高清精品| 亚洲精品一区二区三区香蕉| 在线观看一区二区精品视频| 国产91清纯白嫩初高中在线观看| 日产精品久久久久久久性色| 中文字幕一区二区三区不卡| 精品福利av导航|