diff --git a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c index a45b526a9..c2db86c67 100644 --- a/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c @@ -382,17 +382,33 @@ void sf_log_sava(void) UIMenuStoreInfo *puiPara = sf_ui_para_get(); struct tm current_time2 = {0}; char tmp[64] = {'\0'}; - if((((puiPara->DebugMode) || (puiPara->AutoLogSwitch)) && (!sf_is_usb_flag())) && ((TRUE != sf_is_card_full()))) + SF_ST_MMC_DEV *mmc_dev = SF_GetMMCDev(); + if((((puiPara->DebugMode) || (puiPara->AutoLogSwitch)) && (!sf_is_usb_flag())) && ((mmc_dev != NULL))) { DBG_DUMP("LogFile_Close ...\n"); + if(mmc_dev->dcf_handle < 0) + { + DBG_ERR("dcf_handle err\n"); + return; + } current_time2 = hwclock_get_time(TIME_ID_CURRENT); - snprintf(tmp, sizeof(tmp), "A:\\LOG\\%lu%02lu%02lu%02lu%02lu%02lu_%d.log", current_time2.tm_year, current_time2.tm_mon, current_time2.tm_mday, current_time2.tm_hour, current_time2.tm_min, current_time2.tm_sec,sf_get_power_on_mode()); - // LogFile_Suspend(); - LogFile_DumpToFile(tmp); + if((mmc_dev->dev_type == MMC_DEV_SD) && (TRUE != sf_is_card_full())) + { + snprintf(tmp, sizeof(tmp), "A:\\LOG\\%lu%02lu%02lu%02lu%02lu%02lu_%d.log", current_time2.tm_year, current_time2.tm_mon, current_time2.tm_mday, current_time2.tm_hour, current_time2.tm_min, current_time2.tm_sec,sf_get_power_on_mode()); + LogFile_DumpToFile(tmp); + } + else if((TRUE != sf_is_emmc_full())) + { + snprintf(tmp, sizeof(tmp), "B:\\LOG\\%lu%02lu%02lu%02lu%02lu%02lu_%d.log", current_time2.tm_year, current_time2.tm_mon, current_time2.tm_mday, current_time2.tm_hour, current_time2.tm_min, current_time2.tm_sec,sf_get_power_on_mode()); + LogFile_DumpToFile(tmp); + } + // LogFile_Close(); + DBG_DUMP("LogFile:%s\n",tmp); system("rm -rf /mnt/sd/LOG/*dummy*");//Clear intermediate files. + system("rm -rf /mnt/sd2/LOG/*dummy*");//Clear intermediate files. system("sync"); } #endif diff --git a/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c b/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c index 4c36ade86..3f00b7ec8 100644 --- a/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c +++ b/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c @@ -87,6 +87,7 @@ #include #include "sf_led.h" #include "sf_battery.h" +#include "sf_sd_common.h" #endif //dis @@ -168,14 +169,35 @@ void sf_log_sava(void) struct tm current_time2 = {0}; char tmp[64] = {'\0'}; ER ret = 0; + SF_RTOS_ST_MMC_DEV *mmc_dev = NULL; if((((puiPara->DebugMode) || (puiPara->AutoLogSwitch)) && (!sf_is_usb_flag())) && ((TRUE != sf_is_card_full()) || (TRUE != sf_is_emmc_full()))) { - + #if USE_RTOS_MMC_CHECK + mmc_dev = SF_RtosStrgCheckWorkableDev(); + if(mmc_dev == NULL) + { + DBG_ERR("No MMC_Dev Can use!\n"); + return; + } + if(mmc_dev->dcf_handle < 0) + { + DBG_ERR("dcf_handle err\n"); + return; + } + #endif current_time2 = hwclock_get_time(TIME_ID_CURRENT); - snprintf(tmp, sizeof(tmp), "A:\\LOG\\%lu%02lu%02lu%02lu%02lu%02lu_%d.log", current_time2.tm_year, current_time2.tm_mon, current_time2.tm_mday, current_time2.tm_hour, current_time2.tm_min, current_time2.tm_sec,sf_get_power_on_mode()); - // LogFile_Suspend(); - ret = LogFile_DumpToFile(tmp); + if((mmc_dev->dev_type == MMC_DEV_SD) && (TRUE != sf_is_card_full())) + { + snprintf(tmp, sizeof(tmp), "A:\\LOG\\%lu%02lu%02lu%02lu%02lu%02lu_%d.log", current_time2.tm_year, current_time2.tm_mon, current_time2.tm_mday, current_time2.tm_hour, current_time2.tm_min, current_time2.tm_sec,sf_get_power_on_mode()); + ret = LogFile_DumpToFile(tmp); + } + else if((TRUE != sf_is_emmc_full())) + { + snprintf(tmp, sizeof(tmp), "B:\\LOG\\%lu%02lu%02lu%02lu%02lu%02lu_%d.log", current_time2.tm_year, current_time2.tm_mon, current_time2.tm_mday, current_time2.tm_hour, current_time2.tm_min, current_time2.tm_sec,sf_get_power_on_mode()); + ret = LogFile_DumpToFile(tmp); + } + // LogFile_Close(); DBG_DUMP("LogFile_Close:%s ret:%d\n", tmp, ret); }