适用机型:使用SKINTOOL开发OSD的MSTAR方案
我们经常有加过通过U盘来做整个数据的备份和恢复的功能。这个比较常见,有现成的代码,这里就不多说了。今天我主要讲下如果只备份和恢复个别数据该什么做。其实,这个功能说来也比较简单,只是在备份和恢复数据时要注意起始地址的书写格式。现将代码贴出来,供参考。
typedef struct //added by Weng 2012.11.16
{
U8 u8BackupWhiteBalanceRo;
U8 u8BackupWhiteBalanceGo;
U8 u8BackupWhiteBalanceBo;
// U8 u8BackupWhiteBalanceRg;
// U8 u8BackupWhiteBalanceGg;
// U8 u8BackupWhiteBalanceBg;
S8 s8BackupCont_Min;
U8 u8BackupCont_Max;
S8 s8BackupCont_View;
// S8 s8BackupCont_Min_PC;
// U8 u8BackupCont_Max_PC;
S8 s8BackupBright_Min;
U8 u8BackupBright_Max;
S8 s8BackupBright_View;
// S8 s8BackupVD_Stan_Cont;
// S8 s8BackupVD_Stan_Bright;
S8 s8BackupVD_View_Cust_Cont;
S8 s8BackupVD_View_Cust_Bright ;
S8 s8BackupEnergySaverLevel1;
S8 s8BackupEnergySaverLevel1_2 ;
}ST_BACKUPPARA;
INTERFACE ST_BACKUPPARA BackupPara; BOOLEAN MApp_BackupGenPara(void)
{
#if ENABLE_WBBeforeUpDate
。。。。。。
EE_PRINTF("HandleNo is 0x%x\n",u8HandleNo);
if(u8HandleNo != FCTRL_INVALID_FILE_HANDLE)
{
//MApp_SaveGenSetting(); //General setting
MsOS_DelayTask(10);
EE_PUTSTR("start write\n");
msAPI_FCtrl_FileWrite(u8HandleNo,_VA2PA((U32)(&(BackupPara.u8BackupWhiteBalanceRo))), sizeof(BackupPara));
EE_PUTSTR("Save to file:msAPI_FCtrl_FileClose\n");
msAPI_FCtrl_FileClose(u8HandleNo);
}
#endif
return TRUE;
} BOOLEAN MApp_RestoreGenPara(void)
{
#if ENABLE_WBBeforeUpDate
。。。。。。
if (MApp_UsbSaveData_SearchFileInRoot((U8 *)u8FileName,&g_fileEntry))
{
u8HandleNo = msAPI_FCtrl_FileOpen(&g_fileEntry,OPEN_MODE_FOR_READ); if(u8HandleNo != FCTRL_INVALID_FILE_HANDLE)
{
EE_PUTSTR("current file i**ist\r\n");
msAPI_FCtrl_FileRead(u8HandleNo,_VA2PA((U32)(&(BackupPara.u8BackupWhiteBalanceRo))), sizeof(BackupPara));
EE_PUTSTR("Close file: msAPI_FCtrl_FileClose\n" );
msAPI_FCtrl_FileClose(u8HandleNo);
}
else
{
EE_PUTSTR("Open file fail\n");
// UpdateFailed
FAILIDSET(FAIL_MODE_UPDATE_FAILED_WB);
MAPP_FailMode_Menu();
//printf("\r\nEnter failmode");
return FALSE;
}
}
else
{
EE_PUTSTR("database file is not exist\r\n");
// Invalid image
FAILIDSET(FAIL_MODE_INVALID_IMAGE_WB);
MAPP_FailMode_Menu();
//printf("\r\nEnter failmode");
return FALSE;
}
Mapp_RestoreServiceParaForWB();
#endif
return TRUE;
}
|