1.优化代码,检测完存储器后再进行下一步

This commit is contained in:
payton 2024-01-16 21:42:02 +08:00
parent cf01d35f69
commit 6aa658ce7d
3 changed files with 101 additions and 58 deletions

View File

@ -74,17 +74,8 @@ static void card_insert_job(void)
SF_RtosStrgRegister(0, ret); SF_RtosStrgRegister(0, ret);
#endif #endif
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
if(TRUE == sf_check_card_full()) sf_check_card_full();
{
DBG_WRN("ERR card full\r\n");
fastboot_set_done(BOOT_INIT_FILESYSOK); fastboot_set_done(BOOT_INIT_FILESYSOK);
}
else
{
fastboot_set_done(BOOT_INIT_FILESYSOK);
//sf_log_confg();
//sf_log_open();
}
#endif #endif
printf("filesys_init e\r\n"); printf("filesys_init e\r\n");

View File

@ -1027,8 +1027,8 @@ static void MovieFast_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
} }
} }
} }
char *dcf_file = mmc_dev->dev_type == MMC_DEV_EMMC ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME; //char *dcf_file = mmc_dev->dev_type == MMC_DEV_EMMC ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME;
DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, dcf_file); //DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, dcf_file);
DCF_MakeObjPathEx(handle, nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName); DCF_MakeObjPathEx(handle, nextFolderID, nextFileID, DCF_FILE_TYPE_MP4, pFileName);
DCF_AddDBfileEx(handle, pFileName); DCF_AddDBfileEx(handle, pFileName);
DBG_DUMP("%s added to DCF\r\n", pFileName); DBG_DUMP("%s added to DCF\r\n", pFileName);
@ -1341,7 +1341,7 @@ int MovieFast_GetWaterLogoSource(const UINT32 recWidth,WATERLOGO_BUFFER *waterSr
return E_OK; return E_OK;
} }
static void MovieFast_FileNaming_Init(void) static void MovieFast_FileNaming_Init(MMC_DEV_TYPE dev_type)
{ {
static UINT8 is_init = 0; static UINT8 is_init = 0;
@ -1373,7 +1373,7 @@ static void MovieFast_FileNaming_Init(void)
DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_MP4|DCF_FILE_TYPE_MOV); DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_MP4|DCF_FILE_TYPE_MOV);
DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO); DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO);
DCF_SetDirFreeChars(DCF_DIR_NAME); DCF_SetDirFreeChars(DCF_DIR_NAME);
//DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME); DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, (dev_type == MMC_DEV_EMMC ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME));
} }
THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg) THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg)
@ -1385,25 +1385,36 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg)
.WorkbuffAddr = mempool_dcf, .WorkbuffAddr = mempool_dcf,
.WorkbuffSize = POOL_SIZE_DCF_BUFFER, .WorkbuffSize = POOL_SIZE_DCF_BUFFER,
}; };
DCF_OPEN_PARM dcfParm2 = {
.Drive = 'B',
.WorkbuffAddr = mempool_dcf + POOL_SIZE_DCF_BUFFER,
.WorkbuffSize = POOL_SIZE_DCF_BUFFER,
};
INT32 ret = E_SYS;
//fastboot_wait_done(BOOT_INIT_FILESYSOK);
if(fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK)
{
if(gpio_getPin(GPIO_CARD_DETECT) == 0) if(gpio_getPin(GPIO_CARD_DETECT) == 0)
{ {
fastboot_msg_en(ENABLE); ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS);
} }
DBG_ERR(" FILESYS TIMEOUT failed\r\n");
//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();
INT32 ret2 = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK_2, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS);
if((TRUE != sf_is_emmc_full()) && (ret2 == E_OK))
{
MovieFast_FileNaming_Init(MMC_DEV_EMMC);
if(g_dcf_hdl2 == -1){
g_dcf_hdl2 = DCF_Open(&dcfParm2);
DCF_ScanObjEx(g_dcf_hdl2);
}
else{
DBG_WRN("dcf handle1 is already opened\n");
}
fastboot_set_done(BOOT_INIT_FILENAMINGOK_2);
}
else if((TRUE != sf_is_card_full()) && (ret == E_OK))
{
MovieFast_FileNaming_Init(MMC_DEV_SD);
if(g_dcf_hdl == -1){ if(g_dcf_hdl == -1){
g_dcf_hdl = DCF_Open(&dcfParm); g_dcf_hdl = DCF_Open(&dcfParm);
DCF_ScanObjEx(g_dcf_hdl); DCF_ScanObjEx(g_dcf_hdl);
@ -1411,23 +1422,20 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg)
else{ else{
DBG_WRN("dcf handle1 is already opened\n"); DBG_WRN("dcf handle1 is already opened\n");
} }
#if HUNTING_CAMERA_MCU == ENABLE
if(TRUE != sf_is_card_full())
#endif
{
#if USE_RTOS_MMC_CHECK
//SF_RtosStrgSetDcfHandle(MMC_DEV_EMMC, g_dcf_hdl);
#endif
fastboot_set_done(BOOT_INIT_FILENAMINGOK); fastboot_set_done(BOOT_INIT_FILENAMINGOK);
} }
else
{
fastboot_msg_en(ENABLE);
DBG_ERR(" FILESYS TIMEOUT failed\r\n");
}
} }
THREAD_RETURN(0); THREAD_RETURN(0);
} }
THREAD_RETTYPE MovieFast_InitFileNamingThread2(void *arg) THREAD_RETTYPE MovieFast_InitFileNamingThread2(void *arg)
{ {
#if 0
if(DrvGPIO_GetPhotoMovieModeFromMonitor() != DX_HUNTING_MODE_PHOTO_MOVIE ){ if(DrvGPIO_GetPhotoMovieModeFromMonitor() != DX_HUNTING_MODE_PHOTO_MOVIE ){
#if (FS_MULTI_STRG_FUNC) #if (FS_MULTI_STRG_FUNC)
@ -1475,7 +1483,7 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread2(void *arg)
} }
#endif #endif
} }
#endif
THREAD_RETURN(0); THREAD_RETURN(0);
} }

View File

@ -716,7 +716,7 @@ HD_RESULT PhotoFast_get_hd_common_buf(PPHOTOFAST_HD_COM_BUF p_hd_comm_buf)
return HD_OK; return HD_OK;
} }
static void PhotoFast_FileNaming_Init(void) static void PhotoFast_FileNaming_Init(MMC_DEV_TYPE dev_type)
{ {
static UINT8 is_init = 0; static UINT8 is_init = 0;
@ -731,7 +731,7 @@ static void PhotoFast_FileNaming_Init(void)
DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_MP4|DCF_FILE_TYPE_MOV); DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_MP4|DCF_FILE_TYPE_MOV);
DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO); DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO);
DCF_SetDirFreeChars(DCF_DIR_NAME); DCF_SetDirFreeChars(DCF_DIR_NAME);
//DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME); DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, (dev_type == MMC_DEV_EMMC ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME));
} }
INT32 PhotoFast_FileNaming_Open(void) INT32 PhotoFast_FileNaming_Open(void)
@ -742,7 +742,7 @@ INT32 PhotoFast_FileNaming_Open(void)
.WorkbuffSize = POOL_SIZE_DCF_BUFFER, .WorkbuffSize = POOL_SIZE_DCF_BUFFER,
}; };
PhotoFast_FileNaming_Init(); PhotoFast_FileNaming_Init(MMC_DEV_SD);
if(g_dcf_hdl == -1){ if(g_dcf_hdl == -1){
g_dcf_hdl = DCF_Open(&dcfParm); g_dcf_hdl = DCF_Open(&dcfParm);
@ -772,7 +772,7 @@ INT32 PhotoFast_FileNaming_Open2(void)
.WorkbuffSize = POOL_SIZE_DCF_BUFFER, .WorkbuffSize = POOL_SIZE_DCF_BUFFER,
}; };
PhotoFast_FileNaming_Init(); PhotoFast_FileNaming_Init(MMC_DEV_EMMC);
if(g_dcf_hdl2 == -1){ if(g_dcf_hdl2 == -1){
g_dcf_hdl2 = DCF_Open(&dcfParm); g_dcf_hdl2 = DCF_Open(&dcfParm);
@ -1091,8 +1091,8 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId,
} }
} }
} }
char *dcf_file = mmc_dev->dev_type == MMC_DEV_EMMC ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME; //char *dcf_file = mmc_dev->dev_type == MMC_DEV_EMMC ? SF_EMMC_DCF_FILE_NAME : SF_SD_DCF_FILE_NAME;
DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, dcf_file); //DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, dcf_file);
DCF_MakeObjPathEx(handle, nextFolderID, nextFileID, fileType, FilePath); DCF_MakeObjPathEx(handle, nextFolderID, nextFileID, fileType, FilePath);
DCF_AddDBfileEx(handle, FilePath); DCF_AddDBfileEx(handle, FilePath);
DBG_DUMP("%s added to DCF\r\n", FilePath); DBG_DUMP("%s added to DCF\r\n", FilePath);
@ -1598,20 +1598,64 @@ static void PhotoFast_CaptureStart(HD_VIDEO_FRAME *p_video_frame)
THREAD_RETTYPE PhotoFast_InitFileNamingThread(void *arg) THREAD_RETTYPE PhotoFast_InitFileNamingThread(void *arg)
{ {
DCF_OPEN_PARM dcfParm = {
.Drive = 'A',
.WorkbuffAddr = mempool_dcf,
.WorkbuffSize = POOL_SIZE_DCF_BUFFER,
};
DCF_OPEN_PARM dcfParm2 = {
.Drive = 'B',
.WorkbuffAddr = mempool_dcf + POOL_SIZE_DCF_BUFFER,
.WorkbuffSize = POOL_SIZE_DCF_BUFFER,
};
fastboot_wait_done(BOOT_INIT_FILESYSOK); INT32 ret = E_SYS;
PhotoFast_FileNaming_Open();
if(gpio_getPin(GPIO_CARD_DETECT) == 0)
{
ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS);
}
INT32 ret2 = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK_2, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS);
if((TRUE != sf_is_emmc_full()) && (ret2 == E_OK))
{
PhotoFast_FileNaming_Init(MMC_DEV_EMMC);
if(g_dcf_hdl2 == -1){
g_dcf_hdl2 = DCF_Open(&dcfParm2);
DCF_ScanObjEx(g_dcf_hdl2);
}
else{
DBG_WRN("dcf handle1 is already opened\n");
}
fastboot_set_done(BOOT_INIT_FILENAMINGOK_2);
}
else if((TRUE != sf_is_card_full()) && (ret == E_OK))
{
PhotoFast_FileNaming_Init(MMC_DEV_SD);
if(g_dcf_hdl == -1){
g_dcf_hdl = DCF_Open(&dcfParm);
DCF_ScanObjEx(g_dcf_hdl);
}
else{
DBG_WRN("dcf handle1 is already opened\n");
}
fastboot_set_done(BOOT_INIT_FILENAMINGOK); fastboot_set_done(BOOT_INIT_FILENAMINGOK);
}
else
{
fastboot_msg_en(ENABLE);
DBG_ERR(" FILESYS TIMEOUT failed\r\n");
}
THREAD_RETURN(0); THREAD_RETURN(0);
} }
THREAD_RETTYPE PhotoFast_InitFileNamingThread2(void *arg) THREAD_RETTYPE PhotoFast_InitFileNamingThread2(void *arg)
{ {
fastboot_wait_done(BOOT_INIT_FILESYSOK_2); // fastboot_wait_done(BOOT_INIT_FILESYSOK_2);
PhotoFast_FileNaming_Open2(); // PhotoFast_FileNaming_Open2();
fastboot_set_done(BOOT_INIT_FILENAMINGOK_2); // fastboot_set_done(BOOT_INIT_FILENAMINGOK_2);
THREAD_RETURN(0); THREAD_RETURN(0);
} }