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

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

?? flash.c

?? 基于AT91SAM7x256的硬件平臺的WEB服務(wù)器源碼(A&shy DS版本, ucOS_II+LWIP+自己編寫的DNS查詢工具)
?? C
?? 第 1 頁 / 共 2 頁
字號:
	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ù)具備容錯能力,它會檢查檢查寫入的數(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時,該返回值有效
//*------------------------------------------------------------------------------------------------
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();
			
			if(unLen > 0)
			{
				__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ù) : 返回數(shù)據(jù)寫入的開始地址,如果寫入失敗則返回一個小于AT91C_IFLASH的值,分別為:
//*			 : - ERR_WFLASH_INVALID_ADDR : 指定寫入的地址無效
//*			 : - ERR_WFLASH_LOCK		 : 正在編程的頁面已被鎖定
//*			 : - ERR_WFLASH_PROG		 : 編程出錯
//*          : - ERR_WFLASH_UNLOCK		 : 解鎖出錯
//*------------------------------------------------------------------------------------------------
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鎖存緩沖器。因為數(shù)據(jù)手冊表明不允許寫入8位或16位數(shù)據(jù),所以這里必須按照32位進(jìn)行數(shù)據(jù)
	//* 寫入。在寫入鎖存緩沖器之前先對據(jù)大小進(jìn)行32位對齊運算。
	__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一区二区三区免费野_久草精品视频
亚洲精品成a人| 久久这里只有精品首页| 亚洲精品免费在线观看| 95精品视频在线| 一二三区精品福利视频| 欧美日韩一级大片网址| 婷婷中文字幕综合| 日韩精品一区二区三区三区免费| 麻豆91在线播放免费| 久久久一区二区三区捆绑**| 粉嫩高潮美女一区二区三区| 亚洲免费电影在线| 欧美人与禽zozo性伦| 国模套图日韩精品一区二区 | 亚洲va韩国va欧美va| 制服丝袜在线91| 国产高清精品网站| 亚洲男同性恋视频| 欧美一区二区黄| 成人精品国产一区二区4080| av一区二区三区| 伊人一区二区三区| 日韩欧美视频一区| 9i看片成人免费高清| 日韩激情中文字幕| 国产目拍亚洲精品99久久精品| 99综合影院在线| 蜜桃视频一区二区三区在线观看| 日本一区二区免费在线| 欧美日韩一区中文字幕| 国产在线精品一区在线观看麻豆| 国产精品久久二区二区| 91精品国产手机| jvid福利写真一区二区三区| 美女网站一区二区| 亚洲婷婷综合久久一本伊一区| 欧美一级片在线| 99国产精品99久久久久久| 日韩国产成人精品| 亚洲天堂免费在线观看视频| 精品奇米国产一区二区三区| 欧美三级乱人伦电影| 成人午夜精品一区二区三区| 美女视频黄久久| 亚洲免费观看在线观看| 精品国产一区二区三区av性色| 91丝袜美腿高跟国产极品老师| 久久99精品国产| 视频一区在线播放| 亚洲美女屁股眼交3| 久久综合九色综合欧美亚洲| 欧美日韩一区高清| 色综合天天综合网国产成人综合天| 九九热在线视频观看这里只有精品| 一区二区三区在线视频观看58| 欧美激情综合在线| 五月天一区二区| 亚洲少妇最新在线视频| 国产亚洲成aⅴ人片在线观看| 制服丝袜中文字幕一区| 欧美日韩在线播放三区四区| 91浏览器在线视频| 99久久伊人网影院| 成人av网站在线观看免费| 国产一区二区三区不卡在线观看 | 欧美成人女星排名| 欧美日韩大陆一区二区| 在线亚洲人成电影网站色www| 国产成人av一区二区三区在线观看| 久久99久久精品| 日韩vs国产vs欧美| 蜜臀av国产精品久久久久| 视频在线观看91| 日韩中文字幕麻豆| 日韩主播视频在线| 亚洲h动漫在线| 五月婷婷综合激情| 青青草国产成人av片免费| 日韩中文欧美在线| 天天av天天翘天天综合网色鬼国产| 99精品偷自拍| 99精品视频在线播放观看| a在线欧美一区| 99视频精品全部免费在线| 91免费国产在线| 一本色道久久综合精品竹菊| 色狠狠一区二区三区香蕉| 欧洲日韩一区二区三区| 精品视频全国免费看| 欧美精品 国产精品| 日韩一级黄色片| 久久久不卡网国产精品二区| 国产欧美日韩综合精品一区二区| 欧美高清在线精品一区| 亚洲色图19p| 亚洲电影激情视频网站| 免费看欧美女人艹b| 国产精品综合av一区二区国产馆| 成人黄色软件下载| 色偷偷88欧美精品久久久| 欧美日本在线播放| 久久免费电影网| 亚洲乱码中文字幕| 免费精品视频在线| 成人做爰69片免费看网站| 91高清在线观看| 精品国产制服丝袜高跟| 日本一二三四高清不卡| 亚洲综合一区二区精品导航| 麻豆国产精品官网| 成人高清在线视频| 欧美老女人在线| 精品久久久网站| 亚洲精品大片www| 久久国产精品第一页| av亚洲精华国产精华精| 91精品国产综合久久婷婷香蕉 | 国产成人在线视频网址| 91在线精品秘密一区二区| 日韩一区二区三| 亚洲欧美日韩国产综合在线 | 亚洲h动漫在线| 国产99久久久国产精品潘金| 一区二区三区在线视频免费观看| 奇米精品一区二区三区在线观看| 成人黄色一级视频| 欧美大片免费久久精品三p| 亚洲视频每日更新| 国产乱淫av一区二区三区| 欧洲日韩一区二区三区| 国产日韩精品视频一区| 日本va欧美va瓶| 91国产丝袜在线播放| 亚洲国产精品高清| 麻豆成人久久精品二区三区小说| 一本一道久久a久久精品综合蜜臀| 欧美www视频| 婷婷综合另类小说色区| 日本高清不卡aⅴ免费网站| 日本一区二区三区在线观看| 看电视剧不卡顿的网站| 欧美性大战久久久久久久蜜臀| 亚洲国产精品二十页| 国内精品国产成人国产三级粉色| 欧美日韩亚洲综合在线| 亚洲日本在线观看| 岛国精品在线观看| 久久欧美一区二区| 久久99久久久久| 日韩三级av在线播放| 午夜精彩视频在线观看不卡| 91麻豆123| 国产精品久久久久久久久免费相片 | 亚洲精选一二三| 国产91丝袜在线播放九色| 精品免费一区二区三区| 美腿丝袜亚洲综合| 91精品婷婷国产综合久久性色| 亚洲国产美女搞黄色| 欧美午夜电影在线播放| 亚洲欧美日韩精品久久久久| 91在线一区二区| 亚洲精品国产精品乱码不99| aaa亚洲精品| 亚洲精选一二三| 色8久久人人97超碰香蕉987| 一区二区不卡在线播放| 欧美亚男人的天堂| 亚洲mv在线观看| 91精品国产一区二区人妖| 免费观看日韩av| 精品福利视频一区二区三区| 久久精品二区亚洲w码| 26uuu欧美| 国产成人精品在线看| 国产精品剧情在线亚洲| 91麻豆swag| 午夜精品久久久久久不卡8050| 制服丝袜av成人在线看| 精品亚洲免费视频| 中文字幕免费观看一区| 丁香六月综合激情| 亚洲男人的天堂网| 在线电影一区二区三区| 久久99热狠狠色一区二区| 久久精品夜色噜噜亚洲a∨| 成人晚上爱看视频| 亚洲国产精品综合小说图片区| 欧美美女网站色| 精品三级av在线| 成人小视频免费观看| 依依成人综合视频| 日韩一区二区在线观看视频播放| 国产一区视频导航| 中文字幕一区二区三中文字幕| 欧美午夜不卡视频| 国产一区二区三区久久悠悠色av| 中文字幕一区二区三区av| 欧美日韩精品欧美日韩精品一综合| 理论片日本一区|