1.优化无sd卡时文件系统处理

This commit is contained in:
payton 2024-01-16 21:01:45 +08:00
parent ec11a26dd1
commit 8904ab034e
3 changed files with 65 additions and 15 deletions

View File

@ -27,7 +27,7 @@
#define MAX_OPENED_FILE_NUM 10 #define MAX_OPENED_FILE_NUM 10
static THREAD_HANDLE task_hdl, task_hdl2; static THREAD_HANDLE task_hdl, task_hdl2;
int FileInitFalg = 0;
static void card_insert_job(void) static void card_insert_job(void)
{ {
UINT32 uiPoolAddr; 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 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.szMountPath[sizeof(Param.FSParam.szMountPath) - 1] = '\0';
Param.FSParam.MaxOpenedFileNum = MAX_OPENED_FILE_NUM; Param.FSParam.MaxOpenedFileNum = MAX_OPENED_FILE_NUM;
if (FST_STA_OK != FileSys_Init(FileSys_GetOPS_uITRON())) { if(!FileInitFalg)
DBG_WRN("FileSys_Init failed\r\n"); {
} 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); ret = FileSys_OpenEx('A', StrgDXH, &Param);
if (FST_STA_OK != ret) { if (FST_STA_OK != ret) {
DBG_WRN("FileSys_Open err %d\r\n", 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 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.szMountPath[sizeof(Param.FSParam.szMountPath) - 1] = '\0';
Param.FSParam.MaxOpenedFileNum = MAX_OPENED_FILE_NUM; 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"); DBG_WRN("Open B:\n");
ret = FileSys_OpenEx('B', StrgDXH2, &Param); ret = FileSys_OpenEx('B', StrgDXH2, &Param);
if (FST_STA_OK != ret) { if (FST_STA_OK != ret) {

View File

@ -326,7 +326,10 @@ static void MovieFast_ShutDown(void)
} }
#endif #endif
//DBG_DUMP("wait filesys close ...\n"); //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_IQ_TEST != ENABLE
if(sf_get_power_off_flag()){ if(sf_get_power_off_flag()){
sf_mcu_reg_set(SF_MCU_POWEROFF,0); 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"); // DBG_ERR("boot_init = BOOT_INIT_INVALID\n");
// return E_SYS; // 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); INT32 ret2 = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK_2, timeout_ms);
// E_OK // E_OK
if(ret == E_OK && ret2 == E_OK) if(ret == E_OK || ret2 == E_OK)
{ {
return E_OK; return E_OK;
} }
else { else {
fastboot_msg_en(ENABLE);
DBG_ERR("boot_init = BOOT_INIT_INVALID\n"); DBG_ERR("boot_init = BOOT_INIT_INVALID\n");
return E_SYS; return E_SYS;
} }
@ -932,7 +942,6 @@ INT32 MovieFast_Wait_FileNaming(UINT32 timeout_ms)
{ {
DCF_HANDLE handle = MovieFast_Get_DCF_Handle(); DCF_HANDLE handle = MovieFast_Get_DCF_Handle();
BOOT_INIT boot_init = BOOT_INIT_INVALID; BOOT_INIT boot_init = BOOT_INIT_INVALID;
if(handle == g_dcf_hdl){ if(handle == g_dcf_hdl){
boot_init = BOOT_INIT_FILENAMINGOK; boot_init = BOOT_INIT_FILENAMINGOK;
} }
@ -943,7 +952,9 @@ INT32 MovieFast_Wait_FileNaming(UINT32 timeout_ms)
#endif #endif
if(boot_init != BOOT_INIT_INVALID) if(boot_init != BOOT_INIT_INVALID)
{
return fastboot_wait_done_timeout(boot_init, timeout_ms); return fastboot_wait_done_timeout(boot_init, timeout_ms);
}
else{ else{
DBG_ERR("boot_init = BOOT_INIT_INVALID\n"); DBG_ERR("boot_init = BOOT_INIT_INVALID\n");
return E_SYS; return E_SYS;
@ -1302,6 +1313,8 @@ static void MovieFast_UserEventCb(UINT32 id, MOVIE_USER_CB_EVENT event_id, UINT3
MovieFast_FileNamingCB(id, pFileName); MovieFast_FileNamingCB(id, pFileName);
} }
else{ else{
fastboot_msg_en(ENABLE);
DBG_ERR(" MovieFast_Wait_FileNaming err TIMEOUT\n");
vos_flag_set(MOVIEFAST_FLG_ID, FLGMOVIEFAST_SHUTDOWN); vos_flag_set(MOVIEFAST_FLG_ID, FLGMOVIEFAST_SHUTDOWN);
} }
} }
@ -1376,9 +1389,18 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg)
//fastboot_wait_done(BOOT_INIT_FILESYSOK); //fastboot_wait_done(BOOT_INIT_FILESYSOK);
if(fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK) 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"); 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(); MovieFast_FileNaming_Init();
@ -1421,7 +1443,11 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread2(void *arg)
{ {
fastboot_msg_en(ENABLE); fastboot_msg_en(ENABLE);
DBG_ERR(" BOOT_INIT_FILESYSOK_2 TIMEOUT failed\r\n"); 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(); MovieFast_FileNaming_Init();

View File

@ -41,8 +41,9 @@
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
#include <sf_mcu.h> #include <sf_mcu.h>
#include "sf_led.h" #include "sf_led.h"
#endif #include "IOCfg.h"
#include "sf_sd_common.h" #include "sf_sd_common.h"
#endif
#if POWERON_FAST_SLICE_ENC == ENABLE #if POWERON_FAST_SLICE_ENC == ENABLE
@ -980,11 +981,16 @@ INT32 PhotoFast_Wait_FileSys(UINT32 timeout_ms)
// boot_init = BOOT_INIT_FILESYSOK_2; // boot_init = BOOT_INIT_FILESYSOK_2;
// } // }
// #endif // #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); INT32 ret2 = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK_2, timeout_ms);
// E_OK // E_OK
if(ret == E_OK && ret2 == E_OK) if(ret == E_OK || ret2 == E_OK)
{ {
return E_OK; return E_OK;
} }
@ -2210,7 +2216,9 @@ static void PhotoFast_ShutDown(void)
LogFile_Close(); LogFile_Close();
} }
#endif #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_IQ_TEST != ENABLE
if(sf_get_power_off_flag()){ if(sf_get_power_off_flag()){
sf_mcu_reg_set(SF_MCU_POWEROFF,0); sf_mcu_reg_set(SF_MCU_POWEROFF,0);