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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? flash.c

?? 基于AT91SAM7x256的硬件平臺的WEB服務(wù)器源碼(A&shy DS版本, ucOS_II+LWIP+自己編寫的DNS查詢工具)
?? C
?? 第 1 頁 / 共 2 頁
字號:
	if(__macDFL_GetNVMStatus(cNVMBit))
		return TRUE;
		
	OS_ENTER_CRITICAL()
	{
		__macDFL_SetFMCNForNVM();
	
		AT91C_BASE_MC->MC_FCR = AT91C_MC_CORRECT_KEY | AT91C_MC_FCMD_SET_GP_NVM | (cNVMBit << 8);
	
		__macDFL_WaitFlashReady(__unStatus);
	}
	OS_EXIT_CRITICAL()		
	
	return __macDFL_GetNVMStatus(cNVMBit);
}
//*------------------------------------------------------------------------------------------------
//* 函數(shù)名稱 : DFL_ClearNVM
//* 功能描述 : 清除NVM位
//* 入口參數(shù) : <cNVMBit>[in] 要設(shè)置的NVM位(0-2)
//* 出口參數(shù) : 指令執(zhí)行成功返回TRUE,否則返回FLASE
//*------------------------------------------------------------------------------------------------
int DFL_ClearNVM(char cNVMBit)
{
#if OS_CRITICAL_METHOD == 3                     
    OS_CPU_SR  	cpu_sr = 0;
#endif

	unsigned int __unStatus;
	
	if(cNVMBit > 2)
		return FALSE;
		
	if(!__macDFL_GetNVMStatus(cNVMBit))
		return TRUE;

	OS_ENTER_CRITICAL()
	{
		__macDFL_SetFMCNForNVM();
	
		AT91C_BASE_MC->MC_FCR = AT91C_MC_CORRECT_KEY | AT91C_MC_FCMD_CLR_GP_NVM | (cNVMBit << 8);
	
		__macDFL_WaitFlashReady(__unStatus);
	}		
	OS_EXIT_CRITICAL()	
	
	return !__macDFL_GetNVMStatus(cNVMBit);
}
//*------------------------------------------------------------------------------------------------
//* 函數(shù)名稱 : __ilIsDataCorrect
//* 功能描述 : 在軟件層面對數(shù)據(jù)作做一次判斷,看其是否正確
//* 入口參數(shù) : <punFrom>[in] 指向原始數(shù)據(jù)的指針
//*			 :   <punTo>[in] 指向目標(biāo)數(shù)據(jù)的指針
//*			 :  <unSize>[in] 進(jìn)行比較的數(shù)據(jù)長度
//* 出口參數(shù) : 無
//*------------------------------------------------------------------------------------------------
__inline unsigned int __ilIsDataCorrect(unsigned int *punFrom, unsigned int* punTo, unsigned int unSize)
{
	while(unSize > 0)
	{
		if(*punFrom != *punTo)
			return ((unsigned int)punTo);
		
		unSize-=4;
		punFrom++;
		punTo++;
	}
	
	return 0x00000000;
}
//*------------------------------------------------------------------------------------------------
//* 函數(shù)名稱 : __DFL_WritePage
//* 功能描述 : 把數(shù)據(jù)寫入指定的頁面。該函數(shù)具備容錯(cuò)能力,它會檢查檢查寫入的數(shù)據(jù)是否正確,如果不正確它會嘗試
//*			 : 重新寫入直至正確或者到達(dá)指定的嘗試次數(shù)--3次。
//* 入口參數(shù) :  <sPageIdx>[in] 要寫入的頁面序號
//*			 : <cIsLocked>[in] 是否鎖定相關(guān)頁面
//*          :   <punFrom>[in] 指向原始數(shù)據(jù)的指針
//*          :     <unLen>[in] 原始數(shù)據(jù)長度
//* 出口參數(shù) : - ERR_WFLASH_OK		: 編程成功
//*			 : - ERR_WFLASH_LOCK	: 正在編程的頁面已被鎖定
//*			 : - ERR_WFLASH_PROG	: 編程失敗
//*          : - ERR_WFLASH_UNLOCK	: 解鎖失敗。參數(shù)cIsLocked為TRUE時(shí),該返回值有效
//*------------------------------------------------------------------------------------------------
static char __DFL_WritePage(short sPageIdx, char cIsLocked, unsigned int *punFrom, unsigned int unLen)
{
#if OS_CRITICAL_METHOD == 3                     
    OS_CPU_SR  	cpu_sr = 0;
#endif

	unsigned int 	__unStatus, *__punTo, *__punNextTo, *__punNextFrom, __unCurLenToWrite;
	char 			i = 0;
	
	__punTo = (unsigned int*)((unsigned int)AT91C_IFLASH + sPageIdx * FLASH_PAGE_SIZE);	
	for(i=0; i<3; i++)
	{
		OS_ENTER_CRITICAL()
		{
			__macDFL_SetFMCNForFlash();
			
			__punNextTo = __punTo;
			__punNextFrom = punFrom;
			__unCurLenToWrite = unLen;
			do{
				*__punNextTo = *__punNextFrom;
				__punNextTo++;
				__punNextFrom++;
			}while(__unCurLenToWrite -= 4);
	
			AT91C_BASE_MC->MC_FCR = AT91C_MC_CORRECT_KEY | AT91C_MC_FCMD_START_PROG | (sPageIdx << 8);
			
			//* 等待編程成功
			__macDFL_WaitFlashReady(__unStatus);
		}	
		OS_EXIT_CRITICAL()
	
		if(__unStatus & AT91C_MC_LOCKE)
			return ERR_WFLASH_LOCK;
			
		if(__ilIsDataCorrect(punFrom, __punTo, unLen) == 0x00000000)			
			return ERR_WFLASH_OK;
	}
	
	return ERR_WFLASH_PROG;
}
//*------------------------------------------------------------------------------------------------
//* 函數(shù)名稱 : __DFL_WriteFlash
//* 功能描述 : 把數(shù)據(jù)寫入FLASH,并根據(jù)參數(shù)cIsLocked判斷是否鎖定
//* 入口參數(shù) :   <punFrom>[in] 指向?qū)懭霐?shù)據(jù)的指針
//*          :      <unTo>[in] 要寫入的地址
//*          :     <nSize>[in] 要寫入的數(shù)據(jù)長度
//*			 : <cIsLocked>[in] 是否鎖定相關(guān)頁面
//* 出口參數(shù) : 返回?cái)?shù)據(jù)寫入的開始地址,如果寫入失敗則返回一個(gè)小于AT91C_IFLASH的值,分別為:
//*			 : - ERR_WFLASH_INVALID_ADDR : 指定寫入的地址無效
//*			 : - ERR_WFLASH_LOCK		 : 正在編程的頁面已被鎖定
//*			 : - ERR_WFLASH_PROG		 : 編程出錯(cuò)
//*          : - ERR_WFLASH_UNLOCK		 : 解鎖出錯(cuò)
//*------------------------------------------------------------------------------------------------
static unsigned int __DFL_WriteFlash(unsigned int *punFrom, unsigned int unTo, int nSize, char cIsLocked)
{
	unsigned int 	*__punTo, *__punNextTo, *__punNextFrom;
	int 			__nSize, __nCurSizeToWrite, __nTotalSizeToWrite = 0, __nTotalSizeNotToWrite;
	short 			__sCurPage;
	char			__cResult, __cBitNum;
	unsigned short	__usLockRegions = 0x0000;
	
	
	//* 先將數(shù)據(jù)寫入FLASH鎖存緩沖器。因?yàn)閿?shù)據(jù)手冊表明不允許寫入8位或16位數(shù)據(jù),所以這里必須按照32位進(jìn)行數(shù)據(jù)
	//* 寫入。在寫入鎖存緩沖器之前先對據(jù)大小進(jìn)行32位對齊運(yùn)算。
	__nSize = (int)ALIGN32(nSize);
	
	__punTo = (unsigned int*)unTo;
	
	//* 如果指定的寫入地址超出了FLASH的結(jié)束地址或者寫入的數(shù)據(jù)超出了FLASH存儲容量,函數(shù)立即返回,不再繼續(xù)寫入。
	//* 如果指定的FLASH地址并不是頁面起始地址,同樣視為無效地址
	if((__punTo > (unsigned int*)AT91C_IFLASH_ENDADDR) 
		|| (__punTo < (unsigned int*)AT91C_IFLASH)
		|| (((unsigned int*)AT91C_IFLASH_ENDADDR - __punTo) < __nSize)
		|| (unTo & FLASG_PAGE_SIZE_MASK))
		return ERR_WFLASH_INVALID_ADDR;
	
	//* 開始頁編程
	__punNextFrom = punFrom;
	__punNextTo = __punTo;
	__sCurPage = ((unsigned int)__punNextTo - (unsigned int)AT91C_IFLASH) / FLASH_PAGE_SIZE;
	do{
		__nTotalSizeNotToWrite = __nSize - __nTotalSizeToWrite;
		__nCurSizeToWrite = (FLASH_PAGE_SIZE < __nTotalSizeNotToWrite) ? FLASH_PAGE_SIZE:__nTotalSizeNotToWrite;
		
		//* 解鎖當(dāng)前頁面
		if(!DFL_PageUnlock(__sCurPage))
			return ERR_WFLASH_UNLOCK;								
		
		if((__cResult = __DFL_WritePage(__sCurPage, cIsLocked, __punNextFrom, __nCurSizeToWrite)) != ERR_WFLASH_OK)
			return __cResult;
			
		__punNextFrom = (unsigned int*)((unsigned int)__punNextFrom + __nCurSizeToWrite);
		
		//* 設(shè)置鎖定區(qū)域位
		if(cIsLocked)
		{
			__cBitNum = __sCurPage / PAGES_PER_LOCK_REGION;
			__usLockRegions |= 1 << __cBitNum;
		}
		
		__nTotalSizeToWrite += __nCurSizeToWrite;
		__sCurPage++;
	}while(__nTotalSizeToWrite < __nSize);
	
	//* 鎖定頁面
	if(cIsLocked)
	{
		for(__cBitNum=0; __cBitNum<FLASH_LOCK_REGIONS_NB; __cBitNum++)
		{
			if(__usLockRegions & (1 << __cBitNum))
				DFL_PageLock(__cBitNum * PAGES_PER_LOCK_REGION);
		}
	}
	
	return (unsigned int)__punTo;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩久久久精品| 粉嫩高潮美女一区二区三区| 中文字幕一区二区三区精华液| 精品久久人人做人人爱| 日韩一区二区视频| 在线综合亚洲欧美在线视频| 7777精品伊人久久久大香线蕉的| 欧美另类z0zxhd电影| 欧美日韩aaaaaa| 欧美大片在线观看一区二区| 欧美一区二区三区视频免费播放| 欧美一卡二卡三卡| 精品对白一区国产伦| 国产日韩精品一区二区三区| 中文乱码免费一区二区| 一区二区三区高清不卡| 亚洲福利视频导航| 久久精品国产一区二区三区免费看| 久久99精品久久久久久| 国产高清不卡二三区| 色综合中文字幕| 欧美性猛片xxxx免费看久爱| 日韩欧美一二三区| 国产精品毛片a∨一区二区三区| 亚洲你懂的在线视频| 视频一区二区中文字幕| 久久精品999| av亚洲精华国产精华精华 | heyzo一本久久综合| 国产成人在线视频网站| 色综合天天综合网天天狠天天| 欧美中文字幕一区二区三区| 欧美r级电影在线观看| 国产精品的网站| 免费日韩伦理电影| av欧美精品.com| 欧美一级理论片| 国产精品福利一区二区三区| 首页国产欧美日韩丝袜| 岛国精品一区二区| 欧美一二三四区在线| 亚洲视频小说图片| 久久99精品国产麻豆不卡| 一本色道久久综合精品竹菊| 日韩欧美高清在线| 亚洲图片欧美色图| 暴力调教一区二区三区| 精品久久久网站| 亚洲成av人片一区二区三区| 成人av先锋影音| 久久在线免费观看| 日韩高清中文字幕一区| 色视频一区二区| 亚洲国产精品传媒在线观看| 久久精品72免费观看| 69堂精品视频| 一区二区三区产品免费精品久久75| 国产ts人妖一区二区| 欧美成人性战久久| 日本欧美一区二区三区| 欧美日韩免费电影| 亚洲精品日产精品乱码不卡| 成人高清视频在线观看| 久久午夜羞羞影院免费观看| 日本va欧美va欧美va精品| 欧美日韩视频在线观看一区二区三区| 国产亚洲精品超碰| 国产a视频精品免费观看| 欧美精品一区二区三区在线| 蜜臀久久久99精品久久久久久| 欧美日韩国产精选| 日韩影院免费视频| 91精品国产品国语在线不卡| 亚洲国产精品一区二区久久| 91免费看视频| 夜夜精品浪潮av一区二区三区| 一本久久综合亚洲鲁鲁五月天| 国产精品欧美久久久久一区二区 | 成人精品鲁一区一区二区| 久久久五月婷婷| 国产91露脸合集magnet| 国产精品丝袜久久久久久app| 国产大陆精品国产| 国产精品国产三级国产专播品爱网 | 国产亚洲精品福利| av在线综合网| 一区二区三区在线观看网站| 欧美视频一区在线观看| 日韩av电影免费观看高清完整版在线观看| 国产一区二区三区视频在线播放 | 国产夫妻精品视频| 久久久久久久网| 麻豆国产91在线播放| 欧美大片国产精品| 国产成人av福利| 亚洲免费观看高清完整版在线 | 欧美一区二区福利视频| 九色综合国产一区二区三区| 日本一区二区三区国色天香 | 欧美日韩电影一区| 久久电影国产免费久久电影| 国产女主播视频一区二区| 91猫先生在线| 老汉av免费一区二区三区| 国产精品国产馆在线真实露脸| 欧美无乱码久久久免费午夜一区| 麻豆91免费观看| 亚洲欧美一区二区视频| 在线不卡中文字幕| 国产不卡高清在线观看视频| 婷婷夜色潮精品综合在线| 久久亚洲精品小早川怜子| 欧美伊人久久久久久久久影院| 久久9热精品视频| 一片黄亚洲嫩模| 国产亚洲欧美色| 欧美精品丝袜中出| 99久久精品免费看国产 | 亚洲欧洲中文日韩久久av乱码| 欧美私人免费视频| 国产一区二区毛片| 日韩电影在线观看一区| 国产精品久久久久久久久动漫| 欧美精品xxxxbbbb| 91香蕉视频黄| 国产成人免费视频| 日韩国产欧美一区二区三区| 亚洲欧美视频一区| 日本一区二区三区久久久久久久久不| 欧美男女性生活在线直播观看| 成人18视频日本| 国产成人一区在线| 美国十次综合导航| 日韩av网站免费在线| 一区二区三区在线免费播放| 亚洲欧美在线另类| 国产精品美女久久久久久久网站| 精品理论电影在线| 欧美xxxxx裸体时装秀| 欧美日韩国产影片| 欧美三级欧美一级| 欧美亚洲禁片免费| 欧美性色综合网| 欧美日韩一区二区在线观看视频 | 欧美一区二区黄色| 欧美三级韩国三级日本三斤| 色88888久久久久久影院野外| 成人在线综合网站| 丰满放荡岳乱妇91ww| 国产精品一区二区果冻传媒| 精品制服美女久久| 久久成人久久鬼色| 国产一区视频网站| 韩国av一区二区三区| 国内精品伊人久久久久av影院 | 国产精品视频yy9299一区| 久久精品一区八戒影视| 国产日韩欧美精品一区| 国产精品免费人成网站| 国产精品麻豆久久久| 尤物视频一区二区| 日韩精品亚洲一区| 免费观看久久久4p| 国产精品亚洲专一区二区三区| 大陆成人av片| 91久久一区二区| 91精品国产乱| 久久久午夜精品理论片中文字幕| 久久精品男人天堂av| 中文字幕一区av| 亚洲一区免费视频| 日本成人在线电影网| 国产自产v一区二区三区c| 国产成人精品aa毛片| 9人人澡人人爽人人精品| 在线观看欧美黄色| 欧美一区二区久久久| 欧美极品aⅴ影院| 中文字幕国产精品一区二区| 国产精品视频一区二区三区不卡| 亚洲精品v日韩精品| 一二三四社区欧美黄| 免费视频一区二区| 国产精品影视在线| 欧美性一区二区| 久久精品视频免费观看| 伊人婷婷欧美激情| 精品一区二区精品| 91浏览器在线视频| 欧美成人高清电影在线| 亚洲区小说区图片区qvod| 三级影片在线观看欧美日韩一区二区 | 成人免费观看av| 制服.丝袜.亚洲.另类.中文| 国产精品免费视频一区| 日本在线不卡一区| 91香蕉视频黄| 国产三级精品三级在线专区| 天天色综合天天| 91理论电影在线观看|