⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flash_m.c

📁 基于凌阳GPCE061
💻 C
字号:
extern unsigned int R_TESTBuffer;
extern unsigned int SP_Flash_ReadType();
extern unsigned int SP_Flash_ReadStatus();
extern void  SP_ClearWatchDog();
extern void  SP_Flash_Initial();
extern void  SP_Flash_ReadBuffer(unsigned long,unsigned int*,unsigned int);
extern void  SP_Flash_WritePage(unsigned long,unsigned int*);
extern void  SP_Flash_EraseBlock(unsigned long);
unsigned int SP_Flash_Format(unsigned long R_Address,unsigned int R_StartBlock,unsigned int* R_Point,unsigned int R_Count);
void SP_Test_Flash()
{
	unsigned int i,j;
	unsigned int* R_Point;
	unsigned long R_Address;
	SP_Flash_ReadBuffer(0,&i,1);
	if(i==0x2367)
		return;
	SP_Flash_EraseBlock(0);
	j=0;
	while(j!=0x6000)
	{
		j=SP_Flash_ReadStatus();
		j&=0x6000;
	}
	R_Point=&R_TESTBuffer;
	*R_Point=0x2367;
	R_Point++;
	i=SP_Flash_Format(0x20000,1,R_Point,1023);
	R_Point=&R_TESTBuffer;
	SP_Flash_WritePage(0,R_Point);
	j=0;
	while(j!=0x6000)
	{
		j=SP_Flash_ReadStatus();
		j&=0x6000;
	}	

	R_Point=&R_TESTBuffer;
	for(j=0;j<1024;j++)
	{
		*R_Point=0;
		R_Point++;
	}
	R_Point=&R_TESTBuffer;
	R_Address=(unsigned long) i;
	R_Address*=0x20000;
	j=2048-i;
	i=SP_Flash_Format(R_Address,i,R_Point,j);
	SP_Flash_WritePage(0x0800,R_Point);
	j=0;
	while(j!=0x6000)
	{
		j=SP_Flash_ReadStatus();
		j&=0x6000;
	}
}
unsigned int SP_Flash_Format(unsigned long R_Address,unsigned int R_StartBlock,unsigned int* R_Point,unsigned int R_Count)	
{
	unsigned int i,j,k;
	j=R_StartBlock;
	k=0;
	while(1)
	{
		SP_ClearWatchDog();
		SP_Flash_EraseBlock(R_Address);
		i=0x0000;
		while(i!=0x6000)
		{
			i=SP_Flash_ReadStatus();
			i&=0x6000;
		}
		i=SP_Flash_ReadStatus();
		i&=0x0100;
		if(i==0)
		{
			*R_Point=j;
			R_Point++;
			k++;
		}
		j++;
		R_Address+=0x00020000;
		if(k>=R_Count)
			break;
		if(j>=2048)
			break;
	}
	return j;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -