增加UIStorageCheckEMMC检测和UI格式化EMMC

This commit is contained in:
sober.song 2023-12-28 13:39:43 +08:00
parent b9e1fda503
commit 57420f5c15
12 changed files with 451 additions and 191 deletions

View File

@ -69,11 +69,11 @@ static UINT32 SF_StrgSpaceCheckFull(MMC_DEV_TYPE mmc_dev)
/*check disk free size*/ /*check disk free size*/
if(mmc_dev == MMC_DEV_SD) if(mmc_dev == MMC_DEV_SD)
{ {
diskFree = FileSys_GetDiskInfo(FST_INFO_FREE_SPACE); diskFree = FileSys_GetDiskInfoEx('A', FST_INFO_FREE_SPACE);
} }
else else
{ {
diskFree = FileSys_GetEMMCDiskInfo(FST_INFO_FREE_SPACE); diskFree = FileSys_GetDiskInfoEx('B', FST_INFO_FREE_SPACE);
} }
diskFree = diskFree/1024/1024; diskFree = diskFree/1024/1024;
@ -133,16 +133,6 @@ void SF_StrgRegister(SF_MESSAGE_BUF_S *pMessageBuf)
sf_mmc_dev[MMC_DEV_SD]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED; sf_mmc_dev[MMC_DEV_SD]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED;
} }
UINT32 isfull = SF_StrgSpaceCheckFull(MMC_DEV_SD);
if(isfull == 1)
{
sf_mmc_dev[MMC_DEV_SD]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH;
}
else if(isfull == 0)
{
sf_mmc_dev[MMC_DEV_SD]->space_state = MMC_DEV_SPACE_STATE_ENOUGH;
}
if(puiPara->SdLoopSwitch == 1) if(puiPara->SdLoopSwitch == 1)
{ {
sf_mmc_dev[MMC_DEV_SD]->loop_state = MMC_DEV_LOOP_STATE_ON; sf_mmc_dev[MMC_DEV_SD]->loop_state = MMC_DEV_LOOP_STATE_ON;
@ -173,16 +163,6 @@ void SF_StrgRegister(SF_MESSAGE_BUF_S *pMessageBuf)
sf_mmc_dev[MMC_DEV_EMMC]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED; sf_mmc_dev[MMC_DEV_EMMC]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED;
} }
UINT32 isfull = SF_StrgSpaceCheckFull(MMC_DEV_EMMC);
if(isfull == 1)
{
sf_mmc_dev[MMC_DEV_EMMC]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH;
}
else if(isfull == 0)
{
sf_mmc_dev[MMC_DEV_EMMC]->space_state = MMC_DEV_SPACE_STATE_ENOUGH;
}
if(puiPara->SdLoopSwitch == 1) if(puiPara->SdLoopSwitch == 1)
{ {
sf_mmc_dev[MMC_DEV_EMMC]->loop_state = MMC_DEV_LOOP_STATE_ON; sf_mmc_dev[MMC_DEV_EMMC]->loop_state = MMC_DEV_LOOP_STATE_ON;
@ -201,10 +181,32 @@ void SF_StrgRegister(SF_MESSAGE_BUF_S *pMessageBuf)
} }
} }
int SF_StrgCheckWorkableDev(void) SF_ST_MMC_DEV *SF_StrgCheckWorkableDev(void)
{ {
MMC_DEV_TYPE workable_dev = MMC_DEV_NO; MMC_DEV_TYPE workable_dev = MMC_DEV_NO;
MLOGD("sf mmc check workable dev start!!!\n"); //MLOGD("sf mmc check workable dev start!!!\n");
UINT32 isfull = 0;
isfull = SF_StrgSpaceCheckFull(MMC_DEV_EMMC);
if(isfull == 1)
{
sf_mmc_dev[MMC_DEV_EMMC]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH;
}
else if(isfull == 0)
{
sf_mmc_dev[MMC_DEV_EMMC]->space_state = MMC_DEV_SPACE_STATE_ENOUGH;
}
isfull = SF_StrgSpaceCheckFull(MMC_DEV_SD);
if(isfull == 1)
{
sf_mmc_dev[MMC_DEV_SD]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH;
}
else if(isfull == 0)
{
sf_mmc_dev[MMC_DEV_SD]->space_state = MMC_DEV_SPACE_STATE_ENOUGH;
}
if((sf_mmc_dev[MMC_DEV_SD]->node == MMC_DEV_NODE_STATE_NO_EXIST) && if((sf_mmc_dev[MMC_DEV_SD]->node == MMC_DEV_NODE_STATE_NO_EXIST) &&
(sf_mmc_dev[MMC_DEV_EMMC]->node == MMC_DEV_NODE_STATE_NO_EXIST)) (sf_mmc_dev[MMC_DEV_EMMC]->node == MMC_DEV_NODE_STATE_NO_EXIST))
{ {
@ -304,19 +306,21 @@ int SF_StrgCheckWorkableDev(void)
} }
} }
MLOGD("sf mmc check workable dev end, dev_id = %d!!!\n", workable_dev); //MLOGD("sf mmc check workable dev end, dev_id = %d!!!\n", workable_dev);
for(int i = 0; i < 2; i++) for(int i = 0; i < 2; i++)
{ {
sf_mmc_dev[i]->dev_type = workable_dev; sf_mmc_dev[i]->dev_type = workable_dev;
MLOGD("node:%d, mount:%d, space:%d, loop:%d\n", //MLOGD("node:%d, mount:%d, space:%d, loop:%d\n",
sf_mmc_dev[i]->node, sf_mmc_dev[i]->moumted_state, //sf_mmc_dev[i]->node, sf_mmc_dev[i]->moumted_state,
sf_mmc_dev[i]->space_state, sf_mmc_dev[i]->loop_state); //sf_mmc_dev[i]->space_state, sf_mmc_dev[i]->loop_state);
} }
if(workable_dev != MMC_DEV_NO)
if(workable_dev == MMC_DEV_NO)
{ {
MLOGD("dcf_handle = %d\n", sf_mmc_dev[workable_dev]->dcf_handle); return NULL;
return sf_mmc_dev[workable_dev]->dcf_handle;
} }
else else
return -1; {
return sf_mmc_dev[workable_dev];
}
} }

View File

@ -83,7 +83,8 @@ void SF_StrgInit(void);
void SF_StrgUnInit(void); void SF_StrgUnInit(void);
void SF_StrgSetDcfHandle(UINT32 strg_id, UINT32 handle); void SF_StrgSetDcfHandle(UINT32 strg_id, UINT32 handle);
void SF_StrgRegister(SF_MESSAGE_BUF_S *pMessageBuf); void SF_StrgRegister(SF_MESSAGE_BUF_S *pMessageBuf);
int SF_StrgCheckWorkableDev(void); SF_ST_MMC_DEV *SF_StrgCheckWorkableDev(void);
#endif //_SF_SYS_STRG_MNG_H_ #endif //_SF_SYS_STRG_MNG_H_

View File

@ -760,14 +760,14 @@ INT32 System_Set_Storage_Act_Drive(char drive)
DCF_HANDLE System_Get_DCF_Handle(void) DCF_HANDLE System_Get_DCF_Handle(void)
{ {
int dcf_handle = SF_StrgCheckWorkableDev(); SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
if(dcf_handle < 0) if(mmc_dev->dcf_handle < 0)
{ {
DBG_ERR("No MMC_Dev Can use!\n"); DBG_ERR("No MMC_Dev Can use!\n");
return -1; return -1;
} }
DBG_WRN("DCF_GET_HANDLE, %d\n", dcf_handle); DBG_WRN("DCF_GET_HANDLE, %d\n", mmc_dev->dcf_handle);
return dcf_handle; return mmc_dev->dcf_handle;
} }
CHAR System_Get_DCF_Disk_Drive(DCF_HANDLE handle) CHAR System_Get_DCF_Disk_Drive(DCF_HANDLE handle)

View File

@ -26,6 +26,7 @@
#include "UIApp/Network/EthCamAppCmd.h" #include "UIApp/Network/EthCamAppCmd.h"
#if (USE_DCF == ENABLE) #if (USE_DCF == ENABLE)
#include "DCF.h" #include "DCF.h"
#endif #endif
#include "Utility/SwTimer.h" #include "Utility/SwTimer.h"
@ -861,9 +862,103 @@ UINT32 BackgroundFormat(void)
UINT32 BackgroundFormatEmmc(void) UINT32 BackgroundFormatEmmc(void)
{ {
printf(" BackgroundFormatEmmc\n "); int ret;
return TRUE; DBG_FUNC_BEGIN("\r\n");
#if HUNTING_CAMERA_MCU == ENABLE
sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FORMAT_START);
//sf_sys_status_led_set(SF_LED_SYS_STATE_EXIT_GO_TO_PIR);
#endif
//DX_HANDLE pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT|DX_TYPE_CARD1);
//UINT32 hStrgObj = Dx_Getcaps(pStrgDev, STORAGE_CAPS_HANDLE, 0);
//ret = FileSys_FormatDisk((HNVT_STRG)hStrgObj, FALSE);
FS_HANDLE pStrgDXH = (FS_HANDLE)Dx_GetObject(DX_CLASS_STORAGE_EXT | DX_TYPE_CARD1);
//FS_HANDLE pStrgDXH = (FS_HANDLE)sdio_getStorageObject(STRG_OBJ_FAT1);
DBG_FUNC("pStrgDXH=0x%08X\r\n",pStrgDXH);
//#NT#2016/05/30#Lincy Lin -begin
//#NT#Support logfile function
#if (LOGFILE_FUNC==ENABLE)
#if HUNTING_CAMERA_MCU == ENABLE
UIMenuStoreInfo *puiPara = sf_ui_para_get();
if (puiPara->DebugMode)
{
LogFile_Suspend();
LogFile_Complete();
} }
#else
LogFile_Suspend();
LogFile_Complete();
#endif
#endif
//#NT#2016/05/30#Lincy Lin -end
ret = FileSys_FormatAndLabel('B', pStrgDXH, FALSE, NULL);
DBG_FUNC("Call FileSys_FormatDisk() ret=%d\r\n", ret);
if (ret == FST_STA_OK) {
// reset file ID (for FileDB)
#if USE_FILEDB
if (UI_GetData(FL_IsUseFileDB)) {
Ux_SendEvent(&UISetupObjCtrl, NVTEVT_FILEID_RESET, 0);
}
#endif
#if (USE_DCF == ENABLE)
//reset next id 100 , 1
DCF_SetNextID(MIN_DCF_DIR_NUM, MIN_DCF_FILE_NUM);
UI_SetData(FL_DCF_DIR_ID, MIN_DCF_DIR_NUM);
UI_SetData(FL_DCF_FILE_ID, MIN_DCF_FILE_NUM);
UI_SetData(FL_IsDCIMReadOnly, FALSE);
#endif
#if (PLAY_MODE==ENABLE)
if (System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_PLAYBACK) {
UIPlay_PlaySingle(PB_SINGLE_CURR);
}
#endif
//#NT#2016/05/30#Lincy Lin -begin
//#NT#Support logfile function
#if (LOGFILE_FUNC==ENABLE)
#if HUNTING_CAMERA_MCU == ENABLE
if (puiPara->DebugMode)
{
LogFile_ReOpen();
}
#else
LogFile_ReOpen();
#endif
#endif
//#NT#2016/05/30#Lincy Lin -end
// vos_util_delay_ms(1000);
SysMain_system("sync");
#if HUNTING_CAMERA_MCU == ENABLE
//vos_util_delay_ms(1000);
// sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FORMAT_SUCCESS);
// if(sf_get_pir_statu_flag()){
// vos_util_delay_ms(3000);
// }
#endif
}
else
{
#if HUNTING_CAMERA_MCU == ENABLE
// sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FORMAT_FAIL);
// if(sf_get_pir_statu_flag()){
// vos_util_delay_ms(3000);
// }
#endif
}
MovieExe_ResetFileSN();
#if HUNTING_CAMERA_MCU == ENABLE
// sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FORMAT_EXIT);
// if(sf_get_pir_statu_flag()){
// vos_util_delay_ms(1000);
// }
sf_set_card_statu(ret);
#endif
DBG_FUNC_END("\r\n");
return (UINT32)ret;
}
UINT32 BackgroundFormatCard(void) UINT32 BackgroundFormatCard(void)
{ {
int ret; int ret;

View File

@ -39,6 +39,8 @@
#if (USE_DCF == ENABLE) #if (USE_DCF == ENABLE)
#include "DCF.h" #include "DCF.h"
#endif #endif
#include "SF_SysStrgMng.h"
#define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER #define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
@ -690,7 +692,7 @@ UINT32 PhotoExe_GetExpectSize_RhoBRCrtl(UINT32 ImgIdx, BOOL bPrimaryOnly)
UINT32 PhotoExe_GetFreePicNum(void) UINT32 PhotoExe_GetFreePicNum(void)
{ {
UINT64 uiFreeSpace; UINT64 uiFreeSpace = 0;
UINT32 uiMaxImageSize; UINT32 uiMaxImageSize;
UINT32 freeImgNum; UINT32 freeImgNum;
// UINT32 reserveSize = 0x80000; // 500KB // UINT32 reserveSize = 0x80000; // 500KB
@ -698,10 +700,24 @@ UINT32 PhotoExe_GetFreePicNum(void)
UINT32 CaptureSize; UINT32 CaptureSize;
UINT32 size; UINT32 size;
SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
if(mmc_dev->dcf_handle < 0)
{
DBG_ERR("No MMC_Dev Can use!\n");
return FALSE;
}
#if (FILESIZE_ALIGN_FUNC) #if (FILESIZE_ALIGN_FUNC)
reserveSize += FS_ALIGN_RESERVED_SIZE; reserveSize += FS_ALIGN_RESERVED_SIZE;
#endif #endif
uiFreeSpace = FileSys_GetDiskInfo(FST_INFO_FREE_SPACE); if(mmc_dev->dev_type == MMC_DEV_SD)
{
uiFreeSpace = FileSys_GetDiskInfoEx('A', FST_INFO_FREE_SPACE);
}
else if(mmc_dev->dev_type == MMC_DEV_EMMC)
{
uiFreeSpace = FileSys_GetDiskInfoEx('B', FST_INFO_FREE_SPACE);
}
//DBG_IND("[cap]Free Space = %d KB\r\n", uiFreeSpace / 1024); //DBG_IND("[cap]Free Space = %d KB\r\n", uiFreeSpace / 1024);

View File

@ -37,6 +37,8 @@
#define __DBGLVL__ 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER #define __DBGLVL__ 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
#define __DBGFLT__ "*" //*=All, [mark]=CustomClass #define __DBGFLT__ "*" //*=All, [mark]=CustomClass
#include <kwrap/debug.h> #include <kwrap/debug.h>
#include "SF_SysStrgMng.h"
void UIStorageCheck_AllSize(UINT64 *uiTotal, UINT64 *uiRemain) void UIStorageCheck_AllSize(UINT64 *uiTotal, UINT64 *uiRemain)
{ {
@ -56,6 +58,12 @@ void UIStorageCheck_ResetFileReachMax(void)
//#NT#Add check for folder attribute //#NT#Add check for folder attribute
static BOOL check_CurrDir_writable(void) static BOOL check_CurrDir_writable(void)
{ {
SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
if(mmc_dev->dcf_handle < 0)
{
DBG_ERR("No MMC_Dev Can use!\n");
return FALSE;
}
UINT32 useFileDB = 0; UINT32 useFileDB = 0;
useFileDB = UI_GetData(FL_IsUseFileDB); useFileDB = UI_GetData(FL_IsUseFileDB);
@ -66,9 +74,9 @@ static BOOL check_CurrDir_writable(void)
UINT32 CurrDirID; UINT32 CurrDirID;
SDCFDIRINFO dirinfo = {0}; SDCFDIRINFO dirinfo = {0};
CurrDirID = DCF_GetDBInfo(DCF_INFO_CUR_DIR_ID); CurrDirID = DCF_GetDBInfoEx(mmc_dev->dcf_handle, DCF_INFO_CUR_DIR_ID);
if (CurrDirID) { if (CurrDirID) {
if (DCF_GetDirInfo(CurrDirID, &dirinfo)) { if (DCF_GetDirInfoEx(mmc_dev->dcf_handle, CurrDirID, &dirinfo)) {
if (M_IsReadOnly(dirinfo.ucAttrib)) { if (M_IsReadOnly(dirinfo.ucAttrib)) {
DBG_IND("DCF folder %d is READONLY.\r\n", CurrDirID); DBG_IND("DCF folder %d is READONLY.\r\n", CurrDirID);
return FALSE; return FALSE;
@ -90,18 +98,32 @@ static BOOL check_CurrDir_writable(void)
BOOL UIStorageCheck_DCIMWritable(void) BOOL UIStorageCheck_DCIMWritable(void)
{ {
SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
if(mmc_dev->dcf_handle < 0)
{
DBG_ERR("No MMC_Dev Can use!\n");
return FALSE;
}
UINT32 useFileDB = 0; UINT32 useFileDB = 0;
useFileDB = UI_GetData(FL_IsUseFileDB); useFileDB = UI_GetData(FL_IsUseFileDB);
if (useFileDB) { if (useFileDB) {
return TRUE; return TRUE;
} else { } else {
char DCIM_DIR[9] = "A:\\DCIM";
INT32 uiStatus = 0; INT32 uiStatus = 0;
UINT8 ucAttrib = 0; UINT8 ucAttrib = 0;
BOOL ret = FALSE; BOOL ret = FALSE;
if(mmc_dev->dev_type == MMC_DEV_SD)
{
uiStatus = FileSys_GetAttrib("A:\\DCIM", &ucAttrib);
}
else
{
uiStatus = FileSys_GetAttrib("B:\\DCIM", &ucAttrib);
}
uiStatus = FileSys_GetAttrib(DCIM_DIR, &ucAttrib);
if (uiStatus == FST_STA_OK) { if (uiStatus == FST_STA_OK) {
if (ucAttrib & FS_ATTRIB_DIRECTORY) { if (ucAttrib & FS_ATTRIB_DIRECTORY) {
if (System_GetState(SYS_STATE_CARD) == CARD_REMOVED) { if (System_GetState(SYS_STATE_CARD) == CARD_REMOVED) {
@ -127,21 +149,8 @@ BOOL UIStorageCheck_DCIMWritable(void)
} }
} }
BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount) static BOOL UIStrgCheckFolderFull(DCF_HANDLE DcfHandle)
{ {
#if (PHOTO_MODE==ENABLE)
UINT32 uiCountTmp = 0;
#endif
UINT32 useFileDB = 0;
useFileDB = UI_GetData(FL_IsUseFileDB);
DBG_IND("UI_StorageCheck: Check item = 0x%x\r\n", uiCheckItem);
switch (uiCheckItem) {
case STORAGE_CHECK_FOLDER_FULL:
if (useFileDB) {
return FALSE;
} else {
#if (USE_DCF == ENABLE) #if (USE_DCF == ENABLE)
BOOL bIsFileReachMax = FALSE; BOOL bIsFileReachMax = FALSE;
UINT32 DCF_DirId = 0, DCF_FileId = 0; UINT32 DCF_DirId = 0, DCF_FileId = 0;
@ -152,14 +161,12 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
return TRUE; return TRUE;
} }
bIsFileReachMax = FALSE; bIsFileReachMax = FALSE;
//#NT#2011/03/28#Lincy Lin -begin
//#NT#fix delete the 9999th file in 999 folder cause capture not save ret = DCF_GetNextIDEx(DcfHandle, &DCF_DirId, &DCF_FileId);
ret = DCF_GetNextID(&DCF_DirId, &DCF_FileId);
if (ret && DCF_DirId == 0 && DCF_FileId == 0) { if (ret && DCF_DirId == 0 && DCF_FileId == 0) {
bIsFileReachMax = TRUE; bIsFileReachMax = TRUE;
DBG_IND("Next dir_id =%d, file_id = %d \r\n", DCF_DirId, DCF_FileId); DBG_IND("Next dir_id =%d, file_id = %d \r\n", DCF_DirId, DCF_FileId);
} else if (ret && DCF_GetDBInfo(DCF_INFO_IS_9999) == TRUE) } else if (ret && DCF_GetDBInfoEx(DcfHandle, DCF_INFO_IS_9999) == TRUE)
//#NT#2011/03/28#Lincy Lin -end
{ {
bIsFileReachMax = TRUE; bIsFileReachMax = TRUE;
} }
@ -168,8 +175,12 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
return FALSE; return FALSE;
#endif #endif
} }
break;
case STORAGE_CHECK_FULL: static BOOL UIStrgCheckFull(UINT32 *pFreeCount)
{
#if (PHOTO_MODE==ENABLE)
UINT32 uiCountTmp = 0;
#endif
#if (PHOTO_MODE==ENABLE) #if (PHOTO_MODE==ENABLE)
uiCountTmp = PhotoExe_GetFreePicNum(); uiCountTmp = PhotoExe_GetFreePicNum();
DBG_IND("uiCountTmp = %d, pFreeCount=%d\r\n",uiCountTmp,pFreeCount); DBG_IND("uiCountTmp = %d, pFreeCount=%d\r\n",uiCountTmp,pFreeCount);
@ -184,18 +195,19 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
#else #else
return FALSE; return FALSE;
#endif #endif
break;
case STORAGE_CHECK_LOCKED:
if (System_GetState(SYS_STATE_CARD) == CARD_LOCKED) {
DBG_ERR("UIStorageCheck: %d Card locked\r\n", System_GetState(SYS_STATE_CARD));
return TRUE;
} else {
return FALSE;
} }
break;
case STORAGE_CHECK_ERROR: static BOOL UIStrgCheckErr(MMC_DEV_TYPE dev_id)
FileSys_WaitFinish(); {
if(dev_id == MMC_DEV_SD)
{
FileSys_WaitFinishEx('A');
}
else if(dev_id == MMC_DEV_EMMC)
{
FileSys_WaitFinishEx('B');
}
if (System_GetState(SYS_STATE_FS) == FS_DISK_ERROR if (System_GetState(SYS_STATE_FS) == FS_DISK_ERROR
|| System_GetState(SYS_STATE_FS) == FS_UNKNOWN_FORMAT || System_GetState(SYS_STATE_FS) == FS_UNKNOWN_FORMAT
|| System_GetState(SYS_STATE_FS) == FS_UNFORMATTED || System_GetState(SYS_STATE_FS) == FS_UNFORMATTED
@ -210,6 +222,43 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
} else { } else {
return FALSE; return FALSE;
} }
}
BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
{
SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
if(mmc_dev->dcf_handle < 0)
{
DBG_ERR("No MMC_Dev Can use!\n");
return FALSE;
}
UINT32 useFileDB = 0;
useFileDB = UI_GetData(FL_IsUseFileDB);
DBG_IND("UI_StorageCheck: Check item = 0x%x\r\n", uiCheckItem);
switch (uiCheckItem) {
case STORAGE_CHECK_FOLDER_FULL:
if (useFileDB) {
return FALSE;
} else {
UIStrgCheckFolderFull(mmc_dev->dcf_handle);
}
break;
case STORAGE_CHECK_FULL:
UIStrgCheckFull(pFreeCount);
break;
case STORAGE_CHECK_LOCKED:
if (System_GetState(SYS_STATE_CARD) == CARD_LOCKED) {
DBG_ERR("UIStorageCheck: %d Card locked\r\n", System_GetState(SYS_STATE_CARD));
return TRUE;
} else {
return FALSE;
}
break;
case STORAGE_CHECK_ERROR:
UIStrgCheckErr(mmc_dev->dev_type);
break; break;
case STORAGE_CHECK_DCIM_READONLY: case STORAGE_CHECK_DCIM_READONLY:
if ((UIStorageCheck_DCIMWritable() == FALSE) if ((UIStorageCheck_DCIMWritable() == FALSE)

View File

@ -22,6 +22,7 @@
#include "sf_common.h" #include "sf_common.h"
#if (USE_DCF == ENABLE) #if (USE_DCF == ENABLE)
#include "DCF.h" #include "DCF.h"
#include "SF_SysStrgMng.h"
#endif #endif
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
#include <sf_inc.h> #include <sf_inc.h>
@ -673,6 +674,12 @@ static void update_camera_message(void)
UIMenuStoreInfo *puiPara = sf_ui_para_get(); UIMenuStoreInfo *puiPara = sf_ui_para_get();
// if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO)) // if((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO))
SF_ST_MMC_DEV *mmc_dev = SF_StrgCheckWorkableDev();
if(mmc_dev->dcf_handle < 0)
{
DBG_ERR("No MMC_Dev Can use!\n");
}
switch (puiPara->ImgSize) switch (puiPara->ImgSize)
{ {
case PHOTO_SIZE_40M: case PHOTO_SIZE_40M:
@ -719,6 +726,8 @@ static void update_camera_message(void)
default: default:
break; break;
} }
#if 1
if (System_GetState(SYS_STATE_FS) == FS_INIT_OK) if (System_GetState(SYS_STATE_FS) == FS_INIT_OK)
{ {
UINT32 cardStatus = System_GetState(SYS_STATE_CARD); UINT32 cardStatus = System_GetState(SYS_STATE_CARD);
@ -771,6 +780,8 @@ static void update_camera_message(void)
set_warning_label_text(label_6_scr_uiflowphoto); set_warning_label_text(label_6_scr_uiflowphoto);
lv_label_set_text(label_6_scr_uiflowphoto, "SD Card Error"); lv_label_set_text(label_6_scr_uiflowphoto, "SD Card Error");
} }
#endif
} }
extern int is_menu_screen_luck(void); extern int is_menu_screen_luck(void);

View File

@ -1715,8 +1715,6 @@ extern int FileSys_SearchFileRewind(FS_SEARCH_HDL pSearch);
#define FileSys_RegisterCB(parm1) FileSys_RegisterCBEx('A', parm1) #define FileSys_RegisterCB(parm1) FileSys_RegisterCBEx('A', parm1)
#define FileSys_Benchmark(parm1,parm2,parm3) FileSys_BenchmarkEx('A', parm1,parm2,parm3) #define FileSys_Benchmark(parm1,parm2,parm3) FileSys_BenchmarkEx('A', parm1,parm2,parm3)
#define FileSys_GetEMMCDiskInfo(parm1) FileSys_GetDiskInfoEx('B', parm1)
#define fs_getcwd FileSys_GetCwd #define fs_getcwd FileSys_GetCwd
#define fs_setcwd FileSys_SetCwd #define fs_setcwd FileSys_SetCwd

View File

@ -27,6 +27,8 @@
#include "UIApp/AppDisp_PipView.h" #include "UIApp/AppDisp_PipView.h"
#include <vf_gfx.h> #include <vf_gfx.h>
#include "vendor_videocapture.h" #include "vendor_videocapture.h"
#include "sf_sd_common.h"
#define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER #define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
@ -615,17 +617,31 @@ UINT32 PhotoExe_GetExpectSize_RhoBRCrtl(UINT32 ImgIdx, BOOL bPrimaryOnly)
UINT32 PhotoExe_GetFreePicNum(void) UINT32 PhotoExe_GetFreePicNum(void)
{ {
UINT64 uiFreeSpace; UINT64 uiFreeSpace = 0;
UINT32 uiMaxImageSize; UINT32 uiMaxImageSize;
UINT32 freeImgNum; UINT32 freeImgNum;
UINT32 reserveSize = 0x80000; // 500KB UINT32 reserveSize = 0x80000; // 500KB
UINT32 CaptureSize; UINT32 CaptureSize;
UINT32 size; UINT32 size;
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
if(mmc_dev->dcf_handle < 0)
{
DBG_ERR("No MMC_Dev Can use!\n");
return FALSE;
}
#if (FILESIZE_ALIGN_FUNC) #if (FILESIZE_ALIGN_FUNC)
reserveSize += FS_ALIGN_RESERVED_SIZE; reserveSize += FS_ALIGN_RESERVED_SIZE;
#endif #endif
uiFreeSpace = FileSys_GetDiskInfo(FST_INFO_FREE_SPACE); if(mmc_dev->dev_type == MMC_DEV_SD)
{
uiFreeSpace = FileSys_GetDiskInfoEx('A', FST_INFO_FREE_SPACE);
}
else if(mmc_dev->dev_type == MMC_DEV_EMMC)
{
uiFreeSpace = FileSys_GetDiskInfoEx('B', FST_INFO_FREE_SPACE);
}
DBG_IND("[cap]Free Space = %d KB\r\n", uiFreeSpace / 1024); DBG_IND("[cap]Free Space = %d KB\r\n", uiFreeSpace / 1024);
@ -659,7 +675,6 @@ UINT32 PhotoExe_GetFreePicNum(void)
return freeImgNum; return freeImgNum;
} }
void PhotoExe_GetDispCord(URECT *dispCord) void PhotoExe_GetDispCord(URECT *dispCord)
{ {
UINT32 ImageRatioIdx = 0; UINT32 ImageRatioIdx = 0;

View File

@ -30,6 +30,8 @@
#include "FileSysTsk.h" #include "FileSysTsk.h"
#include "PlaybackTsk.h" #include "PlaybackTsk.h"
#include "DCF.h" #include "DCF.h"
#include "sf_sd_common.h"
#define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER #define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
@ -46,16 +48,22 @@ void UIStorageCheck_AllSize(UINT64 *uiTotal, UINT64 *uiRemain)
(*uiRemain) /= (1024 * 1024); (*uiRemain) /= (1024 * 1024);
} }
static BOOL bIsFileReachMax = FALSE; static BOOL bIsFileReachMax = FALSE;
void UIStorageCheck_ResetFileReachMax(void) void UIStorageCheck_ResetFileReachMax(void)
{ {
bIsFileReachMax = FALSE; bIsFileReachMax = FALSE;
} }
//#NT#2009/12/30#Ben Wang -begin
//#NT#Add check for folder attribute
static BOOL check_CurrDir_writable(void) static BOOL check_CurrDir_writable(void)
{ {
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
if(mmc_dev->dcf_handle < 0)
{
DBG_ERR("No MMC_Dev Can use!\n");
return FALSE;
}
UINT32 useFileDB = 0; UINT32 useFileDB = 0;
useFileDB = UI_GetData(FL_IsUseFileDB); useFileDB = UI_GetData(FL_IsUseFileDB);
@ -66,9 +74,9 @@ static BOOL check_CurrDir_writable(void)
UINT32 CurrDirID; UINT32 CurrDirID;
SDCFDIRINFO dirinfo = {0}; SDCFDIRINFO dirinfo = {0};
CurrDirID = DCF_GetDBInfo(DCF_INFO_CUR_DIR_ID); CurrDirID = DCF_GetDBInfoEx(mmc_dev->dcf_handle, DCF_INFO_CUR_DIR_ID);
if (CurrDirID) { if (CurrDirID) {
if (DCF_GetDirInfo(CurrDirID, &dirinfo)) { if (DCF_GetDirInfoEx(mmc_dev->dcf_handle, CurrDirID, &dirinfo)) {
if (M_IsReadOnly(dirinfo.ucAttrib)) { if (M_IsReadOnly(dirinfo.ucAttrib)) {
DBG_IND("DCF folder %d is READONLY.\r\n", CurrDirID); DBG_IND("DCF folder %d is READONLY.\r\n", CurrDirID);
return FALSE; return FALSE;
@ -88,20 +96,34 @@ static BOOL check_CurrDir_writable(void)
} }
} }
BOOL UIStorageCheck_DCIMWritable(void) BOOL UIStorageCheck_DCIMWritable(void)
{ {
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
if(mmc_dev->dcf_handle < 0)
{
DBG_ERR("No MMC_Dev Can use!\n");
return FALSE;
}
UINT32 useFileDB = 0; UINT32 useFileDB = 0;
useFileDB = UI_GetData(FL_IsUseFileDB); useFileDB = UI_GetData(FL_IsUseFileDB);
if (useFileDB) { if (useFileDB) {
return TRUE; return TRUE;
} else { } else {
char DCIM_DIR[9] = "A:\\DCIM";
INT32 uiStatus = 0; INT32 uiStatus = 0;
UINT8 ucAttrib = 0; UINT8 ucAttrib = 0;
BOOL ret = FALSE; BOOL ret = FALSE;
if(mmc_dev->dev_type == MMC_DEV_SD)
{
uiStatus = FileSys_GetAttrib("A:\\DCIM", &ucAttrib);
}
else
{
uiStatus = FileSys_GetAttrib("B:\\DCIM", &ucAttrib);
}
uiStatus = FileSys_GetAttrib(DCIM_DIR, &ucAttrib);
if (uiStatus == FST_STA_OK) { if (uiStatus == FST_STA_OK) {
if (ucAttrib & FS_ATTRIB_DIRECTORY) { if (ucAttrib & FS_ATTRIB_DIRECTORY) {
if (System_GetState(SYS_STATE_CARD) == CARD_REMOVED) { if (System_GetState(SYS_STATE_CARD) == CARD_REMOVED) {
@ -127,21 +149,8 @@ BOOL UIStorageCheck_DCIMWritable(void)
} }
} }
BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount) static BOOL UIStrgCheckFolderFull(DCF_HANDLE DcfHandle)
{ {
#if (PHOTO_MODE==ENABLE)
UINT32 uiCountTmp = 0;
#endif
UINT32 useFileDB = 0;
useFileDB = UI_GetData(FL_IsUseFileDB);
DBG_IND("UI_StorageCheck: Check item = 0x%x\r\n", uiCheckItem);
switch (uiCheckItem) {
case STORAGE_CHECK_FOLDER_FULL:
if (useFileDB) {
return FALSE;
} else {
#if (USE_DCF == ENABLE) #if (USE_DCF == ENABLE)
BOOL bIsFileReachMax = FALSE; BOOL bIsFileReachMax = FALSE;
UINT32 DCF_DirId = 0, DCF_FileId = 0; UINT32 DCF_DirId = 0, DCF_FileId = 0;
@ -152,14 +161,12 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
return TRUE; return TRUE;
} }
bIsFileReachMax = FALSE; bIsFileReachMax = FALSE;
//#NT#2011/03/28#Lincy Lin -begin
//#NT#fix delete the 9999th file in 999 folder cause capture not save ret = DCF_GetNextIDEx(DcfHandle, &DCF_DirId, &DCF_FileId);
ret = DCF_GetNextID(&DCF_DirId, &DCF_FileId);
if (ret && DCF_DirId == 0 && DCF_FileId == 0) { if (ret && DCF_DirId == 0 && DCF_FileId == 0) {
bIsFileReachMax = TRUE; bIsFileReachMax = TRUE;
DBG_IND("Next dir_id =%d, file_id = %d \r\n", DCF_DirId, DCF_FileId); DBG_IND("Next dir_id =%d, file_id = %d \r\n", DCF_DirId, DCF_FileId);
} else if (ret && DCF_GetDBInfo(DCF_INFO_IS_9999) == TRUE) } else if (ret && DCF_GetDBInfoEx(DcfHandle, DCF_INFO_IS_9999) == TRUE)
//#NT#2011/03/28#Lincy Lin -end
{ {
bIsFileReachMax = TRUE; bIsFileReachMax = TRUE;
} }
@ -168,8 +175,12 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
return FALSE; return FALSE;
#endif #endif
} }
break;
case STORAGE_CHECK_FULL: static BOOL UIStrgCheckFull(UINT32 *pFreeCount)
{
#if (PHOTO_MODE==ENABLE)
UINT32 uiCountTmp = 0;
#endif
#if (PHOTO_MODE==ENABLE) #if (PHOTO_MODE==ENABLE)
uiCountTmp = PhotoExe_GetFreePicNum(); uiCountTmp = PhotoExe_GetFreePicNum();
DBG_IND("uiCountTmp = %d, pFreeCount=%d\r\n",uiCountTmp,pFreeCount); DBG_IND("uiCountTmp = %d, pFreeCount=%d\r\n",uiCountTmp,pFreeCount);
@ -184,18 +195,19 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
#else #else
return FALSE; return FALSE;
#endif #endif
break;
case STORAGE_CHECK_LOCKED:
if (System_GetState(SYS_STATE_CARD) == CARD_LOCKED) {
DBG_ERR("UIStorageCheck: %d Card locked\r\n", System_GetState(SYS_STATE_CARD));
return TRUE;
} else {
return FALSE;
} }
break;
case STORAGE_CHECK_ERROR: static BOOL UIStrgCheckErr(MMC_DEV_TYPE dev_id)
FileSys_WaitFinish(); {
if(dev_id == MMC_DEV_SD)
{
FileSys_WaitFinishEx('A');
}
else if(dev_id == MMC_DEV_EMMC)
{
FileSys_WaitFinishEx('B');
}
if (System_GetState(SYS_STATE_FS) == FS_DISK_ERROR if (System_GetState(SYS_STATE_FS) == FS_DISK_ERROR
|| System_GetState(SYS_STATE_FS) == FS_UNKNOWN_FORMAT || System_GetState(SYS_STATE_FS) == FS_UNKNOWN_FORMAT
|| System_GetState(SYS_STATE_FS) == FS_UNFORMATTED || System_GetState(SYS_STATE_FS) == FS_UNFORMATTED
@ -210,6 +222,43 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
} else { } else {
return FALSE; return FALSE;
} }
}
BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
{
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
if(mmc_dev->dcf_handle < 0)
{
DBG_ERR("No MMC_Dev Can use!\n");
return FALSE;
}
UINT32 useFileDB = 0;
useFileDB = UI_GetData(FL_IsUseFileDB);
DBG_IND("UI_StorageCheck: Check item = 0x%x\r\n", uiCheckItem);
switch (uiCheckItem) {
case STORAGE_CHECK_FOLDER_FULL:
if (useFileDB) {
return FALSE;
} else {
UIStrgCheckFolderFull(mmc_dev->dcf_handle);
}
break;
case STORAGE_CHECK_FULL:
UIStrgCheckFull(pFreeCount);
break;
case STORAGE_CHECK_LOCKED:
if (System_GetState(SYS_STATE_CARD) == CARD_LOCKED) {
DBG_ERR("UIStorageCheck: %d Card locked\r\n", System_GetState(SYS_STATE_CARD));
return TRUE;
} else {
return FALSE;
}
break;
case STORAGE_CHECK_ERROR:
UIStrgCheckErr(mmc_dev->dev_type);
break; break;
case STORAGE_CHECK_DCIM_READONLY: case STORAGE_CHECK_DCIM_READONLY:
if ((UIStorageCheck_DCIMWritable() == FALSE) if ((UIStorageCheck_DCIMWritable() == FALSE)

View File

@ -62,6 +62,7 @@ typedef struct
MMC_DEV_TYPE dev_type; MMC_DEV_TYPE dev_type;
MMC_DEV_MOUNT_STATE moumted_state; MMC_DEV_MOUNT_STATE moumted_state;
MMC_DEV_SPACE_STATE space_state; MMC_DEV_SPACE_STATE space_state;
MMC_DEV_LOOP_STATE loop_state;
int dcf_handle; int dcf_handle;
}SF_RTOS_ST_MMC_DEV; }SF_RTOS_ST_MMC_DEV;

View File

@ -157,19 +157,19 @@ static UINT32 sf_rtos_mmc_dev_space_check_full(MMC_DEV_TYPE mmc_dev)
/*check disk free size*/ /*check disk free size*/
if(mmc_dev == MMC_DEV_SD) if(mmc_dev == MMC_DEV_SD)
{ {
diskFree = FileSys_GetDiskInfo(FST_INFO_FREE_SPACE); diskFree = FileSys_GetDiskInfoEx('A', FST_INFO_FREE_SPACE);
} }
else else
{ {
diskFree = FileSys_GetEMMCDiskInfo(FST_INFO_FREE_SPACE); diskFree = FileSys_GetDiskInfoEx('B', FST_INFO_FREE_SPACE);
} }
diskFree = diskFree/1024/1024; diskFree = diskFree/1024/1024;
if(diskFree < 30) /* 30MB */ if(diskFree < 30) /* 30MB */
{ {
ret = 1; ret = 1;
IsCardFull = TRUE;
} }
else else
{ {
@ -181,6 +181,7 @@ static UINT32 sf_rtos_mmc_dev_space_check_full(MMC_DEV_TYPE mmc_dev)
int SF_RtosStrgRegister(int devid, int mounted_state) int SF_RtosStrgRegister(int devid, int mounted_state)
{ {
UIMenuStoreInfo *puiPara = sf_ui_para_get();
if(mounted_state == FST_STA_OK) if(mounted_state == FST_STA_OK)
{ {
sf_rtos_mmc_dev[devid]->moumted_state = MMC_DEV_MOUNT_STATE_MOUNTED; sf_rtos_mmc_dev[devid]->moumted_state = MMC_DEV_MOUNT_STATE_MOUNTED;
@ -190,16 +191,15 @@ int SF_RtosStrgRegister(int devid, int mounted_state)
sf_rtos_mmc_dev[devid]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED; sf_rtos_mmc_dev[devid]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED;
} }
UINT32 isfull = sf_rtos_mmc_dev_space_check_full(devid); if(puiPara->SdLoopSwitch == 1)
if(isfull == 1)
{ {
sf_rtos_mmc_dev[devid]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH; sf_rtos_mmc_dev[devid]->loop_state = MMC_DEV_LOOP_STATE_ON;
} }
else if(isfull == 0) else
{ sf_rtos_mmc_dev[devid]->loop_state = MMC_DEV_LOOP_STATE_OFF;
sf_rtos_mmc_dev[devid]->space_state = MMC_DEV_SPACE_STATE_ENOUGH;
}
DBG_WRN("11devid = %d, state = %d\n", devid, mounted_state); DBG_WRN("devid = %d, state = %d\n", devid, mounted_state);
return 0; return 0;
} }
@ -214,6 +214,27 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void)
{ {
MMC_DEV_TYPE workable_dev = MMC_DEV_NO; MMC_DEV_TYPE workable_dev = MMC_DEV_NO;
UINT32 isfull = 0;
isfull = sf_rtos_mmc_dev_space_check_full(MMC_DEV_SD);
if(isfull == 1)
{
sf_rtos_mmc_dev[MMC_DEV_SD]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH;
}
else if(isfull == 0)
{
sf_rtos_mmc_dev[MMC_DEV_SD]->space_state = MMC_DEV_SPACE_STATE_ENOUGH;
}
isfull = sf_rtos_mmc_dev_space_check_full(MMC_DEV_EMMC);
if(isfull == 1)
{
sf_rtos_mmc_dev[MMC_DEV_EMMC]->space_state = MMC_DEV_SPACE_STATE_NO_ENOUGH;
}
else if(isfull == 0)
{
sf_rtos_mmc_dev[MMC_DEV_EMMC]->space_state = MMC_DEV_SPACE_STATE_ENOUGH;
}
if((sf_rtos_mmc_dev[MMC_DEV_SD]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) && if((sf_rtos_mmc_dev[MMC_DEV_SD]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) &&
(sf_rtos_mmc_dev[MMC_DEV_EMMC]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)) (sf_rtos_mmc_dev[MMC_DEV_EMMC]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED))
{ {
@ -227,9 +248,9 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void)
} }
else else
{ {
//if(sf_rtos_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) if(sf_rtos_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON)
{ {
//workable_dev = MMC_DEV_EMMC; workable_dev = MMC_DEV_EMMC;
} }
} }
} }
@ -241,9 +262,9 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void)
} }
else else
{ {
//if(sf_rtos_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) if(sf_rtos_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON)
{ {
//workable_dev = MMC_DEV_SD; workable_dev = MMC_DEV_SD;
} }
} }
} }
@ -264,9 +285,9 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void)
} }
else else
{ {
//if(sf_rtos_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON) if(sf_rtos_mmc_dev[MMC_DEV_SD]->loop_state == MMC_DEV_LOOP_STATE_ON)
{ {
//workable_dev = MMC_DEV_EMMC; workable_dev = MMC_DEV_EMMC;
} }
} }
} }