diff --git a/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c index b0f60ce24..e75b8d901 100755 --- a/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c +++ b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c @@ -130,18 +130,14 @@ static UINT32 SF_StrgSpaceCheckFull(MMC_DEV_TYPE mmc_dev) } #endif /*check disk free size*/ - if(mmc_dev == MMC_DEV_SD) + if((mmc_dev == MMC_DEV_SD) && (sf_in_card_exist() == TRUE)) { - if(sf_in_card_exist()) - { - diskFree = FileSys_GetDiskInfoEx('A', FST_INFO_FREE_SPACE); - } + diskFree = FileSys_GetDiskInfoEx('A', FST_INFO_FREE_SPACE); } - else + else if((mmc_dev == MMC_DEV_EMMC) && (sf_in_emmc_exist())) { diskFree = FileSys_GetDiskInfoEx('B', FST_INFO_FREE_SPACE); } - diskFree = diskFree/1024/1024; if(diskFree < MIN_DISK_FREE_SIZE_MB) /* 30MB */ diff --git a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c index c264be46b..9e93efb2c 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c @@ -721,14 +721,11 @@ UINT32 PhotoExe_GetFreePicNum(void) //uiFreeSpace = FileSys_GetDiskInfo(FST_INFO_FREE_SPACE); #if USE_MMC_DEV_CHECK - if(mmc_dev->dev_type == MMC_DEV_SD) + if((mmc_dev->dev_type == MMC_DEV_SD) && (sf_in_card_exist() == TRUE)) { - if(sf_in_card_exist() == TRUE) - { - uiFreeSpace = FileSys_GetDiskInfoEx('A', FST_INFO_FREE_SPACE); - } + uiFreeSpace = FileSys_GetDiskInfoEx('A', FST_INFO_FREE_SPACE); } - else if(mmc_dev->dev_type == MMC_DEV_EMMC) + else if((mmc_dev->dev_type == MMC_DEV_EMMC) && (sf_in_emmc_exist())) { uiFreeSpace = FileSys_GetDiskInfoEx('B', FST_INFO_FREE_SPACE); } @@ -792,14 +789,11 @@ UINT32 PhotoExe_GetTotalPicNum(void) #if USE_MMC_DEV_CHECK - if(mmc_dev->dev_type == MMC_DEV_SD) + if((mmc_dev->dev_type == MMC_DEV_SD) && (sf_in_card_exist() == TRUE)) { - if(sf_in_card_exist() == TRUE) - { - uiSpace = FileSys_GetDiskInfoEx('A', FST_INFO_DISK_SIZE); - } + uiSpace = FileSys_GetDiskInfoEx('A', FST_INFO_DISK_SIZE); } - else if(mmc_dev->dev_type == MMC_DEV_EMMC) + else if((mmc_dev->dev_type == MMC_DEV_EMMC) && (sf_in_emmc_exist())) { uiSpace = FileSys_GetDiskInfoEx('B', FST_INFO_DISK_SIZE); } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c index cbdec2782..a9aafb0b7 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c @@ -740,8 +740,8 @@ static void update_sd_emmc_status(void) UINT64 diskSizeSd = 0; UINT64 diskFreeSd = 0; - UINT64 diskSizeEmmc = FileSys_GetDiskInfoEx('B', FST_INFO_DISK_SIZE); - UINT64 diskFreeEmmc = FileSys_GetDiskInfoEx('B', FST_INFO_FREE_SPACE); + UINT64 diskSizeEmmc = 0; + UINT64 diskFreeEmmc = 0; char * textLabel; char * textLabelError; UINT16 idLeft; @@ -749,7 +749,11 @@ static void update_sd_emmc_status(void) BOOL setWarning = false; BOOL showError = true; - + if(sf_in_emmc_exist()) + { + diskSizeEmmc = FileSys_GetDiskInfoEx('B', FST_INFO_DISK_SIZE); + diskFreeEmmc = FileSys_GetDiskInfoEx('B', FST_INFO_FREE_SPACE); + } lv_obj_set_hidden(label_7_scr_uiflowphoto, showError); //lv_obj_set_pos(label_7_scr_uiflowphoto, 65, 171); lv_label_set_text(label_7_scr_uiflowphoto, ""); @@ -805,8 +809,12 @@ static void update_sd_emmc_status(void) } else{ - diskSizeSd = FileSys_GetDiskInfoEx('A', FST_INFO_DISK_SIZE); - diskFreeSd = FileSys_GetDiskInfoEx('A', FST_INFO_FREE_SPACE); + if(sf_in_card_exist() == TRUE) + { + diskSizeSd = FileSys_GetDiskInfoEx('A', FST_INFO_DISK_SIZE); + diskFreeSd = FileSys_GetDiskInfoEx('A', FST_INFO_FREE_SPACE); + } + //printf("[%s]sd card disk size: %lld,free size: %lld\n", __FUNCTION__, diskSizeSd, diskFreeSd); //printf("[%s]emmc card disk size: %lld,free size: %lld\n", __FUNCTION__, diskSizeEmmc, diskFreeEmmc); diff --git a/code/lib/source/sifar/code/include/sf_sd_common.h b/code/lib/source/sifar/code/include/sf_sd_common.h index 708c03366..ad70ad5ff 100644 --- a/code/lib/source/sifar/code/include/sf_sd_common.h +++ b/code/lib/source/sifar/code/include/sf_sd_common.h @@ -16,7 +16,7 @@ typedef BOOL (*SF_CALLBACK_SD_CMD)(void); void sf_sd_exist_reg_cb(SF_CALLBACK_SD_CMD fpCB); BOOL sf_in_card_exist(void); - +SINT32 sf_in_emmc_exist(void); void sf_set_card_statu(UINT32 val); UINT32 sf_get_card_statu(void); diff --git a/code/lib/source/sifar/code/source/common/sf_sd_common.c b/code/lib/source/sifar/code/source/common/sf_sd_common.c index 39a4ae4c9..2205e3c58 100644 --- a/code/lib/source/sifar/code/source/common/sf_sd_common.c +++ b/code/lib/source/sifar/code/source/common/sf_sd_common.c @@ -68,6 +68,13 @@ BOOL sf_in_card_exist(void) } +SINT32 sf_in_emmc_exist(void) +{ + if (access("/dev/mmcblk1p1", F_OK) == SUCCESS) { + return 1; + } + return 0; +} void sf_set_card_statu(UINT32 val) { formatSD = val;