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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? udp.c

?? ARM嵌入式常用模塊的原理圖和源碼
?? C
字號(hào):
/******************************
	將數(shù)據(jù)報(bào)讀取到packetRAM[]中
********************************/

static void readpacket(int i)
{
		packetRAM[i]=low2high(CS8900_RTDATA);
}

/******************************
	計(jì)算校驗(yàn)和

	從packetRAM[start]開(kāi)始
	計(jì)算len長(zhǎng)度的和,然后把
	進(jìn)位位也加,最后取補(bǔ)碼。
********************************/
int inet_chksum(int start,int len)
{
	long acc=0;
	for(i=0;i<len;i++)
		acc=acc+packetRAM[start+i];

						// 對(duì)于本程序校驗(yàn)和不會(huì)超過(guò)4個(gè)字節(jié)所以就不需要使用循環(huán)
	while(acc >> 16) 
	{   
	acc = (acc & 0xffff) + (acc >> 16);
	}    
  return ~(acc & 0xffff);
}
/******************************
	交換 IP 地址
********************************/
void IpResp()
{
	packetRAM[ip_dst+0]=packetRAM[ip_src+0];
	packetRAM[ip_dst+1]=packetRAM[ip_src+1];

	packetRAM[ip_src]=IP12;
	packetRAM[ip_src+1]=IP34;
	
	packetRAM[ip_cksum]=0x0000;
	packetRAM[ip_cksum]=inet_chksum(ip_VerLen,10);
}
/******************************
	交換以太頭地址
********************************/
void EthResp()
{
	packetRAM[pktDest12]=packetRAM[pktSrc12];
	packetRAM[pktDest34]=packetRAM[pktSrc34];
	packetRAM[pktDest56]=packetRAM[pktSrc56];

	packetRAM[pktSrc12]=MAC12;
	packetRAM[pktSrc34]=MAC34;
	packetRAM[pktSrc56]=MAC56;

}
/******************************
	發(fā)送數(shù)據(jù)報(bào)文的函數(shù)
********************************/
void sendpacket()
{
										//寫(xiě)發(fā)送命令字
	TxCMD=0x00C0;
									//寫(xiě)入發(fā)送數(shù)據(jù)報(bào)文的長(zhǎng)度
	TxLEN=packetRAM[pktLen];
									//等待線路空閑的時(shí)候發(fā)送
	while(!(get_reg(PP_BusSTAT)&PP_BusSTAT_TxRDY));
										//寫(xiě)入需要發(fā)送的數(shù)據(jù)

	for(i=1;i<=packetRAM[pktLen]/2;i++)
		
		RTDATA=low2high(packetRAM[i]);
}
/******************************
	發(fā)送tftp的ack信號(hào)
********************************/
void tftpack()
{	
												//ack 用0004
	packetRAM[tftp_op]=tftp_opack;	
												//ack Number
	packetRAM[tftp_blk]=tftpNo;		
												//交換udp 端口
	packetRAM[u_src]=tftpARMport;
	packetRAM[u_dst]=tftpSPort;

											 //忽略校驗(yàn)和
	packetRAM[u_cksum]=0x0000;
											//ack幀 是定長(zhǎng)度的 46 個(gè)字節(jié) 
	packetRAM[pktLen]=46;	
	packetRAM[ip_Len]=32;
	packetRAM[u_len]=12;
	EthResp();
	IpResp();
	sendpacket();
}
void  C_vMain(void)
{
/*******************************
	初始化以太網(wǎng)口
*********************************/
	put_reg(PP_SelfCTL,PP_SelfCTL_Reset);	
	while(get_reg(PP_SelfSTAT)&PP_SelfSTAT_InitD!=PP_SelfSTAT_InitD);
	put_reg(PP_RxCTL,PP_RxCTL_RxOK |PP_RxCTL_Broadcast|PP_RxCTL_IA|PP_RxCTL_Promiscuous);
	put_reg(PP_RxCFG,PP_RxCFG_RxOK| PP_RxCFG_BufferCRC|PP_RxCFG_Stream);
	put_reg(PP_LineCTL,PP_LineCTL_Rx|PP_LineCTL_Tx|PP_LineCTL_AutoAUI10BT);
	put_reg(PP_TxCFG,PP_TxCFG_TxOK);
	put_reg(PP_TestCTL,PP_TestCTL_FDX);
	put_reg(PP_IA_65,MAC56_);
	put_reg(PP_IA_43,MAC34_);
	put_reg(PP_IA_21,MAC12_);
/******************************
	開(kāi)始接受數(shù)據(jù)
******************************/
for(;;){
	while( get_reg(PP_RER)&PP_RER_RxOK )
		{
		packetRAM[0]=get_reg(PP_RxLENGTH);
					//收取前面的74個(gè)字節(jié),如果是ICMP正好包括了最后一個(gè)字符 14+20+8+32
		for (i=pktDest12;i<=23; i++)
		{
				packetRAM[i]=low2high(RTDATA);		
		}
					//檢查幀的類(lèi)型 如果是 0806 表示arp
		if (packetRAM[pktType]==0x0806)
		{
			//*******************************
					//發(fā)現(xiàn)ARP數(shù)據(jù)報(bào)文就開(kāi)始發(fā)送RARP
			//*********************************
												//判斷arp是否合法
			
			if (packetRAM[arp_hwtype]!=0x0001)
			return;
			if (packetRAM[arp_prtype]!=0x0800)
			return;
			if (packetRAM[arp_hwlen]!=0x0604)
			return;
			if (packetRAM[arp_op]!=0x0001)
			return;
			if (packetRAM[arp_tpa]!=IP12)
			return;
			if (packetRAM[arp_tpa+1]!=IP34)
			return;
			
											//判斷結(jié)束 如果沒(méi)有返回說(shuō)明需要發(fā)送RARP				//******************************
			//		發(fā)送arp request
			//********************************

											//修改arp操作碼為rarp
			packetRAM[arp_op]=0x0002;		
											//交換以太Mac
			EthResp();						
											//源mac 寫(xiě)到目的mac
			packetRAM[arp_tha]=packetRAM[arp_sha];
			packetRAM[arp_tha+1]=packetRAM[arp_sha+1];
			packetRAM[arp_tha+2]=packetRAM[arp_sha+2];
											//源ip 寫(xiě)到目的ip

			packetRAM[arp_tpa]=packetRAM[arp_spa];
			packetRAM[arp_tpa+1]=packetRAM[arp_spa+1];
											//重寫(xiě)源mac

			packetRAM[arp_sha]=MAC12;
			packetRAM[arp_sha+1]=MAC34;
			packetRAM[arp_sha+2]=MAC56;
											//重寫(xiě)源IP
			packetRAM[arp_spa]=IP12;
			packetRAM[arp_spa+1]=IP34;
											//發(fā)送rarp報(bào)文
			sendpacket();
		}
										//如果幀的類(lèi)型是 0800 表示 IP 幀
		if(packetRAM[pktType]==0x0800)
		{
									//檢查IP幀的類(lèi)型 01 表示 ICMP , 11 表示UDP
			if((packetRAM[ip_proto]&0x00ff)==0x0001)
			{
									//當(dāng)幀的類(lèi)型是 0800 表示ICMP請(qǐng)求
					if(packetRAM[ic_type]==0x0800)
					{
						EthResp();
						IpResp();
									//改變ICMP 為 0000 表示應(yīng)答
						packetRAM[ic_type]=0x0000;
						packetRAM[ic_cksum]=0x0000;
						packetRAM[ic_cksum]=inet_chksum(ip_data,20);
						sendpacket();
					}
			}
			if((packetRAM[ip_proto]&0x00ff)==0x0011)
			{
								//判斷UDP的目的地址是否是本機(jī)地址,如果不是就不處理
				if(packetRAM[ip_dst+1]!=IP34||packetRAM[ip_dst]!=IP12)
					return;
				
								//檢查目的端口是否是69 和tftpARMport
				if(packetRAM[u_dst]!=0x0045 && packetRAM[u_dst]!=tftpARMport)
					return;
								//然后檢查 tftp_op 操作碼 0002 表示寫(xiě)請(qǐng)求 
				if(packetRAM[tftp_op]==0x0002)
				{
					tftpNo=0;
					tftpSPort=packetRAM[u_src];
					sdrampoint=0;pktcount=0;
					tftpack();tftpack();
				}
										// tftp_op 操作碼 0003 表示數(shù)據(jù)
				if(packetRAM[tftp_op]==0x0003)
				{
					tftpNo=packetRAM[tftp_blk];

									//得到這一幀的長(zhǎng)度 
					pktlength=(packetRAM[ip_Len]-32)/2;
					for(i=tftp_data;i<tftp_data+pktlength;i++)
					{	
						packetRAM[i]= RTDATA&0xffff;
						put_char((packetRAM[i])&0x00ff);
						put_char((packetRAM[i]>>8)&0x00ff);
					}
					if (packetRAM[ip_Len]&0x0001==1)
					{
						packetRAM[i]= RTDATA&0xffff;

					}
					//處理數(shù)據(jù)
					//將數(shù)據(jù)寫(xiě)到ram中
					
					for(j=0;j<i-tftp_data;j+=2)	
					{
	RAM_WORD(sdrampoint)=((packetRAM[tftp_data+j+1]<<16)|packetRAM[tftp_data+j]);
						sdrampoint=sdrampoint+4;
					}
					tftpack();
													//計(jì)算文件的長(zhǎng)度 以字為單位
					pktcount=pktcount+pktlength;
											//如果幀的數(shù)據(jù)的長(zhǎng)度 在 0-511個(gè)字節(jié) pktlength是字長(zhǎng)所以和256比較 表示已經(jīng)是最后一個(gè)報(bào)文就開(kāi)始向flash中寫(xiě)入數(shù)據(jù)
					
					if(pktlength<256)
					{
						ramtoflash(pktcount);
						put_char('!');
					}

			}
			if(packetRAM[tftp_op]==0x0005)	//清空所有的標(biāo)記
			{
					sdrampoint=0;pktcount=0;
					return;
			}
		}
		}
			//不滿(mǎn)足條件就跳過(guò)這一幀
		put_reg(PP_RxCFG,PP_RxCFG_Skip1);
	}
	}
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕日本乱码精品影院| 精品国产网站在线观看| 国产精品资源站在线| 欧美电视剧在线看免费| 国产一区二区三区免费观看| 国产日韩一级二级三级| 91免费精品国自产拍在线不卡| 亚洲综合丝袜美腿| 久久伊99综合婷婷久久伊| www.欧美色图| 美女视频黄久久| 亚洲日本丝袜连裤袜办公室| 日韩欧美www| 在线视频亚洲一区| 国产一区二区三区在线观看免费| 国产精品久久久久久亚洲伦| 欧美精品久久久久久久多人混战 | 国产精品久久久久婷婷| 成人丝袜高跟foot| 亚洲成av人片| 国产精品国产馆在线真实露脸| 欧美丰满高潮xxxx喷水动漫| 懂色av一区二区三区免费观看| 亚洲电影激情视频网站| 欧美国产视频在线| 91精选在线观看| 91免费国产在线| 国产一区二区看久久| 丝袜国产日韩另类美女| 国产精品麻豆视频| 久久久久久久久久久久久夜| 欧美日韩一区二区三区视频| 99riav久久精品riav| 国内精品写真在线观看| 香蕉久久夜色精品国产使用方法 | 欧美一区二区久久| 欧美性猛交xxxx乱大交退制版| 播五月开心婷婷综合| 韩国毛片一区二区三区| 美女视频黄a大片欧美| 亚洲国产欧美另类丝袜| 国产精品丝袜91| 久久久另类综合| 欧美大尺度电影在线| 欧美日韩亚洲综合一区| 在线日韩一区二区| 97se亚洲国产综合在线| 99re这里只有精品视频首页| 成人黄色网址在线观看| 不卡av在线网| 91免费版pro下载短视频| 国产精品一二三在| 国产精品 日产精品 欧美精品| 精品一区二区综合| 久久99精品国产.久久久久久 | 亚洲成人动漫一区| 一区二区三区四区av| 依依成人精品视频| 久久精品一区八戒影视| 精品粉嫩超白一线天av| 欧美日韩中文字幕精品| 99久久精品国产导航| 97久久超碰国产精品| 一本久久a久久精品亚洲| 一本大道av伊人久久综合| 9l国产精品久久久久麻豆| 一本大道久久a久久综合婷婷| 色成年激情久久综合| 欧美亚日韩国产aⅴ精品中极品| 欧美性猛交xxxx黑人交| 日韩一区二区三区在线观看| 欧美白人最猛性xxxxx69交| 日韩精品中文字幕一区| 欧美高清视频在线高清观看mv色露露十八| 欧美日韩一级二级三级| 91精品国产欧美一区二区18| 精品卡一卡二卡三卡四在线| 国产亚洲欧美中文| 自拍偷拍亚洲欧美日韩| 亚洲成在人线在线播放| 免费在线观看一区| 国产成人综合自拍| 在线观看视频91| 日韩欧美电影在线| www一区二区| 亚洲日本欧美天堂| 日韩福利电影在线| 国v精品久久久网| 欧美午夜精品久久久久久超碰| 欧美一区二区视频在线观看2020| 91精品国产综合久久精品图片| 欧美成人伊人久久综合网| 久久综合色一综合色88| 国产精品三级电影| 另类综合日韩欧美亚洲| 色综合久久综合中文综合网| 亚洲精品在线观看网站| 图片区小说区区亚洲影院| 91一区在线观看| 久久综合色综合88| 日本欧美一区二区三区| 日本丶国产丶欧美色综合| 国产欧美日韩视频在线观看| 免费亚洲电影在线| 欧美三级午夜理伦三级中视频| 中文字幕不卡的av| 国产综合久久久久久鬼色| 欧美美女bb生活片| 亚洲精品日韩一| 99久久99久久精品免费观看 | 在线视频综合导航| 欧美国产综合色视频| 精品一区二区三区在线播放视频 | 欧美日韩国产一级二级| 亚洲欧美日韩久久| 成人aaaa免费全部观看| 国产偷国产偷精品高清尤物| 久久99九九99精品| 日韩欧美在线网站| 日本亚洲一区二区| 在线观看91精品国产麻豆| 亚洲国产综合人成综合网站| 91理论电影在线观看| 国产精品国产a| 国产91清纯白嫩初高中在线观看| 久久综合九色综合欧美就去吻 | 精品综合免费视频观看| 欧美一区二区视频网站| 日韩在线a电影| 91精品国产综合久久久蜜臀图片 | 国产久卡久卡久卡久卡视频精品| 欧美变态tickle挠乳网站| 免费的成人av| 欧美成人免费网站| 六月丁香综合在线视频| 精品av久久707| 国产乱码精品一品二品| 久久精品男人天堂av| 国产999精品久久久久久| 国产欧美日韩另类一区| 成人av网址在线| 亚洲久本草在线中文字幕| 在线一区二区三区四区五区 | 欧美一区二区三区婷婷月色| 日韩二区在线观看| 精品理论电影在线观看| 国产jizzjizz一区二区| 综合分类小说区另类春色亚洲小说欧美 | 亚洲激情中文1区| 在线欧美一区二区| 午夜a成v人精品| 精品国产制服丝袜高跟| 国产.精品.日韩.另类.中文.在线.播放| 欧美国产禁国产网站cc| 91久久精品一区二区| 亚洲www啪成人一区二区麻豆| 4438成人网| 国产一区二区三区视频在线播放| 中文字幕电影一区| 欧美色中文字幕| 毛片av一区二区三区| 国产日韩综合av| 欧美系列日韩一区| 捆绑调教美女网站视频一区| 国产色婷婷亚洲99精品小说| 91老师国产黑色丝袜在线| 午夜a成v人精品| 国产日韩欧美高清| 欧美在线观看视频一区二区三区| 麻豆精品视频在线| 国产精品私人自拍| 欧美视频日韩视频| 国产一区二区福利| 一区二区在线观看不卡| 日韩欧美成人午夜| av不卡在线播放| 免费成人性网站| 亚洲欧洲精品成人久久奇米网| 欧美日韩不卡在线| 国产成人精品影院| 性做久久久久久久免费看| 欧美极品少妇xxxxⅹ高跟鞋 | 成人性生交大片免费| 亚洲成年人影院| 久久久国产精华| 欧美精品视频www在线观看| 成人av在线播放网址| 日韩电影在线观看电影| 国产精品国产三级国产a| 日韩欧美亚洲国产另类| 91免费国产视频网站| 国产在线精品国自产拍免费| 一区二区三区高清| 国产精品视频一二| 日韩免费一区二区| 色综合久久久久综合99| 国产一区二区三区蝌蚪| 日韩电影在线一区二区| 亚洲精品高清在线| 欧美韩国日本综合|