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
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) {

View File

@ -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();

View File

@ -41,8 +41,9 @@
#if HUNTING_CAMERA_MCU == ENABLE
#include <sf_mcu.h>
#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);