|
for(i = 0; i < 22; i++)
{
sprintf(bufU, "U0:\\huand\\JPEG\\base\\%02d.jpg", i);
sprintf(bufN, "N0:\\huand\\JPEG\\base\\%02d.jpg", i);
fdelete(bufN, NULL);
fpU = fopen(bufU, "r");
fpN = fopen(bufN, "w");
while(!feof(fpU))
{
fread(&temp, 1, 1, fpU);
fwrite(&temp, 1, 1, fpN);
}
fclose(fpU);
fclose(fpN);
}
如上代码,发现这样拷贝文件,有可能会不成功。比如NAND里已经有这个文件了,就无法覆盖。除非我在开头加入fformat。如果没有加fformat,而是加入红色字体的fdelete,先把文件删除再拷贝,就有可能导致硬件故障中断。。百思不得其解。硬汉兄帮忙分析一下?如下是我的NAND(MT29F4G08)配置,不清楚是否正确,也请帮忙看一下:
/* hnand1.Init */
hnand1.Init.NandBank = FMC_NAND_BANK3;
hnand1.Init.Waitfeature = FMC_NAND_WAIT_FEATURE_DISABLE;
hnand1.Init.MemoryDataWidth = FMC_NAND_MEM_BUS_WIDTH_8;
hnand1.Init.EccComputation = FMC_NAND_ECC_ENABLE;
hnand1.Init.ECCPageSize = FMC_NAND_ECC_PAGE_SIZE_2048BYTE;
hnand1.Init.TCLRSetupTime = 1;
hnand1.Init.TARSetupTime = 1;
/* hnand1.Config */
hnand1.Config.PageSize = 2048;
hnand1.Config.SpareAreaSize = 64;
hnand1.Config.BlockSize = 64;
hnand1.Config.BlockNbr = 2048;
hnand1.Config.PlaneNbr = 2;
hnand1.Config.PlaneSize = 4096;
hnand1.Config.ExtraCommandEnable = DISABLE;
/* ComSpaceTiming */
ComSpaceTiming.SetupTime = 3;
ComSpaceTiming.WaitSetupTime = 5;
ComSpaceTiming.HoldSetupTime = 4;
ComSpaceTiming.HiZSetupTime = 5;
/* AttSpaceTiming */
AttSpaceTiming.SetupTime = 3;
AttSpaceTiming.WaitSetupTime = 5;
AttSpaceTiming.HoldSetupTime = 4;
AttSpaceTiming.HiZSetupTime = 5;
|
|