init
This commit is contained in:
@@ -158,59 +158,7 @@ u8 exf_getfree(u8 *drv,u32 *total,u32 *free)
|
||||
// <20><><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>,0XFF,ǿ<><C7BF><EFBFBD>˳<EFBFBD>
|
||||
u8 exf_copy(u8(*fcpymsg)(u8*pname,u8 pct,u8 mode),u8 *psrc,u8 *pdst,u32 totsize,u32 cpdsize,u8 fwmode)
|
||||
{
|
||||
u8 res;
|
||||
u16 br=0;
|
||||
u16 bw=0;
|
||||
FIL *fsrc=0;
|
||||
FIL *fdst=0;
|
||||
u8 *fbuf=0;
|
||||
u8 curpct=0;
|
||||
unsigned long long lcpdsize=cpdsize;
|
||||
fsrc=(FIL*)mymalloc(SRAMEX,sizeof(FIL));//<2F><><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
||||
fdst=(FIL*)mymalloc(SRAMEX,sizeof(FIL));
|
||||
fbuf=(u8*)mymalloc(SRAMEX,8192);
|
||||
if(fsrc==NULL||fdst==NULL||fbuf==NULL)res=100;//ǰ<><C7B0><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>fatfs
|
||||
else
|
||||
{
|
||||
if(fwmode==0)fwmode=FA_CREATE_NEW;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
else fwmode=FA_CREATE_ALWAYS; //<2F><><EFBFBD>Ǵ<EFBFBD><C7B4>ڵ<EFBFBD><DAB5>ļ<EFBFBD>
|
||||
|
||||
res=f_open(fsrc,(const TCHAR*)psrc,FA_READ|FA_OPEN_EXISTING); //<2F><><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>ļ<EFBFBD>
|
||||
if(res==0)res=f_open(fdst,(const TCHAR*)pdst,FA_WRITE|fwmode); //<2F><>һ<EFBFBD><D2BB><EFBFBD>ɹ<F2BFAAB3>,<2C>ſ<EFBFBD>ʼ<EFBFBD>ڶ<F2BFAAB5><DAB6><EFBFBD>
|
||||
if(res==0)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<F2BFAAB3><C9B9><EFBFBD>
|
||||
{
|
||||
if(totsize==0)//<2F><><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
totsize=fsrc->obj.objsize;
|
||||
lcpdsize=0;
|
||||
curpct=0;
|
||||
}else curpct=(lcpdsize*100)/totsize; //<2F>õ<EFBFBD><C3B5>°ٷֱ<D9B7>
|
||||
fcpymsg(psrc,curpct,0X02); //<2F><><EFBFBD>°ٷֱ<D9B7>
|
||||
while(res==0)//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
||||
{
|
||||
res=f_read(fsrc,fbuf,8192,(UINT*)&br); //Դͷ<D4B4><CDB7><EFBFBD><EFBFBD>512<31>ֽ<EFBFBD>
|
||||
if(res||br==0)break;
|
||||
res=f_write(fdst,fbuf,(UINT)br,(UINT*)&bw); //д<><D0B4>Ŀ<EFBFBD><C4BF><EFBFBD>ļ<EFBFBD>
|
||||
lcpdsize+=bw;
|
||||
if(curpct!=(lcpdsize*100)/totsize)//<2F>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>°ٷֱ<D9B7>
|
||||
{
|
||||
curpct=(lcpdsize*100)/totsize;
|
||||
if(fcpymsg(psrc,curpct,0X02))//<2F><><EFBFBD>°ٷֱ<D9B7>
|
||||
{
|
||||
res=0XFF;//ǿ<><C7BF><EFBFBD>˳<EFBFBD>
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(res||bw<br)break;
|
||||
}
|
||||
f_close(fsrc);
|
||||
f_close(fdst);
|
||||
}
|
||||
}
|
||||
myfree(SRAMEX,fsrc);//<2F>ͷ<EFBFBD><CDB7>ڴ<EFBFBD>
|
||||
myfree(SRAMEX,fdst);
|
||||
myfree(SRAMEX,fbuf);
|
||||
return res;
|
||||
return 1;
|
||||
}
|
||||
|
||||
//<2F>õ<EFBFBD>·<EFBFBD><C2B7><EFBFBD>µ<EFBFBD><C2B5>ļ<EFBFBD><C4BC><EFBFBD>
|
||||
|
||||
Reference in New Issue
Block a user