From 8904ab034e7c8b411d03a75d2d4c357023456690 Mon Sep 17 00:00:00 2001 From: payton Date: Tue, 16 Jan 2024 21:01:45 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E6=97=A0sd=E5=8D=A1?= =?UTF-8?q?=E6=97=B6=E6=96=87=E4=BB=B6=E7=B3=BB=E7=BB=9F=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/cardv/SrcCode/System/sys_filesys.c | 24 +++++++++-- .../cardv/SrcCode/UIApp/MovieFast/MovieFast.c | 40 +++++++++++++++---- .../cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c | 16 ++++++-- 3 files changed, 65 insertions(+), 15 deletions(-) diff --git a/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c b/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c index 6d277b0a8..63d07cfca 100755 --- a/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c +++ b/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c @@ -27,7 +27,7 @@ #define MAX_OPENED_FILE_NUM 10 static THREAD_HANDLE task_hdl, task_hdl2; - +int FileInitFalg = 0; static void card_insert_job(void) { UINT32 uiPoolAddr; @@ -53,9 +53,16 @@ static void card_insert_job(void) strncpy(Param.FSParam.szMountPath, "/mnt/sd", sizeof(Param.FSParam.szMountPath) - 1); //only used by FsLinux Param.FSParam.szMountPath[sizeof(Param.FSParam.szMountPath) - 1] = '\0'; Param.FSParam.MaxOpenedFileNum = MAX_OPENED_FILE_NUM; - if (FST_STA_OK != FileSys_Init(FileSys_GetOPS_uITRON())) { - DBG_WRN("FileSys_Init failed\r\n"); - } + if(!FileInitFalg) + { + if (FST_STA_OK != FileSys_Init(FileSys_GetOPS_uITRON())) { + DBG_WRN("FileSys_Init failed\r\n"); + } + else { + FileInitFalg = 0; + } + } + ret = FileSys_OpenEx('A', StrgDXH, &Param); if (FST_STA_OK != ret) { DBG_WRN("FileSys_Open err %d\r\n", ret); @@ -115,6 +122,15 @@ static void card_insert_job2(void) strncpy(Param.FSParam.szMountPath, "/mnt/sd2", sizeof(Param.FSParam.szMountPath) - 1); //only used by FsLinux Param.FSParam.szMountPath[sizeof(Param.FSParam.szMountPath) - 1] = '\0'; Param.FSParam.MaxOpenedFileNum = MAX_OPENED_FILE_NUM; + if(!FileInitFalg) + { + if (FST_STA_OK != FileSys_Init(FileSys_GetOPS_uITRON())) { + DBG_WRN("FileSys_Init failed\r\n"); + } + else { + FileInitFalg = 0; + } + } DBG_WRN("Open B:\n"); ret = FileSys_OpenEx('B', StrgDXH2, &Param); if (FST_STA_OK != ret) { 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 b1a8b06e5..cd5130988 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c @@ -326,7 +326,10 @@ static void MovieFast_ShutDown(void) } #endif //DBG_DUMP("wait filesys close ...\n"); - FileSys_Close(FST_TIME_INFINITE); + + //FileSys_Close(FST_TIME_INFINITE); + FileSys_CloseEx('A', FST_TIME_INFINITE); + FileSys_CloseEx('B', FST_TIME_INFINITE); #if SF_IQ_TEST != ENABLE if(sf_get_power_off_flag()){ sf_mcu_reg_set(SF_MCU_POWEROFF,0); @@ -914,15 +917,22 @@ INT32 MovieFast_Wait_FileSys(UINT32 timeout_ms) // DBG_ERR("boot_init = BOOT_INIT_INVALID\n"); // return E_SYS; // } - INT32 ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, timeout_ms); + INT32 ret = E_SYS; + + if(gpio_getPin(GPIO_CARD_DETECT) == 0) + { + ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, timeout_ms); + } + INT32 ret2 = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK_2, timeout_ms); // E_OK - if(ret == E_OK && ret2 == E_OK) + if(ret == E_OK || ret2 == E_OK) { return E_OK; } else { + fastboot_msg_en(ENABLE); DBG_ERR("boot_init = BOOT_INIT_INVALID\n"); return E_SYS; } @@ -932,7 +942,6 @@ 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; } @@ -943,7 +952,9 @@ INT32 MovieFast_Wait_FileNaming(UINT32 timeout_ms) #endif 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; @@ -1302,6 +1313,8 @@ static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT3 MovieFast_FileNamingCB(id, pFileName); } else{ + fastboot_msg_en(ENABLE); + DBG_ERR(" MovieFast_Wait_FileNaming err TIMEOUT\n"); vos_flag_set(MOVIEFAST_FLG_ID, FLGMOVIEFAST_SHUTDOWN); } } @@ -1376,9 +1389,18 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg) //fastboot_wait_done(BOOT_INIT_FILESYSOK); if(fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK) { - fastboot_msg_en(ENABLE); + if(gpio_getPin(GPIO_CARD_DETECT) == 0) + { + fastboot_msg_en(ENABLE); + } DBG_ERR(" FILESYS TIMEOUT failed\r\n"); - THREAD_RETURN(1); + //THREAD_RETURN(1); + if(fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK) + { + //fastboot_msg_en(ENABLE); + DBG_ERR(" FILESYS TIMEOUT failed 2\r\n"); + //THREAD_RETURN(1); + } } MovieFast_FileNaming_Init(); @@ -1421,7 +1443,11 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread2(void *arg) { fastboot_msg_en(ENABLE); DBG_ERR(" BOOT_INIT_FILESYSOK_2 TIMEOUT failed\r\n"); - THREAD_RETURN(1); + if(fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK_2, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK) + { + DBG_ERR(" BOOT_INIT_FILESYSOK_2 TIMEOUT failed 2\r\n"); + } + //THREAD_RETURN(1); } MovieFast_FileNaming_Init(); 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 0e7dc3703..1cc380cc3 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c @@ -41,8 +41,9 @@ #if HUNTING_CAMERA_MCU == ENABLE #include #include "sf_led.h" -#endif +#include "IOCfg.h" #include "sf_sd_common.h" +#endif #if POWERON_FAST_SLICE_ENC == ENABLE @@ -980,11 +981,16 @@ INT32 PhotoFast_Wait_FileSys(UINT32 timeout_ms) // boot_init = BOOT_INIT_FILESYSOK_2; // } // #endif - INT32 ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, timeout_ms); + INT32 ret = E_SYS; + + if(gpio_getPin(GPIO_CARD_DETECT) == 0) + { + ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, timeout_ms); + } INT32 ret2 = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK_2, timeout_ms); // E_OK - if(ret == E_OK && ret2 == E_OK) + if(ret == E_OK || ret2 == E_OK) { return E_OK; } @@ -2210,7 +2216,9 @@ static void PhotoFast_ShutDown(void) LogFile_Close(); } #endif - FileSys_Close(FST_TIME_INFINITE); + // FileSys_Close(FST_TIME_INFINITE); + FileSys_CloseEx('A', FST_TIME_INFINITE); + FileSys_CloseEx('B', FST_TIME_INFINITE); #if SF_IQ_TEST != ENABLE if(sf_get_power_off_flag()){ sf_mcu_reg_set(SF_MCU_POWEROFF,0);