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

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

?? net_globel.c

?? 在S3C2440上運(yùn)行的"電子日歷“(支持平年,閏年,星期自動(dòng)調(diào)整). 開(kāi)發(fā)環(huán)境是RVDS2.2
?? C
字號(hào):
/**---------------------版權(quán) (c)----------------------------------------------------------***
***                     作者:顏章健                                                      ***
***                     郵件:jenkinyan@163.com                                           ***
***                                                                                       ***
***---------------------File Info---------------------------------------------------------***
*** 創(chuàng) 建 人:          顏章健                                                            ***
*** 創(chuàng)建日期:          2008-03-16                                                        ***
*** 創(chuàng)建版本:                                                                            ***
*** 文件描述:                                                                            ***
***---------------------------------------------------------------------------------------***
*** 修 訂 人:                                                                            ***
*** 修訂日期:                                                                            ***
*** 修訂版本:                                                                            ***
*** 修訂描述:                                                                            ***
***---------------------------------------------------------------------------------------**/
#include "config.h"



// 定時(shí)器相關(guān)全局變量
static	uint8	HookLength;
static	uint8	CurrentHook;
static	void	(*HookActionTab[MAX_NET_TIMER_HOOK])(void);	// 定時(shí)器動(dòng)作表
static	uint32	HookTimeOutTab[MAX_NET_TIMER_HOOK];			// 定時(shí)器超時(shí)表


#ifdef	DBG_TIMER
static	char	TimerStr[100];
#endif


/********************************************************************************************
*** 函數(shù)名稱(chēng):			
*** 函數(shù)描述:			
*** 入    口:			
*** 出    口:			
********************************************************************************************/
void	NetTimerInit(void)
{
	uint8	i;
	
	T0TC  = 0;								// 定時(shí)器設(shè)置為0
	T0PR  = (Fpclk / 500) - 1;				// 時(shí)鐘分頻:每1毫秒T0TC增加1
	T0MCR = 0x10;							// 設(shè)置T0MR0匹配后不復(fù)位T0TC,不產(chǎn)生中斷標(biāo)志
											// T0MR0匹配中斷是否開(kāi)啟由注冊(cè)服務(wù)時(shí)決定
											// T0MR1匹配后復(fù)位T0TC,但不產(chǎn)生中斷標(biāo)志
	T0MR1 = 300000;							// 每5分鐘復(fù)位一次T0TC; 
	T0TCR = 0x01;							// 啟動(dòng)定時(shí)器
	
	HookLength = 0;
	CurrentHook = 0;
	
	for(i=0; i<MAX_NET_TIMER_HOOK; i++)
	{
		HookActionTab[i] = NULL;
		HookTimeOutTab[i] = 0;
	}
}

/********************************************************************************************
*** 函數(shù)名稱(chēng):	NetTimerHookRegist		
*** 函數(shù)描述:	向定時(shí)器注冊(cè)超時(shí)服務(wù),注冊(cè)期間和執(zhí)行超時(shí)動(dòng)作期間暫停計(jì)數(shù)器,對(duì)定時(shí)精度有影響	
*** 入    口:	ms:超時(shí)時(shí)間(單位:毫秒)	TimeOutAction:超時(shí)動(dòng)作		
*** 出    口:	-1:注冊(cè)失敗	其他:句柄		
********************************************************************************************/
int	NetTimerHookRegist(uint32 ms, void (*TimeOutAction)(void))
{
	uint32 	value;
	uint8	i,ii,jj;
	
	#ifdef DBG_TIMER
	uint32	dbg;
	#endif
		
	if((ms == 0) || (ms >= 300000))			return -1;
	if(TimeOutAction == NULL)				return -1;
	if(HookLength == MAX_NET_TIMER_HOOK)	return -1;
	
	T0TCR = 0;								// 暫停計(jì)數(shù)
	ms += T0TC;								// 計(jì)算觸發(fā)值

	#ifdef DBG_TIMER
	dbg = ms;
	if(dbg >= 300000)	dbg -= 300000;
	sprintf(TimerStr,"時(shí)間坐標(biāo)=%dms\r\n",dbg);
	_printf(TimerStr);
	#endif
	
	for(i=HookLength; i>0; i--)
	{
		ii = CurrentHook + i - 1;
		if(ii  >= MAX_NET_TIMER_HOOK)
		{
			ii -= MAX_NET_TIMER_HOOK;
		}
		
		value = HookTimeOutTab[ii];
		if(value < T0TC)				
		{	
			value += T0TC;
		}
		
		if(value > ms)
		{
			jj = ii + 1;
			if(jj  >= MAX_NET_TIMER_HOOK)	
			{
				jj -= MAX_NET_TIMER_HOOK;
			}
			
			HookActionTab[jj]  = HookActionTab[ii];
			HookTimeOutTab[jj] = HookTimeOutTab[ii];
		}
		else
		{
			break;
		}	
	}

	if(ms >= 300000)
	{
		ms -= 300000;
	}
	
	i = CurrentHook + i;
	if(i  >= MAX_NET_TIMER_HOOK)	
	{
		i -= MAX_NET_TIMER_HOOK;
	}
		
	HookTimeOutTab[i] = ms;
	HookActionTab[i]  = TimeOutAction;
	HookLength++;
	
	T0MR0 = HookTimeOutTab[CurrentHook];
	if(T0MCR == 0x10) T0MCR = 0x11;			// 如果定時(shí)器中斷已停止則開(kāi)啟定時(shí)器中斷	
	
	T0TCR = 1;								// 恢復(fù)計(jì)數(shù)

	return i;
}

/********************************************************************************************
*** 函數(shù)名稱(chēng):	NetTimerHookDelete		
*** 函數(shù)描述:	向定時(shí)器注冊(cè)超時(shí)服務(wù),注冊(cè)期間和執(zhí)行超時(shí)動(dòng)作期間暫停計(jì)數(shù)器,對(duì)定時(shí)精度有影響	
*** 入    口:	Handler:句柄	
*** 出    口:	1:成功		0:失敗
********************************************************************************************/
uint8	NetTimerHookDelete(int Handler)
{
	uint8	i,ii,jj,MovLen;
	
	T0TCR = 0;								// 暫停計(jì)數(shù)
	
	if((Handler < 0) || (Handler >= MAX_NET_TIMER_HOOK))	return 0;
	if(HookLength == 0)										return 0;
	if(HookActionTab[Handler] == NULL)						return 0;
	HookActionTab[Handler] = NULL;
	 
	if(Handler < CurrentHook)
	{
		ii = MAX_NET_TIMER_HOOK + Handler - CurrentHook;
	}
	else
	{
		ii = Handler - CurrentHook;
	}	
	MovLen = HookLength - ii - 1;
	
	for(i=Handler; i<MovLen; i++)
	{
		ii = i;
		if(ii  >= MAX_NET_TIMER_HOOK)
		{
			ii -= MAX_NET_TIMER_HOOK;
		}
		
		jj = ii + 1;
		if(jj  >= MAX_NET_TIMER_HOOK)
		{
			jj -= MAX_NET_TIMER_HOOK;
		}
		
		HookActionTab[ii]  = HookActionTab[jj];
		HookTimeOutTab[ii] = HookTimeOutTab[jj];
	}
	
	HookLength--;
	
	T0MR0 = HookTimeOutTab[CurrentHook];
	if(T0MCR == 0x10) T0MCR = 0x11;			// 如果定時(shí)器中斷已停止則開(kāi)啟定時(shí)器中斷	
	
	T0TCR = 1;								// 恢復(fù)計(jì)數(shù)
	
	return 1;
}

/********************************************************************************************
*** 函數(shù)名稱(chēng):			
*** 函數(shù)描述:			
*** 入    口:			
*** 出    口:			
********************************************************************************************/
void	__irq	IRQ_NetTimer(void)
{
	uint8 i,j;
	
	T0TCR = 0;								// 暫停計(jì)數(shù)
	
	while(CurrentHook  >= MAX_NET_TIMER_HOOK)	
	{
		CurrentHook -= MAX_NET_TIMER_HOOK;
	}
	while(HookLength  > MAX_NET_TIMER_HOOK)	
	{
		HookLength -= MAX_NET_TIMER_HOOK;
	}

	if(HookLength)
	{
		do
		{			
			#ifdef DBG_TIMER
			sprintf(TimerStr,"時(shí)間坐標(biāo)響應(yīng):%dms\r\n",HookTimeOutTab[CurrentHook]);	
			_printf(TimerStr);
			#endif
			
			j = CurrentHook;
			i = CurrentHook + 1;
			if(i  >= MAX_NET_TIMER_HOOK)	
			{
				i -= MAX_NET_TIMER_HOOK;
			}
			
			if(HookActionTab[CurrentHook] != NULL)
			{
				HookActionTab[CurrentHook]();
			}
			HookActionTab[CurrentHook]  = NULL;
			HookTimeOutTab[CurrentHook] = 0;
			
			//IRQDisable();
			HookLength--;
			CurrentHook++;
			while(CurrentHook  >= MAX_NET_TIMER_HOOK)	
			{
				CurrentHook -= MAX_NET_TIMER_HOOK;
			}			
			T0MR0 = HookTimeOutTab[CurrentHook];
			//IRQEnable();
			
			if(HookLength == 0)
			{
				T0MCR = 0x10;
				break;
			}
			
			#ifdef DBG_TIMER
			sprintf(TimerStr,"CurrentHook = %d\r\n",CurrentHook);	_printf(TimerStr);
			sprintf(TimerStr,"HookLength  = %d\r\n",HookLength);	_printf(TimerStr);
			sprintf(TimerStr,"Next=%d\r\n\r\n",HookTimeOutTab[i]);	_printf(TimerStr);
			#endif		
			
		}while(HookLength && HookTimeOutTab[i] == HookTimeOutTab[j]);
	}	
		
	T0TCR = 1;								// 恢復(fù)計(jì)數(shù)	
	T0IR = 0x01;							// 清除中斷標(biāo)志	
	VICVectAddr = 0x00;						// 通知VIC中斷處理結(jié)束
}


/********************************************************************************************
*** 函數(shù)名稱(chēng):			
*** 函數(shù)描述:			
*** 入    口:			
*** 出    口:			
********************************************************************************************/
uint32	NetTimerGetTc(void)
{
	uint32 tc;
	T0TCR = 0;
	tc	  = T0TC;
	T0TCR = 1;
	return	tc;
}


/********************************************************************************************
*** 函數(shù)名稱(chēng):	IpCheckSum		
*** 函數(shù)描述:			
*** 入    口:			
*** 出    口:			
********************************************************************************************/
uint16	InetCheckSum(uint8 *Data,uint16 Length)
{
	uint16	i,len;
	uint32	sum = 0;
	uint16	*ptr = (uint16 *)Data;

	len = Length >> 1;
	
	for (i=0; i<len; i++)
	{
		sum += *ptr++;									//高16位和低16位相加
	}
	if (Length & 0x01)									//長(zhǎng)度為單數(shù)
	{
		sum += ((*ptr)&0xff);
	}
	sum = (sum & 0xffff) + ((sum>>16)&0xffff);
	if(sum&0xffff0000)	sum++;							//有進(jìn)位
		
	return ((uint16)((sum)&0xffff));
}

/********************************************************************************************
*** 函數(shù)名稱(chēng):	InetMemCmp		
*** 函數(shù)描述:	內(nèi)存比較		
*** 入    口:	Memory1,Memory2:被比較的兩個(gè)內(nèi)存指針		Length:比較長(zhǎng)度		
*** 出    口:	無(wú)		
********************************************************************************************/
uint8	InetMemCmp(uint8 *Memory1, uint8* Memory2, uint8 Length)
{
	uint8 i;
	for(i=0; i<Length; i++)
	{
		if(*Memory1 != *Memory2)		return	0;
		Memory1++;
		Memory2++;		
	}	
	return	1;
}

/********************************************************************************************
*** 函數(shù)名稱(chēng):	NetSystemInitial		
*** 函數(shù)描述:	網(wǎng)絡(luò)協(xié)議初始化
*** 入    口:	無(wú)	
*** 出    口:	無(wú)		
********************************************************************************************/
void	NetSystemInitial(void)
{
	ModemInit("56000");	
	NetTimerInit();	
	LinkLayerInit();
	NetLayerInit();	
	UdpInit();	
	TcpInitial();	
}

/********************************************************************************************
*** 					文件結(jié)束														  ***	
********************************************************************************************/

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美卡一卡二| 久久久影院官网| 国产一区二区三区在线看麻豆| 欧美国产欧美综合| 91精品国产综合久久久久久| 春色校园综合激情亚洲| 日产国产欧美视频一区精品| 综合久久久久久| 久久久不卡网国产精品一区| 欧美日本在线一区| 94-欧美-setu| 懂色一区二区三区免费观看| 天堂在线亚洲视频| 亚洲狠狠丁香婷婷综合久久久| 精品国产第一区二区三区观看体验| 欧洲av一区二区嗯嗯嗯啊| 国产69精品久久久久毛片| 麻豆国产欧美日韩综合精品二区| 一区二区三区色| 国产精品久久久久影院老司| 26uuu精品一区二区| 欧美一级二级三级乱码| 欧美视频在线一区| 色婷婷精品久久二区二区蜜臀av| 国产高清一区日本| 久久国产成人午夜av影院| 天天影视网天天综合色在线播放| 亚洲欧美日韩国产一区二区三区| 中文字幕va一区二区三区| 2020国产精品自拍| 精品88久久久久88久久久| 91精品国产综合久久久蜜臀图片 | 在线观看日韩毛片| av电影天堂一区二区在线观看| 国产麻豆9l精品三级站| 久久国产人妖系列| 韩国中文字幕2020精品| 激情伊人五月天久久综合| 亚洲aⅴ怡春院| 午夜精品久久久久久久蜜桃app| 亚洲已满18点击进入久久| 一区二区三区视频在线看| 一区二区三区精品视频在线| 一区二区三区中文字幕精品精品| 日韩美女久久久| 亚洲精品日韩综合观看成人91| 亚洲欧美日韩中文字幕一区二区三区| 亚洲欧美在线观看| 亚洲久本草在线中文字幕| 一区二区三区视频在线观看| 亚洲福利电影网| 日韩成人免费看| 久久精品国产99久久6| 精品亚洲欧美一区| 国产成人av电影在线播放| av一区二区久久| 欧美网站一区二区| 51午夜精品国产| 欧美精品一区视频| 国产精品久久久久影视| 亚洲精品五月天| 天堂va蜜桃一区二区三区漫画版| 美美哒免费高清在线观看视频一区二区 | av男人天堂一区| 一本到不卡免费一区二区| 国产精品毛片大码女人| 中文字幕中文字幕一区| 一区二区成人在线视频| 日韩一区欧美二区| 国产一区二区三区观看| 一本色道亚洲精品aⅴ| 欧美日韩一本到| 欧美精品一区二区三| 中文字幕一区日韩精品欧美| 亚洲一区二区成人在线观看| 久久99热99| 99这里都是精品| 欧美日韩一级二级三级| 久久免费视频一区| 一区二区三区四区激情| 久久精品国产亚洲一区二区三区| 成人黄色av网站在线| 欧美浪妇xxxx高跟鞋交| 亚洲国产电影在线观看| 性欧美疯狂xxxxbbbb| 国产精品白丝av| 欧美日韩一区二区三区在线看 | 另类小说欧美激情| aaa亚洲精品| 91精品国产aⅴ一区二区| 中文字幕电影一区| 日韩和的一区二区| 99久久精品国产一区二区三区| 欧美在线观看你懂的| 国产欧美日韩精品一区| 天堂精品中文字幕在线| av福利精品导航| 久久综合五月天婷婷伊人| 亚洲国产精品久久久男人的天堂| 国产精品88av| 欧美一区二区成人| 一区二区免费看| 成人一区二区三区视频在线观看| 欧美片在线播放| 亚洲激情图片小说视频| 国产ts人妖一区二区| 欧美福利视频导航| 一区二区三区欧美视频| 国产99久久久国产精品潘金| 日韩视频一区二区| 亚洲成a人v欧美综合天堂下载 | 免费在线看一区| 在线观看国产日韩| 中文字幕一区二区三区精华液| 久久99久久久久久久久久久| 欧美日韩激情一区| 一区二区三区电影在线播| 东方aⅴ免费观看久久av| 精品久久久网站| 蜜臀精品一区二区三区在线观看| 欧美亚洲国产怡红院影院| 成人免费一区二区三区视频| 国产不卡高清在线观看视频| 精品99一区二区三区| 久久成人久久鬼色| 亚洲影院免费观看| 色综合久久88色综合天天| 国产精品亲子乱子伦xxxx裸| 国产精品一卡二| 久久婷婷一区二区三区| 久草精品在线观看| 日韩精品一区二区三区蜜臀| 天堂成人免费av电影一区| 欧美日韩国产精品自在自线| 一区二区三区 在线观看视频| 色综合中文字幕| 亚洲欧美日韩国产成人精品影院 | 欧美电影免费提供在线观看| 三级久久三级久久久| 欧美性色黄大片| 香蕉久久一区二区不卡无毒影院| 日本高清成人免费播放| 亚洲午夜在线电影| 欧美日韩一区二区欧美激情| 亚洲电影激情视频网站| 欧美精品在线观看播放| 日韩精品乱码免费| 精品久久久久久久一区二区蜜臀| 久久福利视频一区二区| 久久久久久久久99精品| 国产精品77777| 国产精品久久午夜| 91黄色激情网站| 日本中文字幕一区二区视频 | 亚洲欧美日本在线| 欧美性猛片aaaaaaa做受| 日日噜噜夜夜狠狠视频欧美人| 91麻豆精品国产自产在线| 麻豆国产一区二区| 中文字幕国产精品一区二区| 91麻豆国产自产在线观看| 亚洲成人先锋电影| 2欧美一区二区三区在线观看视频| 国产精品综合二区| 亚洲欧美日韩系列| 在线不卡中文字幕播放| 激情欧美一区二区| 亚洲啪啪综合av一区二区三区| 精品视频1区2区| 国产一区视频网站| 亚洲欧美日韩系列| 欧美一区二区三区色| 成人一级黄色片| 五月天精品一区二区三区| 久久婷婷成人综合色| 日本久久一区二区三区| 捆绑变态av一区二区三区| 久久精品在这里| 欧美日韩五月天| 国产一区二区成人久久免费影院 | 高清不卡在线观看av| 亚洲一区二区三区四区在线免费观看| 337p亚洲精品色噜噜狠狠| 国产成人精品aa毛片| 亚洲电影在线播放| 久久精品免视看| 欧美日韩一区久久| 成人激情小说乱人伦| 日韩高清一级片| 国产精品麻豆视频| 日韩亚洲欧美在线观看| 99久久综合狠狠综合久久| 美女在线视频一区| 亚洲精品免费视频| 久久久久国产一区二区三区四区 | 尤物av一区二区| 亚洲精品在线免费播放| 欧美日韩国产一级| 91免费视频大全| 国产成人激情av|