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

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

?? rtl8019.c

?? DSP 5402通過RTL8019網絡通信
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include	"cpu_reg.h"
#include	"string.h"
#include	"RTL8019.h"

struct	ipaddr   	server_ipaddr,nod_ipaddr,r_ipaddr;
struct 	mac      	MAC_server,MAC_broad,MAC_rec;
struct 	mac      	MAC_self,MAC_nod;
struct 	iphdr    	t_iphdr;
struct 	igmphdr  	t_igmphdr;
struct 	udphdr   	t_udphdr;
struct 	pre_udphdr  pre_udphdr1;

Uint16	TxNetBuf[1518/2];
Uint16	RxNetBuf[1518/2];
Uint16	TxBufFlag;
Uint16	bnry,curr;

extern	int		ms;

void	InitProtocal(void);

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

//==============================================================================
/**********************************************************************
**函數原型:    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;   //使芯片處于停止模式,這時進行寄存器設置
			InitProtocal();
			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= 0x00;  //中斷屏蔽寄存器清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= MAC_self.addr2_1;
    		Reg02= MAC_self.addr2_1>>8;
    		Reg03= MAC_self.addr4_3;
    		Reg04= MAC_self.addr4_3>>8;
    		Reg05= MAC_self.addr6_5;
    		Reg06= MAC_self.addr6_5>>8;

			page(0);
			delay(10);
			Reg0c= 0xce;  //將芯片設置成正常模式,跟外部網絡連接
			delay(1);			
			Reg0d= 0xe0;
			delay(1);
			Reg00= 0x22;  //啟動芯片開始工作
//-----------------------------------
			Reg07= 0xff;  //清除所有中斷標志位
			ms = 0;
			while(ms<100);
		}

void 	InitProtocal(void)
		{
/*  server_ip=192.168.1.40  */

    		server_ipaddr.addr2_1  =192;
    		server_ipaddr.addr2_1 +=(Uint16)168<<8;
    		server_ipaddr.addr4_3  =1;
    		server_ipaddr.addr4_3 +=(Uint16)40<<8;

//192.168.1.1    
    		nod_ipaddr.addr2_1     =192;
    		nod_ipaddr.addr2_1    +=(Uint16)168<<8;
    		nod_ipaddr.addr4_3     =1;
    		nod_ipaddr.addr4_3    +=(1<<8);
    
    		t_iphdr.tos_version    =69;
    		t_iphdr.tos_version   +=(Uint16)0<<8;      //usally not use
    		t_iphdr.id =20;  //++IP_id;
    		t_iphdr.id +=(Uint16)52<<8;
    
    		t_iphdr.frag_off =0;
    		t_iphdr.protocal_ttl   =128;       //usally 32 or 64
    		t_iphdr.protocal_ttl +=(Uint16)17<<8;
    		t_iphdr.saddr =nod_ipaddr;
    		t_iphdr.daddr =server_ipaddr;
    //UDP PORT
    		t_udphdr.sport =1024; //1*256+0x08,9901
    		t_udphdr.dport =1025; //1*256+0x07,9901
    
    		pre_udphdr1.saddr=t_iphdr.saddr;
    		pre_udphdr1.daddr=t_iphdr.daddr;
    		pre_udphdr1.protocal_value  =0;
    		pre_udphdr1.protocal_value +=17<<8;  //UDP
// FF-FF-FF-FF-FF-FF    
    		MAC_broad.addr2_1   =255;
    		MAC_broad.addr2_1  +=(Uint16)255<<8;
    		MAC_broad.addr4_3   =255;
    		MAC_broad.addr4_3  +=(Uint16)255<<8;
    		MAC_broad.addr6_5   =255;
    		MAC_broad.addr6_5  +=(Uint16)255<<8;
    
//	02-E0-4C-A0-7E-7A    
    		MAC_self.addr2_1  =1<<1;
    		MAC_self.addr2_1  +=(Uint16)224<<8;
    		MAC_self.addr4_3  =76;
    		MAC_self.addr4_3  +=(Uint16)160<<8;
    		MAC_self.addr6_5  =126;
    		MAC_self.addr6_5  +=(Uint16)122<<8;

//  00-E0-4C-A0-7E-7A	    
	    	MAC_nod.addr2_1  =0;
    		MAC_nod.addr2_1  +=(Uint16)224<<8;
    		MAC_nod.addr4_3  =76;
    		MAC_nod.addr4_3  +=(Uint16)160<<8;
    		MAC_nod.addr6_5  =126;
    		MAC_nod.addr6_5  +=(Uint16)122<<8;
	}


//=============================================================================
/**********************************************************************
**函數原型:    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++)	TxNetBuf[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 = TxNetBuf[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++)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产视频视频一区| 欧美日韩国产综合一区二区| 欧美男人的天堂一二区| 亚洲免费资源在线播放| 国产乱国产乱300精品| 久久影院午夜片一区| 国产成人99久久亚洲综合精品| 久久理论电影网| 国产精品一品二品| 亚洲色图制服诱惑| 欧美三级视频在线| 国产成人免费在线| 日本不卡免费在线视频| 中文字幕不卡在线观看| 欧美日韩在线精品一区二区三区激情| 蜜臀久久99精品久久久久宅男| 国产色一区二区| 欧美亚洲丝袜传媒另类| 国产成人av资源| 成人白浆超碰人人人人| 亚洲一区二区三区四区五区中文| 91激情在线视频| 欧美韩国日本不卡| 久久激情五月婷婷| 国产午夜久久久久| 五月婷婷激情综合| 日本乱人伦一区| 成人97人人超碰人人99| 欧美xxxx老人做受| 青青青爽久久午夜综合久久午夜| 在线免费亚洲电影| 一区二区三区久久| 91蜜桃免费观看视频| 国产精品久久久久久户外露出| 国产精品一区二区三区四区 | 久久99精品久久久久久| 欧美大黄免费观看| 7777精品伊人久久久大香线蕉的 | 成人性生交大片免费看中文 | 成人精品一区二区三区四区| 成人黄色小视频在线观看| 青青国产91久久久久久| 亚洲成人久久影院| 亚洲精品乱码久久久久久| 国产精品天干天干在线综合| 国产精品理伦片| 亚洲免费观看高清在线观看| 综合色天天鬼久久鬼色| 亚洲欧美自拍偷拍色图| 亚洲视频一区二区在线观看| 亚洲色图丝袜美腿| 亚洲精品一卡二卡| 日韩中文字幕1| 国模一区二区三区白浆| 91视频xxxx| 秋霞av亚洲一区二区三| 欧美国产精品中文字幕| 国产亚洲女人久久久久毛片| 亚洲理论在线观看| 在线精品视频小说1| 国产一区在线看| 久久国内精品视频| 久久―日本道色综合久久| www.色精品| 婷婷久久综合九色国产成人| 26uuu国产日韩综合| 91丨九色丨蝌蚪富婆spa| 日本视频一区二区三区| 国产免费观看久久| 欧美日韩小视频| 色婷婷综合久久久中文一区二区| 欧美中文字幕不卡| 国产精品欧美经典| 久久国产婷婷国产香蕉| 欧美日韩一区中文字幕| 欧美在线观看一二区| 精品三级av在线| 日欧美一区二区| 国产午夜精品一区二区| 国产一区二区不卡| 美日韩一区二区三区| 亚洲无人区一区| 欧美激情一区二区| 久久天堂av综合合色蜜桃网| 在线播放国产精品二区一二区四区 | 亚洲激情自拍视频| 99免费精品视频| 337p日本欧洲亚洲大胆色噜噜| 欧美午夜精品免费| 美女脱光内衣内裤视频久久影院| 亚洲天堂网中文字| 国产精品午夜电影| 国产欧美精品一区aⅴ影院 | 久久久不卡网国产精品一区| 91麻豆精品久久久久蜜臀| 在线观看日韩一区| 色天天综合色天天久久| 日本高清免费不卡视频| 欧美色成人综合| 欧美日韩亚洲综合| 日韩视频一区二区三区在线播放| 欧美电影一区二区| 日韩一区二区三| 欧美经典一区二区三区| 一区视频在线播放| 丝袜美腿亚洲一区| 国产馆精品极品| 91九色02白丝porn| 日韩欧美一二三四区| 国产精品久久久久9999吃药| 亚洲国产另类av| 精品在线免费视频| 色婷婷久久久综合中文字幕| 欧美亚洲动漫精品| 精品国产不卡一区二区三区| 一区二区三区中文在线| 精品一区二区三区在线观看| 91国产成人在线| 久久免费电影网| 免费精品99久久国产综合精品| 成人在线视频首页| 欧美成人性战久久| 亚洲va韩国va欧美va精品| 国产精品一卡二卡在线观看| 欧美久久久久免费| 亚洲激情av在线| 99国产精品一区| 久久久www成人免费毛片麻豆| 欧美另类z0zxhd电影| 欧美日韩中字一区| 欧美日韩亚洲不卡| kk眼镜猥琐国模调教系列一区二区| 日韩av一级电影| 99精品国产99久久久久久白柏| caoporen国产精品视频| 精品国产乱码久久久久久免费| 国产精品一区二区果冻传媒| 国产精品888| 91麻豆文化传媒在线观看| 91福利资源站| 日韩你懂的电影在线观看| 国产午夜精品福利| 亚洲女同一区二区| 美日韩一级片在线观看| 成人深夜福利app| 欧美性生活影院| 欧美mv和日韩mv国产网站| 亚洲欧美中日韩| 美女一区二区久久| aaa欧美日韩| 555夜色666亚洲国产免| 国产午夜精品一区二区三区视频| 亚洲免费高清视频在线| 美腿丝袜在线亚洲一区| 95精品视频在线| 精品免费日韩av| 中文字幕在线不卡视频| 免费观看久久久4p| 99r精品视频| 久久综合久久综合久久| 亚洲欧美日韩系列| 狠狠色丁香久久婷婷综合_中 | 欧美福利一区二区| 久久亚洲捆绑美女| 亚洲成av人片在线| 丁香婷婷综合五月| 日韩一区二区三区在线观看 | 精品福利视频一区二区三区| 亚洲精品成人在线| 国产精品18久久久久久久网站| 在线中文字幕一区| 中文字幕不卡的av| 精品一区二区在线看| 欧美日韩国产电影| 最新国产精品久久精品| 九一九一国产精品| 91精品国产丝袜白色高跟鞋| 亚洲精选视频在线| 国产91精品一区二区麻豆网站| 日韩一级大片在线观看| 亚洲bt欧美bt精品777| 色综合中文字幕| 国产精品免费视频一区| 韩国精品在线观看| 日韩午夜电影av| 热久久久久久久| 在线播放亚洲一区| 日日摸夜夜添夜夜添国产精品| 欧美中文字幕一区| 亚洲一区二区三区四区的| 99视频一区二区| 国产精品久久一卡二卡| 粉嫩aⅴ一区二区三区四区| 日韩美女一区二区三区| 全国精品久久少妇| 日韩视频免费直播| 精品制服美女久久| 精品国产乱码久久久久久图片| 久久狠狠亚洲综合| 久久综合色综合88|