修复RTOS存储文件死机问题
This commit is contained in:
parent
50ad347fc8
commit
72c115a00b
|
@ -332,9 +332,8 @@ static void* mmc_monitoring_thread(void *arg)
|
||||||
{
|
{
|
||||||
while(MMCMonitorTskCfg.IsRun)
|
while(MMCMonitorTskCfg.IsRun)
|
||||||
{
|
{
|
||||||
#if USE_MMC_DEV_CHECK
|
|
||||||
pMMCDev = SF_StrgCheckWorkableDev();
|
pMMCDev = SF_StrgCheckWorkableDev();
|
||||||
#endif
|
|
||||||
sf_sleep_ms(1000);
|
sf_sleep_ms(1000);
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -90,7 +90,7 @@ static void card_insert_job2(void)
|
||||||
int ret;
|
int ret;
|
||||||
FILE_TSK_INIT_PARAM Param = {0};
|
FILE_TSK_INIT_PARAM Param = {0};
|
||||||
FS_HANDLE StrgDXH2;
|
FS_HANDLE StrgDXH2;
|
||||||
UINT32 start_sector = 8192 ; /* linux cmd fdisk can list partition info */
|
UINT32 start_sector = 16 ; /* linux cmd fdisk can list partition info */
|
||||||
UINT32 totoal_sectors = 0;
|
UINT32 totoal_sectors = 0;
|
||||||
StrgDXH2 = (FS_HANDLE)sdio2_getStorageObject(STRG_OBJ_FAT1);
|
StrgDXH2 = (FS_HANDLE)sdio2_getStorageObject(STRG_OBJ_FAT1);
|
||||||
STORAGE_OBJ* pStrg = sdio2_getStorageObject(STRG_OBJ_FAT1);
|
STORAGE_OBJ* pStrg = sdio2_getStorageObject(STRG_OBJ_FAT1);
|
||||||
|
@ -146,9 +146,6 @@ static void sys_detect_card_task(void)
|
||||||
#if defined(_EMBMEM_EMMC_)
|
#if defined(_EMBMEM_EMMC_)
|
||||||
THREAD_ENTRY();
|
THREAD_ENTRY();
|
||||||
|
|
||||||
#if USE_RTOS_MMC_CHECK
|
|
||||||
SF_RtosStrgInit();
|
|
||||||
#endif
|
|
||||||
card_insert_job();
|
card_insert_job();
|
||||||
|
|
||||||
THREAD_RETURN(0);
|
THREAD_RETURN(0);
|
||||||
|
@ -181,9 +178,9 @@ static void sys_detect_card_task(void)
|
||||||
|
|
||||||
vTaskDelay(pdMS_TO_TICKS(1000));
|
vTaskDelay(pdMS_TO_TICKS(1000));
|
||||||
}
|
}
|
||||||
#if USE_RTOS_MMC_CHECK
|
//#if USE_RTOS_MMC_CHECK
|
||||||
SF_RtosStrgUnInit();
|
//SF_RtosStrgUnInit();
|
||||||
#endif
|
//#endif
|
||||||
THREAD_RETURN(0);
|
THREAD_RETURN(0);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -232,6 +229,11 @@ void filesys_init(void)
|
||||||
vos_task_resume(task_hdl2);
|
vos_task_resume(task_hdl2);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if USE_RTOS_MMC_CHECK
|
||||||
|
SF_RtosStrgInit();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (FST_STA_OK != FileSys_Init(FileSys_GetOPS_uITRON())) {
|
if (FST_STA_OK != FileSys_Init(FileSys_GetOPS_uITRON())) {
|
||||||
|
@ -317,4 +319,4 @@ void sf_log_open(void)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -866,17 +866,25 @@ static DCF_HANDLE MovieFast_Get_DCF_Handle(void)
|
||||||
//#else
|
//#else
|
||||||
//return g_dcf_hdl;
|
//return g_dcf_hdl;
|
||||||
//#endif
|
//#endif
|
||||||
|
SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl);
|
||||||
|
SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2);
|
||||||
|
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if USE_RTOS_MMC_CHECK
|
||||||
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
||||||
if(mmc_dev->dcf_handle < 0)
|
if(mmc_dev ==NULL)
|
||||||
{
|
{
|
||||||
DBG_ERR("No MMC_Dev Can use!\n");
|
DBG_ERR("No MMC_Dev Can use!\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
if(mmc_dev->dcf_handle < 0)
|
||||||
|
{
|
||||||
|
DBG_ERR("dcf_handle err\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
DBG_WRN("Moviefast DCF_GET_HANDLE, %d\n", mmc_dev->dcf_handle);
|
DBG_WRN("Moviefast DCF_GET_HANDLE, %d\n", mmc_dev->dcf_handle);
|
||||||
return mmc_dev->dcf_handle;
|
return mmc_dev->dcf_handle;
|
||||||
#else
|
#else
|
||||||
return g_dcf_hdl;
|
return g_dcf_hdl2;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
INT32 MovieFast_Wait_FileSys(UINT32 timeout_ms)
|
INT32 MovieFast_Wait_FileSys(UINT32 timeout_ms)
|
||||||
|
@ -1179,9 +1187,12 @@ static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT3
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if USE_RTOS_MMC_CHECK
|
||||||
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
||||||
if(mmc_dev->dcf_handle < 0)
|
if(mmc_dev != NULL)
|
||||||
{
|
{
|
||||||
DBG_ERR("No MMC_Dev Can use!\n");
|
if(mmc_dev->dcf_handle < 0)
|
||||||
|
{
|
||||||
|
DBG_ERR("dcf_handle err\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1195,7 +1206,7 @@ static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT3
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
snprintf(tmp, sizeof(tmp), "%c%s%s", 'A', MOVIE_THUMB_PATH, thumb_current_path); /* DCF 8.3 naming rule */
|
snprintf(tmp, sizeof(tmp), "%c%s%s", 'B', MOVIE_THUMB_PATH, thumb_current_path); /* DCF 8.3 naming rule */
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
snprintf(tmp, sizeof(tmp), "%s%s", MOVIE_THUMB_PATH, (thumb_current_path + (length - 12))); /* DCF 8.3 naming rule */
|
snprintf(tmp, sizeof(tmp), "%s%s", MOVIE_THUMB_PATH, (thumb_current_path + (length - 12))); /* DCF 8.3 naming rule */
|
||||||
|
@ -1310,7 +1321,7 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if USE_RTOS_MMC_CHECK
|
||||||
SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl);
|
//SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl);
|
||||||
#endif
|
#endif
|
||||||
fastboot_set_done(BOOT_INIT_FILENAMINGOK);
|
fastboot_set_done(BOOT_INIT_FILENAMINGOK);
|
||||||
}
|
}
|
||||||
|
@ -1353,7 +1364,7 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread2(void *arg)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if USE_RTOS_MMC_CHECK
|
||||||
SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl2);
|
//SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl2);
|
||||||
#endif
|
#endif
|
||||||
fastboot_set_done(BOOT_INIT_FILENAMINGOK_2);
|
fastboot_set_done(BOOT_INIT_FILENAMINGOK_2);
|
||||||
}
|
}
|
||||||
|
|
|
@ -624,19 +624,25 @@ UINT32 PhotoExe_GetFreePicNum(void)
|
||||||
UINT32 CaptureSize;
|
UINT32 CaptureSize;
|
||||||
UINT32 size;
|
UINT32 size;
|
||||||
|
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if 0//USE_RTOS_MMC_CHECK
|
||||||
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
||||||
if(mmc_dev->dcf_handle < 0)
|
if(mmc_dev ==NULL)
|
||||||
{
|
{
|
||||||
DBG_ERR("No MMC_Dev Can use!\n");
|
DBG_ERR("No MMC_Dev Can use!\n");
|
||||||
return FALSE;
|
return 0;
|
||||||
}
|
}
|
||||||
|
if(mmc_dev->dcf_handle < 0)
|
||||||
|
{
|
||||||
|
DBG_ERR("dcf_handle err\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (FILESIZE_ALIGN_FUNC)
|
#if (FILESIZE_ALIGN_FUNC)
|
||||||
reserveSize += FS_ALIGN_RESERVED_SIZE;
|
reserveSize += FS_ALIGN_RESERVED_SIZE;
|
||||||
#endif
|
#endif
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if 0//USE_RTOS_MMC_CHECK
|
||||||
|
|
||||||
if(mmc_dev->dev_type == MMC_DEV_SD)
|
if(mmc_dev->dev_type == MMC_DEV_SD)
|
||||||
{
|
{
|
||||||
|
|
|
@ -58,14 +58,20 @@ void UIStorageCheck_ResetFileReachMax(void)
|
||||||
|
|
||||||
static BOOL check_CurrDir_writable(void)
|
static BOOL check_CurrDir_writable(void)
|
||||||
{
|
{
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if 0//USE_RTOS_MMC_CHECK
|
||||||
|
|
||||||
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
||||||
if(mmc_dev->dcf_handle < 0)
|
if(mmc_dev ==NULL)
|
||||||
{
|
{
|
||||||
DBG_ERR("No MMC_Dev Can use!\n");
|
DBG_ERR("No MMC_Dev Can use!\n");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
if(mmc_dev->dcf_handle < 0)
|
||||||
|
{
|
||||||
|
DBG_ERR("dcf_handle err\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
UINT32 useFileDB = 0;
|
UINT32 useFileDB = 0;
|
||||||
useFileDB = UI_GetData(FL_IsUseFileDB);
|
useFileDB = UI_GetData(FL_IsUseFileDB);
|
||||||
|
@ -76,7 +82,7 @@ static BOOL check_CurrDir_writable(void)
|
||||||
#if (USE_DCF == ENABLE)
|
#if (USE_DCF == ENABLE)
|
||||||
UINT32 CurrDirID;
|
UINT32 CurrDirID;
|
||||||
SDCFDIRINFO dirinfo = {0};
|
SDCFDIRINFO dirinfo = {0};
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if 0//USE_RTOS_MMC_CHECK
|
||||||
CurrDirID = DCF_GetDBInfoEx(mmc_dev->dcf_handle, DCF_INFO_CUR_DIR_ID);
|
CurrDirID = DCF_GetDBInfoEx(mmc_dev->dcf_handle, DCF_INFO_CUR_DIR_ID);
|
||||||
if (CurrDirID) {
|
if (CurrDirID) {
|
||||||
if (DCF_GetDirInfoEx(mmc_dev->dcf_handle, CurrDirID, &dirinfo)) {
|
if (DCF_GetDirInfoEx(mmc_dev->dcf_handle, CurrDirID, &dirinfo)) {
|
||||||
|
@ -108,14 +114,20 @@ static BOOL check_CurrDir_writable(void)
|
||||||
|
|
||||||
BOOL UIStorageCheck_DCIMWritable(void)
|
BOOL UIStorageCheck_DCIMWritable(void)
|
||||||
{
|
{
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if 0//USE_RTOS_MMC_CHECK
|
||||||
|
|
||||||
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
||||||
if(mmc_dev->dcf_handle < 0)
|
if(mmc_dev ==NULL)
|
||||||
{
|
{
|
||||||
DBG_ERR("No MMC_Dev Can use!\n");
|
DBG_ERR("No MMC_Dev Can use!\n");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
if(mmc_dev->dcf_handle < 0)
|
||||||
|
{
|
||||||
|
DBG_ERR("dcf_handle err\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
UINT32 useFileDB = 0;
|
UINT32 useFileDB = 0;
|
||||||
useFileDB = UI_GetData(FL_IsUseFileDB);
|
useFileDB = UI_GetData(FL_IsUseFileDB);
|
||||||
|
@ -125,7 +137,7 @@ BOOL UIStorageCheck_DCIMWritable(void)
|
||||||
INT32 uiStatus = 0;
|
INT32 uiStatus = 0;
|
||||||
UINT8 ucAttrib = 0;
|
UINT8 ucAttrib = 0;
|
||||||
BOOL ret = FALSE;
|
BOOL ret = FALSE;
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if 0//USE_RTOS_MMC_CHECK
|
||||||
if(mmc_dev->dev_type == MMC_DEV_SD)
|
if(mmc_dev->dev_type == MMC_DEV_SD)
|
||||||
{
|
{
|
||||||
uiStatus = FileSys_GetAttrib("A:\\DCIM", &ucAttrib);
|
uiStatus = FileSys_GetAttrib("A:\\DCIM", &ucAttrib);
|
||||||
|
@ -175,7 +187,7 @@ static BOOL UIStrgCheckFolderFull(DCF_HANDLE DcfHandle)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
bIsFileReachMax = FALSE;
|
bIsFileReachMax = FALSE;
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if 0//USE_RTOS_MMC_CHECK
|
||||||
ret = DCF_GetNextIDEx(DcfHandle, &DCF_DirId, &DCF_FileId);
|
ret = DCF_GetNextIDEx(DcfHandle, &DCF_DirId, &DCF_FileId);
|
||||||
#else
|
#else
|
||||||
ret = DCF_GetNextID(&DCF_DirId, &DCF_FileId);
|
ret = DCF_GetNextID(&DCF_DirId, &DCF_FileId);
|
||||||
|
@ -216,7 +228,7 @@ static BOOL UIStrgCheckFull(UINT32 *pFreeCount)
|
||||||
|
|
||||||
static BOOL UIStrgCheckErr(MMC_DEV_TYPE dev_id)
|
static BOOL UIStrgCheckErr(MMC_DEV_TYPE dev_id)
|
||||||
{
|
{
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if 0//USE_RTOS_MMC_CHECK
|
||||||
|
|
||||||
if(dev_id == MMC_DEV_SD)
|
if(dev_id == MMC_DEV_SD)
|
||||||
{
|
{
|
||||||
|
@ -247,14 +259,20 @@ static BOOL UIStrgCheckErr(MMC_DEV_TYPE dev_id)
|
||||||
|
|
||||||
BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
|
BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
|
||||||
{
|
{
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if 0//USE_RTOS_MMC_CHECK
|
||||||
|
|
||||||
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
||||||
if(mmc_dev->dcf_handle < 0)
|
if(mmc_dev ==NULL)
|
||||||
{
|
{
|
||||||
DBG_ERR("No MMC_Dev Can use!\n");
|
DBG_ERR("No MMC_Dev Can use!\n");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
if(mmc_dev->dcf_handle < 0)
|
||||||
|
{
|
||||||
|
DBG_ERR("dcf_handle err\n");
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
UINT32 useFileDB = 0;
|
UINT32 useFileDB = 0;
|
||||||
useFileDB = UI_GetData(FL_IsUseFileDB);
|
useFileDB = UI_GetData(FL_IsUseFileDB);
|
||||||
|
@ -266,7 +284,7 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
|
||||||
if (useFileDB) {
|
if (useFileDB) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
} else {
|
} else {
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if 0//USE_RTOS_MMC_CHECK
|
||||||
UIStrgCheckFolderFull(mmc_dev->dcf_handle);
|
UIStrgCheckFolderFull(mmc_dev->dcf_handle);
|
||||||
#else
|
#else
|
||||||
UIStrgCheckFolderFull(0);
|
UIStrgCheckFolderFull(0);
|
||||||
|
@ -286,7 +304,7 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
|
||||||
break;
|
break;
|
||||||
case STORAGE_CHECK_ERROR:
|
case STORAGE_CHECK_ERROR:
|
||||||
|
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if 0//USE_RTOS_MMC_CHECK
|
||||||
UIStrgCheckErr(mmc_dev->dev_type);
|
UIStrgCheckErr(mmc_dev->dev_type);
|
||||||
#else
|
#else
|
||||||
UIStrgCheckErr(0);
|
UIStrgCheckErr(0);
|
||||||
|
|
|
@ -748,7 +748,7 @@ INT32 PhotoFast_FileNaming_Open(void)
|
||||||
|
|
||||||
DCF_ScanObjEx(g_dcf_hdl);
|
DCF_ScanObjEx(g_dcf_hdl);
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if USE_RTOS_MMC_CHECK
|
||||||
SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl);
|
//SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -780,7 +780,7 @@ INT32 PhotoFast_FileNaming_Open2(void)
|
||||||
DBG_WRN("DCF_ScanObjEx emmc handle=%d\n", g_dcf_hdl2);
|
DBG_WRN("DCF_ScanObjEx emmc handle=%d\n", g_dcf_hdl2);
|
||||||
DCF_ScanObjEx(g_dcf_hdl2);
|
DCF_ScanObjEx(g_dcf_hdl2);
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if USE_RTOS_MMC_CHECK
|
||||||
SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2);
|
//SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -812,8 +812,8 @@ INT32 PhotoFast_FileNaming_Close(void)
|
||||||
}
|
}
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if USE_RTOS_MMC_CHECK
|
||||||
|
|
||||||
SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl);
|
//SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl);
|
||||||
SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2);
|
//SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2);
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -936,17 +936,26 @@ DCF_HANDLE PhotoFast_Get_DCF_Handle()
|
||||||
//#else
|
//#else
|
||||||
//return g_dcf_hdl;
|
//return g_dcf_hdl;
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
|
SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl);
|
||||||
|
SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2);
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if USE_RTOS_MMC_CHECK
|
||||||
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
||||||
if(mmc_dev->dcf_handle < 0)
|
if(mmc_dev ==NULL)
|
||||||
{
|
{
|
||||||
DBG_ERR("No MMC_Dev Can use!\n");
|
DBG_ERR("No MMC_Dev Can use!\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
if(mmc_dev->dcf_handle < 0)
|
||||||
|
{
|
||||||
|
DBG_ERR("dcf_handle err\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
DBG_WRN("photofast DCF_GET_HANDLE, %d\n", mmc_dev->dcf_handle);
|
DBG_WRN("photofast DCF_GET_HANDLE, %d\n", mmc_dev->dcf_handle);
|
||||||
return mmc_dev->dcf_handle;
|
return mmc_dev->dcf_handle;
|
||||||
#else
|
#else
|
||||||
return g_dcf_hdl;
|
return g_dcf_hdl2;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
INT32 PhotoFast_Wait_FileSys(UINT32 timeout_ms)
|
INT32 PhotoFast_Wait_FileSys(UINT32 timeout_ms)
|
||||||
|
|
|
@ -2248,7 +2248,7 @@ INT32 PhotoFast_SliceEncode_CB2(void* user_data)
|
||||||
if(param->cnt >= param->max_cnt)
|
if(param->cnt >= param->max_cnt)
|
||||||
break;
|
break;
|
||||||
#if SF_NO_SD_SEND == ENABLE
|
#if SF_NO_SD_SEND == ENABLE
|
||||||
if(PhotoFast_Wait_FileSys(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK){
|
if(PhotoFast_Wait_FileSys(1) != E_OK){
|
||||||
goto EXIT;
|
goto EXIT;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -2391,9 +2391,12 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
|
||||||
#if HUNTING_CAMERA_MCU == ENABLE
|
#if HUNTING_CAMERA_MCU == ENABLE
|
||||||
#if USE_RTOS_MMC_CHECK
|
#if USE_RTOS_MMC_CHECK
|
||||||
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
|
||||||
if(mmc_dev->dcf_handle < 0)
|
if(mmc_dev != NULL)
|
||||||
{
|
{
|
||||||
DBG_ERR("No MMC_Dev Can use!\n");
|
if(mmc_dev->dcf_handle < 0)
|
||||||
|
{
|
||||||
|
DBG_ERR("dcf_handle err\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -2407,7 +2410,7 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
snprintf(tmp, sizeof(tmp), "%c%s%s", 'A', PHOTO_THUMB_PATH, file_path); /* DCF 8.3 naming rule */
|
snprintf(tmp, sizeof(tmp), "%c%s%s", 'B', PHOTO_THUMB_PATH, file_path); /* DCF 8.3 naming rule */
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
UINT32 length = strlen(file_path);
|
UINT32 length = strlen(file_path);
|
||||||
|
|
|
@ -176,7 +176,7 @@ static UINT32 sf_rtos_mmc_dev_space_check_full(MMC_DEV_TYPE mmc_dev)
|
||||||
IsCardFull = FALSE;
|
IsCardFull = FALSE;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
DBG_WRN("[%d]sd card diskFree=%lluM, ret = %d\n", __LINE__, diskFree, ret);
|
DBG_WRN("[strg_id:%d]diskFree=%lluM, ret = %d\n", mmc_dev, diskFree, ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -214,27 +214,6 @@ 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))
|
||||||
{
|
{
|
||||||
|
@ -242,7 +221,7 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void)
|
||||||
}
|
}
|
||||||
else if(sf_rtos_mmc_dev[MMC_DEV_SD]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)
|
else if(sf_rtos_mmc_dev[MMC_DEV_SD]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)
|
||||||
{
|
{
|
||||||
if(sf_rtos_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH)
|
if(!sf_rtos_mmc_dev_space_check_full(MMC_DEV_EMMC))
|
||||||
{
|
{
|
||||||
workable_dev = MMC_DEV_EMMC;
|
workable_dev = MMC_DEV_EMMC;
|
||||||
}
|
}
|
||||||
|
@ -256,7 +235,7 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void)
|
||||||
}
|
}
|
||||||
else if(sf_rtos_mmc_dev[MMC_DEV_EMMC]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)
|
else if(sf_rtos_mmc_dev[MMC_DEV_EMMC]->moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)
|
||||||
{
|
{
|
||||||
if(sf_rtos_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH)
|
if(!sf_rtos_mmc_dev_space_check_full(MMC_DEV_SD))
|
||||||
{
|
{
|
||||||
workable_dev = MMC_DEV_SD;
|
workable_dev = MMC_DEV_SD;
|
||||||
}
|
}
|
||||||
|
@ -270,16 +249,16 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(sf_rtos_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH &&
|
if(!sf_rtos_mmc_dev_space_check_full(MMC_DEV_EMMC) &&
|
||||||
sf_rtos_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH)
|
!sf_rtos_mmc_dev_space_check_full(MMC_DEV_SD))
|
||||||
{
|
{
|
||||||
workable_dev = MMC_DEV_EMMC;
|
workable_dev = MMC_DEV_EMMC;
|
||||||
}
|
}
|
||||||
else if(sf_rtos_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH)
|
else if(!sf_rtos_mmc_dev_space_check_full(MMC_DEV_EMMC))
|
||||||
{
|
{
|
||||||
workable_dev = MMC_DEV_EMMC;
|
workable_dev = MMC_DEV_EMMC;
|
||||||
}
|
}
|
||||||
else if(sf_rtos_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH)
|
else if(!sf_rtos_mmc_dev_space_check_full(MMC_DEV_SD))
|
||||||
{
|
{
|
||||||
workable_dev = MMC_DEV_SD;
|
workable_dev = MMC_DEV_SD;
|
||||||
}
|
}
|
||||||
|
@ -297,12 +276,11 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void)
|
||||||
for(int i = 0; i < 2; i++)
|
for(int i = 0; i < 2; i++)
|
||||||
{
|
{
|
||||||
sf_rtos_mmc_dev[i]->dev_type = workable_dev;
|
sf_rtos_mmc_dev[i]->dev_type = workable_dev;
|
||||||
DBG_WRN("mount:%d, space:%d\n", sf_rtos_mmc_dev[i]->moumted_state,
|
DBG_WRN("mount:%d\n", sf_rtos_mmc_dev[i]->moumted_state);
|
||||||
sf_rtos_mmc_dev[i]->space_state);
|
|
||||||
}
|
}
|
||||||
if(workable_dev == MMC_DEV_NO)
|
if(workable_dev == MMC_DEV_NO)
|
||||||
{
|
{
|
||||||
return sf_rtos_mmc_dev[MMC_DEV_EMMC];
|
return NULL;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user