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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? norflash.h

?? 底層測試代碼
?? H
字號:
/***************************************************************************************************************************
 *filename:			NorFlash.h		
 *author:			wuer
 *create date:		2005-5-10 12:45                                                                      
 *description:	   	The file consists of some functions of Nor Flash                                             
 *modify history:	                                                                      
 *misc:           	因為芯片分為16位和32位,故所有對芯片的命令操作也分16位和32位操作。
 ****************************************************************************************************************************/
#include "HA_TypeDef.h"
#include <stdio.h>
#include "config.h"


#ifndef GE01
	/*宏NorFlash_32Bit,若定義了為32位NorFlash,否則為16位NorFlash*/
	#define NorFlash_32Bit
#endif


#ifdef NorFlash_32Bit
//////////////////////////////////
//       32位NorFlash操作       //
//////////////////////////////////
extern void InitEMI(void);
extern ER NorFlash_write( U32 address, U32 data );
extern ER NorFlash_read( U32 address);
extern ER NorFlash_idlejud(U32 address);
extern ER NorFlash_clearSR(U32 address);
extern ER NorFlash_bolckerase(U32 blockadd);
extern ER NorFlash_Normal(U32 address);
extern ER NorFlash_unlock( U32 address);
extern ER check(U32 head1, U32 head2, U32 num);

void InitEMI(void)
{
	*(RP)EMIADDR_CSGBAB	=	0x24002000;	                     
	*(RP)EMIADDR_CSGBCD	=	0x2c002800;	                       
	*(RP)EMIADDR_CSGBEF	=	0x34003000;	                       
	*(RP)EMIADDR_SMCONF	|=	0x00000200;
	*(RP)EMIADDR_SDCONF1=	0x0110a077;
	*(RP)EMIADDR_SDCONF2=	0x80000500;
	
	*(RP)EMIADDR_REMAP	=	0x0000000b;


}


ER NorFlash_idlejud(U32 address)
{
	U32 temp;
	U16 i = 0;
	U16 j = 0;
	
	*(RP)address = 0x700070;
	temp = *(RP)address;

	while( (temp & 0x800080) != 0x800080 )
	{
		for(i=0; i<0x1000; i++);
		temp = *(RP)address ;
		if(j++ >= 0x1000)
		{
		#ifdef USB_ICE
			print("It takes too many time! I can not put up with it!\n");
		#else
			printf("It takes too many time! I can not put up with it!\n");
		#endif
		return NO;
		}	
	}
	
	*(RP)address = 0xff00ff;
	
	return YES;
}

ER NorFlash_clearSR(U32 blockadd)
{
	*(RP)0x20000000 = 0x500050;
	
	if( NorFlash_idlejud(blockadd) != YES)
	{
	#ifdef USB_ICE
		print("clear SR FAIL!!\n");
	#else
		printf("clear SR FAIL!!\n");
	#endif
	return NO;
	}
	return YES;
}

	
ER NorFlash_Normal(U32 address)
{
	*(RP)address = 0xff00ff;

	return YES;
}


ER NorFlash_unlock( U32 address)
{
	int i;
	char *PrintTemp;
	
	*(RP)address = 0x600060;	
	*(RP)address = 0xd000d0;
		
	for(i=0; i<0x1000; i++);
	if(NorFlash_idlejud(address) != YES)
	{
	#ifdef USB_ICE
		sprintf(PrintTemp, "unlock at 0x%x failed!!\n", (U16)address);
		print(PrintTemp);
	#else
		printf("unlock at 0x%x failed!!\n", (U16)address);
	#endif
	return NO;
	}
	
	return YES;
}

ER NorFlash_lock( U32 address)
{
	*(RP)address = 0x600060;
	*(RP)address = 0x010001;
	
	
	NorFlash_idlejud(address);
	
	return YES;
}

ER NorFlash_bolckerase(U32 blockadd)
{
	U32 i;	
	char *PrintTemp;
	
	*(RP)blockadd = 0x200020;
	*(RP)blockadd = 0xd000d0;
	
	for(i=0; i<0x80000; i++);
	
	if(NorFlash_idlejud(blockadd) != YES)
	{
	#ifdef USB_ICE
		sprintf(PrintTemp, "blcokerase at 0x%x time out!\n", (U16)blockadd);
		print(PrintTemp);
	#else
		printf("blcokerase at 0x%x time out!\n", (U16)blockadd);
	#endif
	return NO;
	}
	
	NorFlash_clearSR(blockadd);
	return YES;
}


ER NorFlash_read( U32 address)
{
	U32 i;
	
	*(RP)address = 0xff00ff;	
	i = *(RP)address;
	
	return i;
}


ER NorFlash_write( U32 address, U32 data )
{
	int i;
	U32 temp;
	char *PrintTemp;
	
	*(RP)address = 0x400040;
	*(RP)address = data;
	
	for(i=0; i<0x800; i++);
	if(NorFlash_idlejud(address) != YES)
	{
	#ifdef USB_ICE
		sprintf(PrintTemp, "write at 0x%x failed!! \n", (U16)address);
		print(PrintTemp);
	#else
		printf("write at 0x%x failed!! \n", (U16)address);
	#endif
	return NO;
	}
	
	temp = *(RP)address;
	if(temp != data)
	{
	#ifdef USB_ICE
		sprintf(PrintTemp, "____write at 0x%x error!! 0x%x VS 0x%x!!\n",address, temp,data);
		print(PrintTemp);
	#else
		printf("____write at 0x%x error!! 0x%x VS 0x%x!!\n",address, temp,data);
	#endif
	return NO;
	}
	else 
		return YES;
}

ER check(U32 head1, U32 head2, U32 num)
{
	RP8 p1, p2;
	char data;
	
	p1 = (RP8)head1;
	p2 = (RP8)head2;
	
	
	while(num-->0)
	{
		data = *((RP8)p1++);
		
		if(data!= *((RP8)p2++))
		{
		#ifdef USB_ICE
			print("the copyed data is not the orignal one!!\n");
		#else
			printf("the copyed data is not the orignal one!!\n");
		#endif
		return NO;
		}
	}
	
	return YES;
}

#else
//////////////////////////////////
//       16位NorFlash操作       //
//////////////////////////////////

extern void InitEMI(void);
extern ER NorFlash_write( U32 address, U16 data );
extern ER NorFlash_read( U32 address);
extern ER NorFlash_idlejud(U32 address);
extern ER NorFlash_clearSR(U32 address);
extern ER NorFlash_bolckerase(U32 blockadd);
extern ER NorFlash_Normal(U32 address);
extern ER NorFlash_unlock( U32 address);
extern ER check(U32 head1, U32 head2, U32 num);


void InitEMI(void)
{
	*(RP)EMIADDR_CSGBAB	=	0x24002000;	                     
	*(RP)EMIADDR_CSGBCD	=	0x2c002800;	                       
	*(RP)EMIADDR_CSGBEF	=	0x34003000;	                       
	*(RP)EMIADDR_SMCONF	&=	~0x00000200;
	*(RP)EMIADDR_SDCONF1=	0x0110a077;
	*(RP)EMIADDR_SDCONF2=	0x80000500;
	
	*(RP)EMIADDR_REMAP	=	0x0000000b;


}

ER NorFlash_idlejud(U32 address)
{
	U16 temp = 0;
	
	*(RP16)address = 0x70;
	temp = *(RP16)address;
	while( (temp & 0x80) != 0x80 )
	{
		temp = *(RP16)address ;
	}
	
	*(RP16)address = 0xff;
	
	return YES;
}
	
ER NorFlash_clearSR(U32 blockadd)
{
	*(RP16)0x20000000 = 0x50;

	if( NorFlash_idlejud(blockadd) != YES)
	{
		#ifdef USB_ICE
			print("clear SR FAIL!!\n");
		#else
			printf("clear SR FAIL!!\n");
		#endif
		return NO;
	}

	return YES;
}	

ER NorFlash_Normal(U32 address)
{
	*(RP16)address = 0xff;

	return YES;
}


ER NorFlash_unlock( U32 address)
{
	int i;
	char *PrintTemp;

	*(RP16)address = 0x60;
	*(RP16)address = 0xd0;
	
	for(i=0; i<0x1000; i++);
	if(NorFlash_idlejud(address) != YES)
	{
		#ifdef USB_ICE
			sprintf(PrintTemp, "unlock at 0x%x failed!!\n", (U16)address);
			print(PrintTemp);
		#else
			printf("unlock at 0x%x failed!!\n", (U16)address);
		#endif
		return NO;
	}
	return YES;
}


ER NorFlash_lock( U32 address)
{
	*(RP16)address = 0x60;
	*(RP16)address = 0x01;
	
	
	NorFlash_idlejud(address);
	
	return YES;
}

ER NorFlash_bolckerase(U32 blockadd)
{
	int i;
	U16 temp;
	char *PrintTemp;
	
	*(RP16)blockadd = 0x20;
	*(RP16)blockadd = 0xd0;
	
	for(i=0; i<0x80000; i++);

	if(NorFlash_idlejud(blockadd) != YES)
	{
		#ifdef USB_ICE
			sprintf(PrintTemp, "blcokerase at 0x%x time out!\n", (U16)blockadd);
			print(PrintTemp);
		#else
			printf("blcokerase at 0x%x time out!\n", (U16)blockadd);
		#endif
	return NO;
	}
	
	temp = NorFlash_clearSR(blockadd );			       
	return YES;
}

ER NorFlash_read( U32 address)
{
	U16 i;
	
	*(RP16)address = 0xff;	
	i = *(RP16)address;
	
	NorFlash_idlejud(address);
	
	return i;
}


ER NorFlash_write( U32 address, U16 data )
{
	int i;
	U16 temp;
	char *PrintTemp;
	
	*(RP16)address = 0x40;
	*(RP16)address = data;
	
	for(i=0; i<0x800; i++);
	if(NorFlash_idlejud(address) != YES)
	{
		#ifdef USB_ICE
			sprintf(PrintTemp, "write at 0x%x failed!! \n", (U16)address);
			print(PrintTemp);
		#else
			printf("write at 0x%x failed!! \n", (U16)address);
		#endif
		return NO;
	}
	
	temp = *(RP)address;
	if(temp != data)
	{
		#ifdef USB_ICE
			sprintf(PrintTemp, "____write at 0x%x error!! 0x%x VS 0x%x!!\n",address, temp,data);
			print(PrintTemp);
		#else
			printf("____write at 0x%x error!! 0x%x VS 0x%x!!\n",address, temp, data);
		#endif
		return NO;
	}
	return YES;
}


ER check(U32 head1, U32 head2, U32 num)
{
	RP8 p1, p2;
	char data;
	
	p1 = (RP8)head1;
	p2 = (RP8)head2;
	
	
	while(num-->0)
	{
		data = *((RP8)p1++);
		
		if(data!= *((RP8)p2++))
		{
			#ifdef USB_ICE
				print("the copyed data is not the orignal one!!\n");
			#else
				printf("the copyed data is not the orignal one!!\n");
			#endif
			return NO;
		}
	}
	
	return YES;
}


#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一二三区在线观看| 亚洲精品久久久蜜桃| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 亚洲女与黑人做爰| 国产一区二区三区久久悠悠色av| 在线亚洲精品福利网址导航| 久久久另类综合| 奇米色777欧美一区二区| 91色在线porny| 国产网站一区二区| 久久精品国产精品青草| 欧美在线观看一区| 国产精品美女视频| 国产精品亚洲午夜一区二区三区 | 亚洲欧洲99久久| 看电影不卡的网站| 欧美午夜一区二区三区 | www.亚洲在线| 欧美激情综合五月色丁香| 久久精品久久99精品久久| 欧美久久婷婷综合色| 亚洲国产精品欧美一二99| 91丝袜高跟美女视频| 中文字幕中文在线不卡住| 国产91精品久久久久久久网曝门 | 337p亚洲精品色噜噜狠狠| 亚洲综合av网| 欧洲色大大久久| 亚洲一区二区三区四区五区中文| 一本到一区二区三区| 亚洲精品中文字幕在线观看| 91亚洲精品乱码久久久久久蜜桃| 国产精品情趣视频| 97久久人人超碰| 亚洲激情成人在线| 欧美日韩午夜在线视频| 天堂久久久久va久久久久| 欧美日韩国产另类不卡| 日韩高清电影一区| 精品欧美一区二区三区精品久久| 久久超碰97中文字幕| 欧美精品一区二区蜜臀亚洲| 国产精品一区在线| 国产精品久久福利| 欧美在线一区二区三区| 天天av天天翘天天综合网色鬼国产 | 国产自产v一区二区三区c| 26uuu亚洲综合色| 成人午夜av电影| 亚洲欧美偷拍三级| 欧美高清视频不卡网| 激情五月播播久久久精品| 欧美激情一区三区| 在线观看不卡一区| 激情图片小说一区| 亚洲美女淫视频| 91精品综合久久久久久| 韩国av一区二区三区四区 | 成人av小说网| 亚洲一区二区偷拍精品| 欧美mv日韩mv| av在线播放成人| 日韩中文字幕区一区有砖一区| 精品动漫一区二区三区在线观看| 成人黄色大片在线观看| 午夜精品爽啪视频| 久久久久久久性| 欧美综合天天夜夜久久| 国产一区二区不卡| 亚洲综合色婷婷| 国产三级精品三级在线专区| 欧美最新大片在线看| 国产精品影视在线观看| 午夜欧美一区二区三区在线播放| 精品美女在线观看| 欧美色综合久久| 国产传媒日韩欧美成人| 天天色天天爱天天射综合| 国产精品国产成人国产三级| 日韩一区二区精品在线观看| www.久久久久久久久| 久久se这里有精品| 夜夜嗨av一区二区三区网页 | 99久久综合精品| 国内国产精品久久| 亚洲成a人在线观看| 亚洲欧洲成人精品av97| 久久久久国产成人精品亚洲午夜 | 日产国产高清一区二区三区| 国产精品美女www爽爽爽| 欧美r级在线观看| 欧美精品亚洲一区二区在线播放| av成人免费在线| 国产成人免费在线观看| 久久草av在线| 日本欧美加勒比视频| 亚洲亚洲人成综合网络| 中文字幕字幕中文在线中不卡视频| 精品国产伦一区二区三区免费| 欧美日韩1区2区| 欧美在线影院一区二区| 91性感美女视频| 成人avav影音| av激情成人网| 91丨国产丨九色丨pron| www.欧美色图| 99热精品一区二区| 91视频国产资源| 99久久综合国产精品| 97久久人人超碰| 色综合天天综合色综合av| 99久久综合国产精品| 成人免费电影视频| eeuss鲁一区二区三区| av亚洲精华国产精华精华| 丁香天五香天堂综合| 成人免费精品视频| 99视频热这里只有精品免费| 一本一道综合狠狠老| 欧美亚洲一区二区在线| 欧美精品乱码久久久久久 | 2023国产精品视频| 久久精品亚洲一区二区三区浴池| 欧美精品一区二区三区四区| 国产亚洲欧美在线| 国产精品网站在线| 国产精品热久久久久夜色精品三区| 国产精品久久久久久一区二区三区 | 欧美亚一区二区| 欧美老肥妇做.爰bbww| 91精品久久久久久久99蜜桃| 91精品欧美综合在线观看最新| 日韩视频永久免费| 久久久久久99久久久精品网站| 亚洲狼人国产精品| 国产一区二区三区黄视频| 无码av免费一区二区三区试看 | 欧美日韩黄色影视| 日韩精品一区在线| 国产精品久久久久精k8| 一区二区视频免费在线观看| 天堂午夜影视日韩欧美一区二区| 麻豆精品国产传媒mv男同| 岛国一区二区三区| 欧美日韩一区二区在线观看| 日韩一区二区三区电影| 中文字幕在线不卡| 亚洲一区二区三区精品在线| 久久99精品久久久久久国产越南 | 欧美日韩国产小视频| 日韩精品一区二区三区视频在线观看| 欧美国产精品专区| 亚洲成a人v欧美综合天堂下载 | 亚洲柠檬福利资源导航| 日本大胆欧美人术艺术动态| 成人一级黄色片| 678五月天丁香亚洲综合网| 中文字幕av在线一区二区三区| 亚洲激情五月婷婷| 国产成a人无v码亚洲福利| 欧美三级在线播放| 国产精品久久久久久妇女6080| 日本三级韩国三级欧美三级| fc2成人免费人成在线观看播放| 7777精品伊人久久久大香线蕉超级流畅 | 7777精品伊人久久久大香线蕉经典版下载 | 一区精品在线播放| 美女视频一区在线观看| 91日韩精品一区| 久久亚洲影视婷婷| 天天av天天翘天天综合网| 成人av手机在线观看| 日韩欧美中文一区| 亚洲成人三级小说| 成人app在线观看| 国产三级欧美三级| 紧缚捆绑精品一区二区| 欧美精品亚洲二区| 一区二区三区国产豹纹内裤在线| 成人丝袜高跟foot| 久久网这里都是精品| 精品一区二区免费在线观看| 欧美精品久久一区二区三区| 一区二区激情小说| 日本韩国精品在线| 国产精品电影一区二区| 成人在线视频首页| 国产亚洲综合色| 国产精品一二三| 久久色在线观看| 国产白丝精品91爽爽久久| 久久亚洲综合av| 国产精品456露脸| 欧美电影免费观看高清完整版在线观看 | 激情五月播播久久久精品| 91精品国产综合久久精品图片| 亚洲无人区一区| 在线电影国产精品| 日欧美一区二区| 日韩欧美高清在线|