diff --git a/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h b/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h index e24900ccb..98e3bc219 100755 --- a/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h +++ b/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h @@ -979,7 +979,7 @@ #define SF_TEST_OTA_FTP 0 #define CUSTOM_TEST_OTA_FTP 0 -#define FASTBOOT_WAIT_FILESYS_TIMEOUT_MS 5000 +#define FASTBOOT_WAIT_FILESYS_TIMEOUT_MS 10000 #define FASTBOOT_WAIT_FILENAMING_TIMEOUT_MS 5000 #define SF_BATTERY_TEST DISABLE diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c index abdcd598c..e33822a4b 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c @@ -921,6 +921,7 @@ INT32 MovieFast_Wait_FileSys(UINT32 timeout_ms) if(gpio_getPin(GPIO_CARD_DETECT) == 0) { + //DBG_WRN("BOOT_INIT_FILESYSOK\n"); ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, timeout_ms); } @@ -940,17 +941,27 @@ INT32 MovieFast_Wait_FileSys(UINT32 timeout_ms) INT32 MovieFast_Wait_FileNaming(UINT32 timeout_ms) { - DCF_HANDLE handle = MovieFast_Get_DCF_Handle(); - BOOT_INIT boot_init = BOOT_INIT_INVALID; - if(handle == g_dcf_hdl){ - boot_init = BOOT_INIT_FILENAMINGOK; + //DCF_HANDLE handle = MovieFast_Get_DCF_Handle(); + BOOT_INIT boot_init = BOOT_INIT_INVALID; + + SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); + if(mmc_dev ==NULL) + { + DBG_ERR("No MMC_Dev Can use!\n"); + return E_SYS; } + if(MMC_DEV_SD == mmc_dev->dev_type) + { + boot_init = BOOT_INIT_FILENAMINGOK; + } #if (FS_MULTI_STRG_FUNC) - else if(handle == g_dcf_hdl2){ + else if(MMC_DEV_EMMC == mmc_dev->dev_type){ boot_init = BOOT_INIT_FILENAMINGOK_2; } #endif + //DBG_WRN("boot_init = %d\n",boot_init); + if(boot_init != BOOT_INIT_INVALID) { return fastboot_wait_done_timeout(boot_init, timeout_ms); @@ -959,6 +970,7 @@ INT32 MovieFast_Wait_FileNaming(UINT32 timeout_ms) DBG_ERR("boot_init = BOOT_INIT_INVALID\n"); return E_SYS; } + } static void MovieFast_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) @@ -1210,6 +1222,7 @@ static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT3 //MOVIEMULTI_CLOSE_FILE_INFO *info = (MOVIEMULTI_CLOSE_FILE_INFO *)value; //DCF_AddDBfile(info->path); //DBG_DUMP("%s added to DCF\r\n", info->path); + //DBG_WRN("MOVIE_USER_CB_EVENT_CLOSE_FILE_COMPLETED FLGMOVIEFAST_SHUTDOWN\n"); vos_flag_set(MOVIEFAST_FLG_ID, FLGMOVIEFAST_SHUTDOWN); } break; @@ -1309,7 +1322,7 @@ static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT3 case MOVIE_USER_CB_EVENT_FILENAMING_EMR_CB: { CHAR *pFileName = (CHAR *) value; - if(MovieFast_Wait_FileNaming(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) == E_OK){ + if(MovieFast_Wait_FileSys(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) == E_OK && MovieFast_Wait_FileNaming(FASTBOOT_WAIT_FILENAMING_TIMEOUT_MS) == E_OK){ MovieFast_FileNamingCB(id, pFileName); } else{ @@ -1395,6 +1408,7 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg) if(gpio_getPin(GPIO_CARD_DETECT) == 0) { + //DBG_WRN("BOOT_INIT_FILESYSOK\n"); ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS); } @@ -1410,6 +1424,8 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg) else{ DBG_WRN("dcf handle1 is already opened\n"); } + SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl); + SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2); fastboot_set_done(BOOT_INIT_FILENAMINGOK_2); } else if((TRUE != sf_is_card_full()) && (ret == E_OK)) @@ -1422,6 +1438,8 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg) else{ DBG_WRN("dcf handle1 is already opened\n"); } + SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl); + SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2); fastboot_set_done(BOOT_INIT_FILENAMINGOK); } else diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c index c4f54d3df..ce92701d2 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c @@ -985,11 +985,12 @@ INT32 PhotoFast_Wait_FileSys(UINT32 timeout_ms) if(gpio_getPin(GPIO_CARD_DETECT) == 0) { + //DBG_WRN("BOOT_INIT_FILESYSOK\n"); ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, timeout_ms); } INT32 ret2 = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK_2, timeout_ms); -// E_OK + //DBG_WRN("ret1:%d, ret2:%d\n", ret, ret2); if(ret == E_OK || ret2 == E_OK) { return E_OK; @@ -1009,20 +1010,31 @@ INT32 PhotoFast_Wait_FileSys(UINT32 timeout_ms) INT32 PhotoFast_Wait_FileNaming(UINT32 timeout_ms) { - DCF_HANDLE handle = PhotoFast_Get_DCF_Handle(); - BOOT_INIT boot_init = BOOT_INIT_INVALID; + //DCF_HANDLE handle = MovieFast_Get_DCF_Handle(); + BOOT_INIT boot_init = BOOT_INIT_INVALID; - if(handle == g_dcf_hdl){ - boot_init = BOOT_INIT_FILENAMINGOK; + SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); + if(mmc_dev ==NULL) + { + DBG_ERR("No MMC_Dev Can use!\n"); + return E_SYS; } + if(MMC_DEV_SD == mmc_dev->dev_type) + { + boot_init = BOOT_INIT_FILENAMINGOK; + } #if (FS_MULTI_STRG_FUNC) - else if(handle == g_dcf_hdl2){ + else if(MMC_DEV_EMMC == mmc_dev->dev_type){ boot_init = BOOT_INIT_FILENAMINGOK_2; } #endif + //DBG_WRN("boot_init = %d\n",boot_init); + if(boot_init != BOOT_INIT_INVALID) + { return fastboot_wait_done_timeout(boot_init, timeout_ms); + } else{ DBG_ERR("boot_init = BOOT_INIT_INVALID\n"); return E_SYS; @@ -1613,6 +1625,7 @@ THREAD_RETTYPE PhotoFast_InitFileNamingThread(void *arg) if(gpio_getPin(GPIO_CARD_DETECT) == 0) { + //DBG_WRN("BOOT_INIT_FILESYSOK\n"); ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS); } @@ -1628,6 +1641,8 @@ THREAD_RETTYPE PhotoFast_InitFileNamingThread(void *arg) else{ DBG_WRN("dcf handle1 is already opened\n"); } + SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl); + SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2); fastboot_set_done(BOOT_INIT_FILENAMINGOK_2); } else if((TRUE != sf_is_card_full()) && (ret == E_OK)) @@ -1640,6 +1655,8 @@ THREAD_RETTYPE PhotoFast_InitFileNamingThread(void *arg) else{ DBG_WRN("dcf handle1 is already opened\n"); } + SF_RtosStrgSetDcfHandle(MMC_DEV_SD, g_dcf_hdl); + SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl2); fastboot_set_done(BOOT_INIT_FILENAMINGOK); } else diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c index 6fa6f8dff..b8519699b 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c @@ -1776,7 +1776,7 @@ INT32 PhotoFast_SliceEncode(const HD_PATH_ID vproc_path_id, const HD_VIDEO_FRAME goto EXIT; } - if(PhotoFast_Wait_FileNaming(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK){ + if(PhotoFast_Wait_FileNaming(FASTBOOT_WAIT_FILENAMING_TIMEOUT_MS) != E_OK){ goto EXIT; } @@ -2367,10 +2367,25 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data) * Output jpg file ******************************************************************/ extern INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, char* Path); + INT32 waitFalg = 0; #if SF_NO_SD_SEND == ENABLE - if( - PhotoFast_Wait_FileSys(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK && - PhotoFast_Wait_FileNaming(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK) + // if( + // PhotoFast_Wait_FileSys(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK && + // PhotoFast_Wait_FileNaming(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK) + + // if(PhotoFast_Wait_FileSys(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK){ + // if(PhotoFast_Wait_FileNaming(FASTBOOT_WAIT_FILENAMING_TIMEOUT_MS) != E_OK){ + // waitFalg = 1; + // } + // } + if(PhotoFast_Wait_FileSys(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK){ + waitFalg = 1; + } + + if(PhotoFast_Wait_FileNaming(FASTBOOT_WAIT_FILENAMING_TIMEOUT_MS) != E_OK){ + waitFalg = 1; + } + if(waitFalg) { DBG_WRN("filesys not ready, store data into mem\n"); diff --git a/rtos/code/driver/na51089/include/sf_sd_common.h b/rtos/code/driver/na51089/include/sf_sd_common.h index bbaa6574b..5f39575a0 100755 --- a/rtos/code/driver/na51089/include/sf_sd_common.h +++ b/rtos/code/driver/na51089/include/sf_sd_common.h @@ -65,13 +65,13 @@ typedef struct MMC_DEV_MOUNT_STATE moumted_state; MMC_DEV_SPACE_STATE space_state; MMC_DEV_LOOP_STATE loop_state; - int dcf_handle; + signed long dcf_handle; }SF_RTOS_ST_MMC_DEV; void SF_RtosStrgInit(void); void SF_RtosStrgUnInit(void); int SF_RtosStrgRegister(int devid, int mounted_state); -void SF_RtosStrgSetDcfHandle(UINT32 strg_id, UINT32 handle); +void SF_RtosStrgSetDcfHandle(UINT32 strg_id, signed long handle); SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void); #endif \ No newline at end of file diff --git a/rtos/code/driver/na51089/source/mcu/sf_sd_common.c b/rtos/code/driver/na51089/source/mcu/sf_sd_common.c index 3bbeaebec..cb62a1839 100755 --- a/rtos/code/driver/na51089/source/mcu/sf_sd_common.c +++ b/rtos/code/driver/na51089/source/mcu/sf_sd_common.c @@ -239,7 +239,7 @@ int SF_RtosStrgRegister(int devid, int mounted_state) return 0; } -void SF_RtosStrgSetDcfHandle(UINT32 strg_id, UINT32 handle) +void SF_RtosStrgSetDcfHandle(UINT32 strg_id, signed long handle) { sf_rtos_mmc_dev[strg_id]->dcf_handle = handle; DBG_WRN("strg_id = %d, handle = %d\n", strg_id, handle);