亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
成人听书哪个软件好| 自拍av一区二区三区| 喷水一区二区三区| 欧美一级免费大片| 免费视频最近日韩| 久久伊人中文字幕| 成人中文字幕在线| 亚洲人成亚洲人成在线观看图片 | 国产日韩影视精品| 成人精品一区二区三区中文字幕| 亚洲欧洲精品一区二区三区不卡| 色网站国产精品| 丁香六月综合激情| 一区二区三区在线看| 欧美女孩性生活视频| 激情六月婷婷久久| 国产精品网站在线播放| 色哟哟亚洲精品| 麻豆精品在线看| 亚洲婷婷在线视频| 欧美一区二区三区爱爱| 大胆亚洲人体视频| 亚洲午夜电影在线观看| 亚洲精品一区二区三区99| 不卡的电影网站| 婷婷丁香激情综合| 国产女同互慰高潮91漫画| 欧美视频完全免费看| 黄一区二区三区| 悠悠色在线精品| 欧美成人video| 在线视频综合导航| 久久国内精品自在自线400部| 国产精品久久久久影院| 91精品蜜臀在线一区尤物| 成a人片亚洲日本久久| 喷白浆一区二区| 亚洲男同性恋视频| 久久久不卡影院| 欧美精品一级二级三级| 成人免费观看视频| 蜜桃av一区二区| 亚洲国产精品麻豆| 国产精品色哟哟网站| 日韩精品专区在线| 欧美性大战久久久久久久蜜臀| 国产一区二区剧情av在线| 偷拍日韩校园综合在线| 中文字幕在线免费不卡| www日韩大片| 欧美日本在线播放| 色哟哟精品一区| 成人短视频下载| 国内一区二区在线| 蜜桃视频在线一区| 日韩经典中文字幕一区| 亚洲尤物在线视频观看| 国产精品成人一区二区艾草| 久久人人97超碰com| 欧美一级艳片视频免费观看| 欧美精品日韩综合在线| 欧美亚洲国产一区二区三区| 波多野结衣欧美| 国产成人免费9x9x人网站视频| 美女视频免费一区| 久久成人久久鬼色| 精品一区二区三区免费视频| 首页国产欧美久久| 午夜精品久久久久久久| 亚洲国产色一区| 亚洲乱码国产乱码精品精可以看 | 国产日韩欧美综合一区| 精品福利一区二区三区 | 亚洲大片一区二区三区| 久久亚洲免费视频| 欧美岛国在线观看| 欧美日本韩国一区二区三区视频 | 91精品国产综合久久精品性色| 欧美在线观看视频在线| 欧美色手机在线观看| 欧美三区在线视频| 日本一区二区在线不卡| 国产日韩欧美一区二区三区乱码| 久久综合久久综合九色| 久久欧美一区二区| 亚洲国产精品传媒在线观看| 中文字幕免费不卡在线| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 精品一区二区三区不卡| 久久99精品久久久久久久久久久久 | 精品国产欧美一区二区| 日韩一区二区三区电影| 精品国产乱码久久久久久蜜臀| 欧美一区二区三区在线| 欧美变态tickling挠脚心| 亚洲精品一区二区三区四区高清| 国产欧美一区二区三区鸳鸯浴| 中文字幕一区二区三区蜜月| 一区二区日韩av| 美女视频一区在线观看| 国产成人自拍网| 91一区二区三区在线播放| 色激情天天射综合网| 欧美一区二区视频观看视频| 精品国精品国产| 2021国产精品久久精品| 亚洲精品视频在线| 青娱乐精品视频| 成人国产免费视频| 欧美日韩在线一区二区| 欧美v日韩v国产v| 国产精品福利一区二区三区| 三级在线观看一区二区 | 成人免费毛片app| 在线观看日韩一区| 欧美精品一区二区三区高清aⅴ| 国产精品看片你懂得| 日韩国产欧美一区二区三区| 国产成人在线电影| 欧美日韩视频不卡| 中文字幕不卡的av| 五月激情丁香一区二区三区| 国产精品小仙女| 91精品国产综合久久小美女| 国产精品美女久久久久aⅴ | 91精品国产综合久久福利| 国产欧美视频一区二区| 亚洲成av人片一区二区| 成人91在线观看| 精品少妇一区二区三区免费观看| 亚洲欧美日韩精品久久久久| 蜜臀99久久精品久久久久久软件| 色婷婷精品久久二区二区蜜臀av | 欧美人动与zoxxxx乱| 国产精品另类一区| 久久99精品视频| 欧美色精品天天在线观看视频| 中文欧美字幕免费| 久久精品国产亚洲aⅴ| 欧美日韩中文另类| 综合网在线视频| 国产 日韩 欧美大片| 日韩免费一区二区| 丝袜美腿亚洲一区二区图片| 色丁香久综合在线久综合在线观看| 久久你懂得1024| 美日韩一区二区| 久久国产人妖系列| 亚洲国产一区二区视频| 成人福利在线看| 欧美精品一区二区三区在线 | 亚洲成av人片| 91网上在线视频| 中文字幕一区二区三区av| 国产99久久久国产精品免费看| 日韩视频123| 日韩精品1区2区3区| 欧美日韩电影在线| 天天综合日日夜夜精品| 在线观看日韩精品| 一区二区三区蜜桃| 色狠狠av一区二区三区| 亚洲久本草在线中文字幕| 99久久精品免费观看| 国产精品伦一区二区三级视频| 国产一区二区三区高清播放| 久久久久久久久久久电影| 国产一区福利在线| 国产亚洲欧美日韩日本| 国产成人自拍网| 国产精品护士白丝一区av| 成人av动漫网站| 1000精品久久久久久久久| 99国产精品一区| 一区二区在线观看免费| 色伊人久久综合中文字幕| 亚洲一区二区三区视频在线| 欧美网站一区二区| 男男视频亚洲欧美| 日韩精品一区二区三区在线| 狠狠色综合色综合网络| 欧美国产一区二区在线观看 | 国产精品亚洲午夜一区二区三区| 精品国产亚洲一区二区三区在线观看| 精品亚洲porn| 国产精品理论片在线观看| 91丝袜国产在线播放| 亚洲一区二区3| 欧美xxxx老人做受| 不卡影院免费观看| 亚洲国产精品嫩草影院| 欧美电影免费观看高清完整版在| 国产一区二区精品久久| 亚洲欧美日韩中文播放| 69堂成人精品免费视频| 国产酒店精品激情| 亚洲精品视频在线观看免费| 欧美一区三区二区| 国产ts人妖一区二区| 亚洲在线成人精品|