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

📄 rom_test.c

📁 uboot底层驱动
💻 C
字号:
#include "my_printf.h"#include "erase_copy.h"#define		ERASEBLOCKSIZE		0x2000#define addr_base 0x20000000int ERRl = 0;int adrrl_test(int addr_start, int addr_end){	int i = 0;	int k;		int count = (addr_end-addr_start+1) / ERASEBLOCKSIZE + 1; 		k =  (addr_start-addr_base) / ERASEBLOCKSIZE;	for (; i < count; i++)	{				NorFlash_unlock(addr_base + (k+i)*ERASEBLOCKSIZE);		NorFlash_bolckerase(addr_base + (k+i)*ERASEBLOCKSIZE);	}  for (i = 0; i<(addr_end-addr_start); i++, i++)		 NorFlash_write(addr_start+i, i);	for (i=0; i<(addr_end-addr_start); i++,i++)		if ( i != NorFlash_read(addr_start + i) )		{			my_printf("addr bus error\n\r");			ERRl = 1;			return 1;		}	ERRl = 0;}	int flash_test(int addr_start, int addr_end){	int i = 0;	int j = -1;	int erase_count;	//do {	for (; i < (addr_end-addr_start); )	{		if ( (erase_count = (addr_start+i-addr_base) / ERASEBLOCKSIZE) > j)		{			j = erase_count;			NorFlash_unlock(addr_base + erase_count*ERASEBLOCKSIZE);			NorFlash_bolckerase(addr_base + erase_count*ERASEBLOCKSIZE);			//my_printf("erase ok once time\n\r"); 		} 				NorFlash_write(addr_start+i, 0x5555);		NorFlash_write(addr_start+i+2, 0xaaaa);		if ( (NorFlash_read(addr_start+i) != 0x5555) || (NorFlash_read(addr_start+i+2) != 0xaaaa)  )		{			/*if ( NorFlash_read(addr_base+i) == 0xffff )			{				addr_test(addr_base, i+1+1);				if ( 1== ERR )					return 1;				my_printf("sdram 0x%x\r\n", i+1+1);					return 0;			}			else*/				ERRl = 1;		}		if ( 1==ERRl ) 		{			my_printf("sdram or data bus error\r\n");			return 1;		}		i++;		i++;		i++;		i++;	}		 i = 0;	 j = -1;		//do {	for (; i < (addr_end-addr_start); )	{		if ( (erase_count = (addr_start+i-addr_base) / ERASEBLOCKSIZE) > j)		{			j = erase_count;			NorFlash_unlock(addr_base + erase_count*ERASEBLOCKSIZE);			NorFlash_bolckerase(addr_base + erase_count*ERASEBLOCKSIZE);			//my_printf("erase ok once time\n\r"); 		}		NorFlash_write(addr_start+i, 0xaaaa);		NorFlash_write(addr_start+i+2, 0x5555);		if ( (NorFlash_read(addr_start+i) != 0xaaaa) || (NorFlash_read(addr_start+i+2) != 0x5555) )			ERRl = 1;		if ( 1==ERRl ) 		{			my_printf("sdram or data bus error\r\n");			return 1;		}		i++;		i++;		i++;		i++;	}	//adrrl_test(addr_start, addr_end);	if ( 0==ERRl )			my_printf("flash test ok!\n\r");				//} while (1);}							

⌨️ 快捷键说明

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