2019-07-20 18:45发布
正点原子 发表于 2016-10-13 10:22 这是文件夹复制函数哦。在我们综合实验的common.c里面,有参考代码: [mw_shl_code=cpp,true]//系统更新 ...
MonkeyD路飞 发表于 2016-11-12 09:34 这个综合实验怎么搜不到。。
最多设置5个标签!
[mw_shl_code=cpp,true]//系统更新
//fcpymsg:百分比显示函数
//src:文件来源,"0:",SD卡;"2:",U盘.
//返回值:0,正常
// 其他,错误,0XFF强制退出了
u8 app_system_update(u8(*fcpymsg)(u8*pname,u8 pct,u8 mode),u8* src)
{
u32 totsize=0;
u32 cpdsize=0;
u8 res=0;
u8 *p_app;
u8 *p_spb;
u8 *p_lwip;
u8 rval;
p_app=gui_memin_malloc(100);
p_spb=gui_memin_malloc(100);
p_lwip=gui_memin_malloc(100);
if(p_lwip==NULL)
{
gui_memin_free(p_app);
gui_memin_free(p_spb);
gui_memin_free(p_lwip);
return 1;//内存申请失败
}
sprintf((char*)p_app,"%s%s",src,APP_SYSTEM_APPPATH);
sprintf((char*)p_spb,"%s%s",src,APP_SYSTEM_SPBPATH);
sprintf((char*)p_lwip,"%s%s",src,APP_SYSTEM_LWIPPATH);
totsize+=exf_fdsize(p_app);//得到三个文件夹的总大小
totsize+=exf_fdsize(p_spb);
totsize+=exf_fdsize(p_lwip);
printf("totsize:%d ",totsize);
f_mkdir((const TCHAR *)APP_SYSTEM_DSTPATH);//强制创建目标文件夹
res=exf_fdcopy(fcpymsg,p_app,(u8*)APP_SYSTEM_DSTPATH,&totsize,&cpdsize,1);
if(res)
{
if(res!=0xff)rval=1; //第一阶段复制出错
else rval=0XFF; //强制退出
}else //第一阶段OK,启动第二阶段
{
res=exf_fdcopy(fcpymsg,p_spb,(u8*)APP_SYSTEM_DSTPATH,&totsize,&cpdsize,1);
if(res)
{
if(res!=0xff)rval=2; //第二阶段复制出错
else rval=0XFF; //强制退出
}else //第二阶段OK,启动第三阶段
{
res=exf_fdcopy(fcpymsg,p_lwip,(u8*)APP_SYSTEM_DSTPATH,&totsize,&cpdsize,1);
if(res)
{
if(res!=0xff)rval=3; //第三阶段复制出错
else rval=0XFF; //强制退出
}else //第三阶段OK,启动第四阶段
{
rval=0; //整个过程无错误,无强制退出
}
}
}
gui_memin_free(p_app);
gui_memin_free(p_spb);
gui_memin_free(p_lwip);
return rval;
}[/mw_shl_code]
好的,多谢原子哥!
在图片实验还是汉字实验的
一周热门 更多>