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 }