修复RTOS存储文件死机问题
This commit is contained in:
		
							parent
							
								
									50ad347fc8
								
							
						
					
					
						commit
						72c115a00b
					
				| 
						 | 
				
			
			@ -332,9 +332,8 @@ static void* mmc_monitoring_thread(void *arg)
 | 
			
		|||
{
 | 
			
		||||
	while(MMCMonitorTskCfg.IsRun)
 | 
			
		||||
	{
 | 
			
		||||
#if USE_MMC_DEV_CHECK
 | 
			
		||||
		pMMCDev = SF_StrgCheckWorkableDev();
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
		sf_sleep_ms(1000);
 | 
			
		||||
	}
 | 
			
		||||
	return NULL;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -90,7 +90,7 @@ static void card_insert_job2(void)
 | 
			
		|||
	int    ret;
 | 
			
		||||
	FILE_TSK_INIT_PARAM     Param = {0};
 | 
			
		||||
	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;
 | 
			
		||||
	StrgDXH2 = (FS_HANDLE)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_)
 | 
			
		||||
	THREAD_ENTRY();
 | 
			
		||||
 | 
			
		||||
#if USE_RTOS_MMC_CHECK
 | 
			
		||||
	SF_RtosStrgInit();
 | 
			
		||||
#endif
 | 
			
		||||
	card_insert_job();
 | 
			
		||||
 | 
			
		||||
	THREAD_RETURN(0);
 | 
			
		||||
| 
						 | 
				
			
			@ -181,9 +178,9 @@ static void sys_detect_card_task(void)
 | 
			
		|||
 | 
			
		||||
		vTaskDelay(pdMS_TO_TICKS(1000));
 | 
			
		||||
	}
 | 
			
		||||
#if USE_RTOS_MMC_CHECK
 | 
			
		||||
	SF_RtosStrgUnInit();
 | 
			
		||||
#endif
 | 
			
		||||
//#if USE_RTOS_MMC_CHECK
 | 
			
		||||
	//SF_RtosStrgUnInit();
 | 
			
		||||
//#endif
 | 
			
		||||
	THREAD_RETURN(0);
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -232,6 +229,11 @@ void filesys_init(void)
 | 
			
		|||
		vos_task_resume(task_hdl2);
 | 
			
		||||
	}
 | 
			
		||||
#endif	
 | 
			
		||||
 | 
			
		||||
#if USE_RTOS_MMC_CHECK
 | 
			
		||||
	SF_RtosStrgInit();
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
#if 0
 | 
			
		||||
	if (FST_STA_OK != FileSys_Init(FileSys_GetOPS_uITRON())) {
 | 
			
		||||
| 
						 | 
				
			
			@ -317,4 +319,4 @@ void sf_log_open(void)
 | 
			
		|||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -866,17 +866,25 @@ static DCF_HANDLE MovieFast_Get_DCF_Handle(void)
 | 
			
		|||
//#else
 | 
			
		||||
	//return g_dcf_hdl;
 | 
			
		||||
//#endif
 | 
			
		||||
	SF_RtosStrgSetDcfHandle(MMC_DEV_SD,  g_dcf_hdl);
 | 
			
		||||
	SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2);
 | 
			
		||||
 | 
			
		||||
#if USE_RTOS_MMC_CHECK	
 | 
			
		||||
	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");
 | 
			
		||||
		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);
 | 
			
		||||
	return mmc_dev->dcf_handle;
 | 
			
		||||
#else
 | 
			
		||||
	return g_dcf_hdl;
 | 
			
		||||
	return g_dcf_hdl2;
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
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 USE_RTOS_MMC_CHECK					
 | 
			
		||||
					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
 | 
			
		||||
					{
 | 
			
		||||
| 
						 | 
				
			
			@ -1195,7 +1206,7 @@ static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT3
 | 
			
		|||
						}
 | 
			
		||||
					}
 | 
			
		||||
#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
 | 
			
		||||
                    #else
 | 
			
		||||
					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
 | 
			
		||||
        {
 | 
			
		||||
#if USE_RTOS_MMC_CHECK
 | 
			
		||||
			SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl);
 | 
			
		||||
			//SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl);
 | 
			
		||||
#endif
 | 
			
		||||
            fastboot_set_done(BOOT_INIT_FILENAMINGOK);
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -1353,7 +1364,7 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread2(void *arg)
 | 
			
		|||
        #endif
 | 
			
		||||
        {
 | 
			
		||||
#if USE_RTOS_MMC_CHECK
 | 
			
		||||
			SF_RtosStrgSetDcfHandle(MMC_DEV_SD,  g_dcf_hdl2);
 | 
			
		||||
			//SF_RtosStrgSetDcfHandle(MMC_DEV_SD,  g_dcf_hdl2);
 | 
			
		||||
#endif
 | 
			
		||||
			fastboot_set_done(BOOT_INIT_FILENAMINGOK_2);
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -624,19 +624,25 @@ UINT32 PhotoExe_GetFreePicNum(void)
 | 
			
		|||
	UINT32              CaptureSize;
 | 
			
		||||
	UINT32              size;
 | 
			
		||||
	
 | 
			
		||||
#if USE_RTOS_MMC_CHECK	
 | 
			
		||||
#if 0//USE_RTOS_MMC_CHECK	
 | 
			
		||||
	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");
 | 
			
		||||
		return FALSE;
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
	if(mmc_dev->dcf_handle < 0)
 | 
			
		||||
	{
 | 
			
		||||
		DBG_ERR("dcf_handle err\n");
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (FILESIZE_ALIGN_FUNC)
 | 
			
		||||
	reserveSize += FS_ALIGN_RESERVED_SIZE;
 | 
			
		||||
#endif
 | 
			
		||||
#if USE_RTOS_MMC_CHECK	
 | 
			
		||||
#if 0//USE_RTOS_MMC_CHECK	
 | 
			
		||||
 | 
			
		||||
	if(mmc_dev->dev_type == MMC_DEV_SD)
 | 
			
		||||
	{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -58,14 +58,20 @@ void UIStorageCheck_ResetFileReachMax(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();
 | 
			
		||||
	if(mmc_dev->dcf_handle < 0)
 | 
			
		||||
	if(mmc_dev ==NULL)
 | 
			
		||||
	{
 | 
			
		||||
		DBG_ERR("No MMC_Dev Can use!\n");
 | 
			
		||||
		return FALSE;
 | 
			
		||||
	}
 | 
			
		||||
	if(mmc_dev->dcf_handle < 0)
 | 
			
		||||
	{
 | 
			
		||||
		DBG_ERR("dcf_handle err\n");
 | 
			
		||||
		return FALSE;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
	UINT32 useFileDB = 0;
 | 
			
		||||
	useFileDB = UI_GetData(FL_IsUseFileDB);
 | 
			
		||||
| 
						 | 
				
			
			@ -76,7 +82,7 @@ static BOOL check_CurrDir_writable(void)
 | 
			
		|||
#if (USE_DCF == ENABLE)
 | 
			
		||||
		UINT32 CurrDirID;
 | 
			
		||||
		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);
 | 
			
		||||
		if (CurrDirID) {
 | 
			
		||||
			if (DCF_GetDirInfoEx(mmc_dev->dcf_handle, CurrDirID, &dirinfo)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -108,14 +114,20 @@ static BOOL check_CurrDir_writable(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();
 | 
			
		||||
	if(mmc_dev->dcf_handle < 0)
 | 
			
		||||
	if(mmc_dev ==NULL)
 | 
			
		||||
	{
 | 
			
		||||
		DBG_ERR("No MMC_Dev Can use!\n");
 | 
			
		||||
		return FALSE;
 | 
			
		||||
	}
 | 
			
		||||
	if(mmc_dev->dcf_handle < 0)
 | 
			
		||||
	{
 | 
			
		||||
		DBG_ERR("dcf_handle err\n");
 | 
			
		||||
		return FALSE;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#endif	
 | 
			
		||||
	UINT32 useFileDB = 0;
 | 
			
		||||
	useFileDB = UI_GetData(FL_IsUseFileDB);
 | 
			
		||||
| 
						 | 
				
			
			@ -125,7 +137,7 @@ BOOL UIStorageCheck_DCIMWritable(void)
 | 
			
		|||
		INT32 uiStatus = 0;
 | 
			
		||||
		UINT8  ucAttrib = 0;
 | 
			
		||||
		BOOL   ret = FALSE;
 | 
			
		||||
		#if USE_RTOS_MMC_CHECK	
 | 
			
		||||
		#if 0//USE_RTOS_MMC_CHECK	
 | 
			
		||||
		if(mmc_dev->dev_type == MMC_DEV_SD)
 | 
			
		||||
		{
 | 
			
		||||
			uiStatus = FileSys_GetAttrib("A:\\DCIM", &ucAttrib);
 | 
			
		||||
| 
						 | 
				
			
			@ -175,7 +187,7 @@ static BOOL UIStrgCheckFolderFull(DCF_HANDLE DcfHandle)
 | 
			
		|||
		return TRUE;
 | 
			
		||||
	}
 | 
			
		||||
	bIsFileReachMax = FALSE;
 | 
			
		||||
#if USE_RTOS_MMC_CHECK	
 | 
			
		||||
#if 0//USE_RTOS_MMC_CHECK	
 | 
			
		||||
	ret = DCF_GetNextIDEx(DcfHandle, &DCF_DirId, &DCF_FileId);
 | 
			
		||||
#else
 | 
			
		||||
	ret = DCF_GetNextID(&DCF_DirId, &DCF_FileId);
 | 
			
		||||
| 
						 | 
				
			
			@ -216,7 +228,7 @@ static BOOL UIStrgCheckFull(UINT32 *pFreeCount)
 | 
			
		|||
 | 
			
		||||
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)
 | 
			
		||||
	{
 | 
			
		||||
| 
						 | 
				
			
			@ -247,14 +259,20 @@ static BOOL UIStrgCheckErr(MMC_DEV_TYPE dev_id)
 | 
			
		|||
 | 
			
		||||
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();
 | 
			
		||||
	if(mmc_dev->dcf_handle < 0)
 | 
			
		||||
	if(mmc_dev ==NULL)
 | 
			
		||||
	{
 | 
			
		||||
		DBG_ERR("No MMC_Dev Can use!\n");
 | 
			
		||||
		return FALSE;
 | 
			
		||||
	}
 | 
			
		||||
	if(mmc_dev->dcf_handle < 0)
 | 
			
		||||
	{
 | 
			
		||||
		DBG_ERR("dcf_handle err\n");
 | 
			
		||||
		return FALSE;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
	UINT32 useFileDB = 0;
 | 
			
		||||
	useFileDB = UI_GetData(FL_IsUseFileDB);
 | 
			
		||||
| 
						 | 
				
			
			@ -266,7 +284,7 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
 | 
			
		|||
		if (useFileDB) {
 | 
			
		||||
			return FALSE;
 | 
			
		||||
		} else {
 | 
			
		||||
		#if USE_RTOS_MMC_CHECK	
 | 
			
		||||
		#if 0//USE_RTOS_MMC_CHECK	
 | 
			
		||||
			UIStrgCheckFolderFull(mmc_dev->dcf_handle);
 | 
			
		||||
		#else
 | 
			
		||||
			UIStrgCheckFolderFull(0);
 | 
			
		||||
| 
						 | 
				
			
			@ -286,7 +304,7 @@ BOOL UIStorageCheck(UINT32 uiCheckItem, UINT32 *pFreeCount)
 | 
			
		|||
		break;
 | 
			
		||||
	case STORAGE_CHECK_ERROR:
 | 
			
		||||
	
 | 
			
		||||
		#if USE_RTOS_MMC_CHECK	
 | 
			
		||||
		#if 0//USE_RTOS_MMC_CHECK	
 | 
			
		||||
			UIStrgCheckErr(mmc_dev->dev_type);
 | 
			
		||||
		#else
 | 
			
		||||
			UIStrgCheckErr(0);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -748,7 +748,7 @@ INT32 PhotoFast_FileNaming_Open(void)
 | 
			
		|||
 | 
			
		||||
		DCF_ScanObjEx(g_dcf_hdl);
 | 
			
		||||
#if USE_RTOS_MMC_CHECK
 | 
			
		||||
		SF_RtosStrgSetDcfHandle(MMC_DEV_SD,  g_dcf_hdl);
 | 
			
		||||
		//SF_RtosStrgSetDcfHandle(MMC_DEV_SD,  g_dcf_hdl);
 | 
			
		||||
#endif
 | 
			
		||||
	}
 | 
			
		||||
	else{
 | 
			
		||||
| 
						 | 
				
			
			@ -780,7 +780,7 @@ INT32 PhotoFast_FileNaming_Open2(void)
 | 
			
		|||
		DBG_WRN("DCF_ScanObjEx emmc handle=%d\n", g_dcf_hdl2);
 | 
			
		||||
		DCF_ScanObjEx(g_dcf_hdl2);
 | 
			
		||||
	#if USE_RTOS_MMC_CHECK
 | 
			
		||||
		SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2);
 | 
			
		||||
		//SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2);
 | 
			
		||||
	#endif
 | 
			
		||||
	}
 | 
			
		||||
	else{
 | 
			
		||||
| 
						 | 
				
			
			@ -812,8 +812,8 @@ INT32 PhotoFast_FileNaming_Close(void)
 | 
			
		|||
	}
 | 
			
		||||
#if USE_RTOS_MMC_CHECK
 | 
			
		||||
 | 
			
		||||
	SF_RtosStrgSetDcfHandle(MMC_DEV_SD,  g_dcf_hdl);
 | 
			
		||||
	SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2);
 | 
			
		||||
	//SF_RtosStrgSetDcfHandle(MMC_DEV_SD,  g_dcf_hdl);
 | 
			
		||||
	//SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2);
 | 
			
		||||
#endif	
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -936,17 +936,26 @@ DCF_HANDLE PhotoFast_Get_DCF_Handle()
 | 
			
		|||
//#else
 | 
			
		||||
	//return g_dcf_hdl;
 | 
			
		||||
//#endif
 | 
			
		||||
	
 | 
			
		||||
	SF_RtosStrgSetDcfHandle(MMC_DEV_SD,  g_dcf_hdl);
 | 
			
		||||
	SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2);
 | 
			
		||||
#if USE_RTOS_MMC_CHECK	
 | 
			
		||||
	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");
 | 
			
		||||
		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);
 | 
			
		||||
	return mmc_dev->dcf_handle;
 | 
			
		||||
#else
 | 
			
		||||
	return g_dcf_hdl;
 | 
			
		||||
	return g_dcf_hdl2;
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
INT32 PhotoFast_Wait_FileSys(UINT32 timeout_ms)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2248,7 +2248,7 @@ INT32 PhotoFast_SliceEncode_CB2(void* user_data)
 | 
			
		|||
		if(param->cnt >= param->max_cnt)
 | 
			
		||||
			break;
 | 
			
		||||
        #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;
 | 
			
		||||
        }
 | 
			
		||||
        #endif
 | 
			
		||||
| 
						 | 
				
			
			@ -2391,9 +2391,12 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
 | 
			
		|||
    #if HUNTING_CAMERA_MCU == ENABLE
 | 
			
		||||
	#if USE_RTOS_MMC_CHECK	
 | 
			
		||||
				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
 | 
			
		||||
				{
 | 
			
		||||
| 
						 | 
				
			
			@ -2407,7 +2410,7 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
 | 
			
		|||
					}
 | 
			
		||||
				}
 | 
			
		||||
	#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
 | 
			
		||||
    #else
 | 
			
		||||
                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;
 | 
			
		||||
        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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -214,27 +214,6 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void)
 | 
			
		|||
{
 | 
			
		||||
	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) &&
 | 
			
		||||
		(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)
 | 
			
		||||
    {
 | 
			
		||||
        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;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -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)
 | 
			
		||||
    {
 | 
			
		||||
        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;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -270,16 +249,16 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void)
 | 
			
		|||
    }
 | 
			
		||||
    else
 | 
			
		||||
    {
 | 
			
		||||
        if(sf_rtos_mmc_dev[MMC_DEV_EMMC]->space_state == MMC_DEV_SPACE_STATE_ENOUGH &&
 | 
			
		||||
           sf_rtos_mmc_dev[MMC_DEV_SD]->space_state == MMC_DEV_SPACE_STATE_ENOUGH)
 | 
			
		||||
        if(!sf_rtos_mmc_dev_space_check_full(MMC_DEV_EMMC) &&
 | 
			
		||||
           !sf_rtos_mmc_dev_space_check_full(MMC_DEV_SD))
 | 
			
		||||
        {
 | 
			
		||||
            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;
 | 
			
		||||
        }
 | 
			
		||||
        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;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -297,12 +276,11 @@ SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void)
 | 
			
		|||
	for(int i = 0; i < 2; i++)
 | 
			
		||||
	{
 | 
			
		||||
		sf_rtos_mmc_dev[i]->dev_type = workable_dev;
 | 
			
		||||
		DBG_WRN("mount:%d, space:%d\n", sf_rtos_mmc_dev[i]->moumted_state, 
 | 
			
		||||
				sf_rtos_mmc_dev[i]->space_state);
 | 
			
		||||
		DBG_WRN("mount:%d\n", sf_rtos_mmc_dev[i]->moumted_state);
 | 
			
		||||
	}
 | 
			
		||||
	if(workable_dev == MMC_DEV_NO)
 | 
			
		||||
	{
 | 
			
		||||
		return sf_rtos_mmc_dev[MMC_DEV_EMMC];
 | 
			
		||||
		return NULL;
 | 
			
		||||
	}
 | 
			
		||||
	else
 | 
			
		||||
	{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user