www.pudn.com > NAND.rar > NandTest.c


 
/*************************************************************** 
Copyright(c) 2002 VIA Technologies, Inc. All Rights Reserved. 
 
Filename: Main.C 
 
Description: 
platform : fpga_top.5-2-19-18.bit 
 
*****************************************************************/ 
#include  
#include "Common.h" 
#include"FALUserDirective.h" 
#include"TranslationModule.h" 
#include "NAND_DRV.h" 
#include "NandFAT.h" 
 
 
 
 
 
#if 0 
UINT8 ReadBuff[512] ; 
UINT8 WriteBuff[512] ; 
UINT8 ReadOOB[16] ; 
UINT8 WriteOOB[16] ; 
#endif 
 
int NandTest() 
{ 
	NFTL_Return res; 
	UINT8 Buffer[SECTOR_SIZE]; 
	UINT32 VirtualAddress = 0; 
	UINT32 Index, i; 
	UINT32 FileSize; 
	UINT8 ident = 1; 
 
	UINT32 pages ; 
	UINT32 offsets; 
	UINT8 *pWriteBuf; 
	UINT32 udAddress = 0 ; 
 
	NAND_Init(); 
#if 0 
	res = NandChipFastErase(); 
	if (res != 1) 
	{ 
		ident = 0 ; 
	} 
#endif 
	//res = NandFATFormat(); 
	//res = NFTL_Initialize(); 
	if (res == FAILURE) 
	{ 
		ident = 0 ; 
	} 
#if 1 
	res = NandFATFormat(); 
	if (res == FAILURE) 
	{ 
		ident = 0 ; 
	} 
	res = NFTL_Unmount(); 
	if (res != SUCCESS) 
	{ 
		ident = 0 ; 
	} 
#endif 
#if 0 
res =  NandInitializeFat();//gNandFATSYS 
if (res == FAILURE) 
{ 
ident=0 ; 
} 
 
#endif 
#if 1 
	//Suppose to write a file containing as data 0xAA 
	memset(Buffer,0xAA,SECTOR_SIZE); 
	FileSize = 200; 
 
	for (i = 0; i < 512; i++) 
		Buffer[i] = i ; 
	//initialize the FileSize equal to 36 sectors (the file dimension in byte is //35x512byte= 18kbytes) 
 
	//write file in Flash 
	for (VirtualAddress = 0; VirtualAddress < FileSize; VirtualAddress ++) 
	{ 
		//write Sector 
		Buffer[0] = Buffer[0] + VirtualAddress ; 
		res = NFTL_WriteSector(VirtualAddress,Buffer); 
		if (res != SUCCESS) 
		{ 
			ident = 0 ; 
		} 
	} 
	// read the file previously written to verify if it is correct 
	for (VirtualAddress = 0; VirtualAddress < FileSize; VirtualAddress ++) 
	{ 
		//write Sector 
		res = NFTL_ReadSector(VirtualAddress,Buffer); 
		if (res != SUCCESS) 
		{ 
			ident = 0 ; 
		} 
	} 
	for (i = 0; i < 512; i++) 
		Buffer[i] = i + 3 ; 
	// Now suppose to re-write the file 
	for (VirtualAddress = 0; VirtualAddress < FileSize; VirtualAddress ++) 
	{ 
		//write Sector 
		Buffer[0] = Buffer[0] + VirtualAddress ; 
		res = NFTL_WriteSector(VirtualAddress,Buffer); 
		if (res != SUCCESS) 
		{ 
			ident = 0 ; 
		} 
	} 
	//To erase the old data generated by re-write operation the user can call Defrag 
	res = Defrag(); 
	if (res != SUCCESS) 
	{ 
		ident = 0 ; 
	} 
	//Call Unmount STNFTL to free the space allocated in RAM to manage the data 
	res = NFTL_Unmount(); 
	if (res != SUCCESS) 
	{ 
		ident = 0 ; 
	} 
 
	return 0; 
#endif 
}