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

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

?? rtl8019.c

?? 在TMS320VC5402上實現對網口味控制器RT8019的編程.C語言實現.可用.已調試.
?? 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一区二区三区免费野_久草精品视频
成人精品一区二区三区四区| 亚洲午夜电影在线| 欧美成人精品高清在线播放| 欧美亚洲国产一区在线观看网站| 91浏览器打开| 色系网站成人免费| 91福利精品第一导航| 欧美性生活影院| 欧美日韩国产高清一区二区| 欧美精品在线一区二区| 欧美精品高清视频| 欧美一区二区精美| 欧美国产欧美综合| 亚洲丝袜另类动漫二区| 一区二区三区国产精华| 日韩在线一区二区三区| 久久超级碰视频| 国产不卡高清在线观看视频| 成人ar影院免费观看视频| 欧美亚洲免费在线一区| 日韩精品中午字幕| 中文字幕在线不卡国产视频| 亚洲一区日韩精品中文字幕| 琪琪一区二区三区| 91在线码无精品| 欧美一区二区二区| 亚洲三级电影网站| 裸体健美xxxx欧美裸体表演| 国产夫妻精品视频| 欧美嫩在线观看| 中文字幕精品综合| 日韩和欧美的一区| 99久久99久久精品免费看蜜桃| 欧美日韩欧美一区二区| 国产欧美日本一区视频| 亚洲自拍偷拍麻豆| 国产成人aaa| 日韩欧美中文字幕制服| 亚洲美女少妇撒尿| 国产美女久久久久| 欧美丰满高潮xxxx喷水动漫| 国产精品免费网站在线观看| 午夜免费久久看| 99视频热这里只有精品免费| 精品美女一区二区三区| 一区二区三区成人在线视频| 国产乱一区二区| 欧美一级日韩一级| 亚洲资源在线观看| 91麻豆国产香蕉久久精品| 国产亚洲综合在线| 麻豆精品一区二区av白丝在线| 99re这里只有精品6| ww亚洲ww在线观看国产| 日韩国产精品久久| 日本黄色一区二区| 国产精品短视频| 成人黄页毛片网站| 久久久av毛片精品| 久久国产精品色| 日韩美女天天操| 免费久久99精品国产| 91麻豆精品国产自产在线| 夜夜揉揉日日人人青青一国产精品 | voyeur盗摄精品| 久久人人爽爽爽人久久久| 日产国产高清一区二区三区| 欧日韩精品视频| 亚洲国产欧美另类丝袜| 色天天综合色天天久久| 成人欧美一区二区三区1314| 成人性色生活片| 中文一区二区完整视频在线观看| 国产福利一区二区三区在线视频| 久久综合九色综合欧美就去吻| 免费美女久久99| 精品国产一区二区亚洲人成毛片| 极品少妇xxxx精品少妇偷拍| 欧美一卡2卡3卡4卡| 六月丁香综合在线视频| 日韩网站在线看片你懂的| 美日韩一级片在线观看| 亚洲精品在线三区| 成人免费视频网站在线观看| 中文字幕av资源一区| 91在线观看地址| 一区二区三区av电影| 91精品视频网| 国产麻豆精品95视频| 国产精品每日更新在线播放网址 | 一个色综合av| 9191国产精品| 激情深爱一区二区| 国产精品日产欧美久久久久| 色综合色狠狠综合色| 日韩国产在线一| 久久久亚洲高清| 色噜噜久久综合| 欧美aaa在线| 国产精品久久久久久久久动漫| 日本精品免费观看高清观看| 日韩高清不卡在线| 欧美国产在线观看| 欧美精品日日鲁夜夜添| 国产精品一级片| 亚洲一区视频在线观看视频| 精品第一国产综合精品aⅴ| 99久久精品国产观看| 美女一区二区久久| 一区在线中文字幕| 欧美xxxx在线观看| 91麻豆免费看| 国产一区二区美女诱惑| 一区二区三区四区高清精品免费观看| 欧美一级生活片| 日本国产一区二区| 国产精品99精品久久免费| 亚洲成人av资源| 国产精品免费aⅴ片在线观看| 4438x成人网最大色成网站| 成人a区在线观看| 久久99精品国产麻豆婷婷洗澡| 日韩一区欧美一区| 国产亚洲婷婷免费| 欧美一区二区美女| 欧美中文字幕一区二区三区亚洲| 国产99精品视频| 免费精品视频在线| 日韩国产欧美在线观看| 一区二区三区四区中文字幕| 久久九九久精品国产免费直播| 欧美日韩大陆一区二区| 91啪九色porn原创视频在线观看| 久久国产尿小便嘘嘘尿| 免费成人av在线播放| 天堂在线亚洲视频| 亚洲国产综合91精品麻豆 | 色偷偷久久一区二区三区| 国产电影一区二区三区| 国内精品免费**视频| 蜜桃视频第一区免费观看| 天天综合色天天综合色h| 一区二区三区四区在线播放| 国产精品传媒视频| 日韩一区在线免费观看| 国产免费成人在线视频| 国产婷婷精品av在线| 国产日韩精品一区二区浪潮av| 2023国产精品| 国产亚洲一区二区三区在线观看| 精品va天堂亚洲国产| 久久久精品免费观看| 久久久精品蜜桃| 国产精品久久久久一区二区三区 | 久久丁香综合五月国产三级网站| 亚洲国产婷婷综合在线精品| 一区二区三区波多野结衣在线观看| 亚洲三级久久久| 亚洲一区二区精品久久av| 亚洲一区在线电影| 日韩黄色小视频| 韩国女主播成人在线| 国产成人免费xxxxxxxx| 成人激情综合网站| 色综合天天综合给合国产| 日本国产一区二区| 日韩一区二区在线观看视频播放| 日韩欧美一卡二卡| 国产片一区二区三区| 自拍偷自拍亚洲精品播放| 一区二区三区色| 热久久免费视频| 国产精品1024久久| 91视频在线观看| 7777精品伊人久久久大香线蕉完整版| 欧美刺激午夜性久久久久久久 | 亚洲一区二区三区视频在线播放 | 国产成人免费视频精品含羞草妖精| 成人黄色电影在线 | www.久久久久久久久| 在线一区二区三区四区五区 | 久久久激情视频| 一区二区三区在线视频免费| 蜜臀久久久99精品久久久久久| 国产一区二三区| 在线看国产日韩| 久久久久久毛片| 亚洲成人激情av| 成人综合婷婷国产精品久久免费| 欧美在线一二三四区| 精品久久久久一区| 一区二区三区在线观看视频| 蜜乳av一区二区三区| 成人av免费在线观看| 日韩免费高清av| 亚洲一区二区黄色| 97久久超碰国产精品| 精品免费一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了 | 天天影视网天天综合色在线播放|