From cac4816d5cca99d54bb7975d9652fef315391413 Mon Sep 17 00:00:00 2001 From: "sober.song" Date: Wed, 10 Jan 2024 15:34:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96mmc=E8=AE=BE=E5=A4=87space?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=92=8Cloop=E7=8A=B6=E6=80=81=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cardv/SrcCode/System/SF_SysStrgMng.c | 32 +++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) 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; }