diff --git a/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c index 1d6db7df6..eaf9abd7b 100755 --- a/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c +++ b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c @@ -51,11 +51,20 @@ SF_ST_MMC_DEV *pMMCDev = NULL; void SF_SetMMCDev(SF_ST_MMC_DEV *pDev) { + if(pDev == NULL) + { + return; + } + pMMCDev = pDev; } SF_ST_MMC_DEV *SF_GetMMCDev(void) { + if(pMMCDev == NULL) + { + return NULL; + } return pMMCDev; } @@ -87,13 +96,20 @@ void SF_StrgUnInit(void) sf_mmc_dev[i] = NULL; } } - free(pMMCDev); - pMMCDev = NULL; + + if(pMMCDev != NULL) + { + free(pMMCDev); + pMMCDev = NULL; + } } int SF_GetMMCDevHandle(MMC_DEV_TYPE dev_type) { - return sf_mmc_dev[dev_type]->dcf_handle; + if(sf_mmc_dev != NULL) { + return sf_mmc_dev[dev_type]->dcf_handle; + } + return 0; } void SF_StrgSetDcfHandle(UINT32 strg_id, UINT32 handle) @@ -105,6 +121,7 @@ static UINT32 SF_StrgSpaceCheckFull(MMC_DEV_TYPE mmc_dev) { UINT64 diskFree = 0; UINT32 ret = 0; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); #if HUNTING_CAMERA_MCU == ENABLE if(sf_get_power_off_flag() || sf_is_usb_flag()) { @@ -131,6 +148,15 @@ static UINT32 SF_StrgSpaceCheckFull(MMC_DEV_TYPE mmc_dev) { ret = 0; } + + if(sf_mmc_dev != NULL) { + sf_mmc_dev[mmc_dev]->space_state = ret == 0 ? MMC_DEV_SPACE_STATE_ENOUGH : MMC_DEV_SPACE_STATE_NO_ENOUGH; + } + + for(int i = 0; i < MMC_DEV_MAX_NUM; i++) + { + sf_mmc_dev[i]->loop_state = puiPara->SdLoopSwitch == 1 ? MMC_DEV_LOOP_STATE_ON : MMC_DEV_LOOP_STATE_OFF; + } //MLOGD("[%s:%d]sd card diskFree=%lluM\n", __FUNCTION__, __LINE__, diskFree); return ret; }