1.内存发送功能调整;2.优化文件系统时序

This commit is contained in:
payton 2024-01-17 19:27:21 +08:00
parent 7cd39c8033
commit 556f697786
6 changed files with 70 additions and 20 deletions

View File

@ -979,7 +979,7 @@
#define SF_TEST_OTA_FTP 0 #define SF_TEST_OTA_FTP 0
#define CUSTOM_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 FASTBOOT_WAIT_FILENAMING_TIMEOUT_MS 5000
#define SF_BATTERY_TEST DISABLE #define SF_BATTERY_TEST DISABLE

View File

@ -921,6 +921,7 @@ INT32 MovieFast_Wait_FileSys(UINT32 timeout_ms)
if(gpio_getPin(GPIO_CARD_DETECT) == 0) if(gpio_getPin(GPIO_CARD_DETECT) == 0)
{ {
//DBG_WRN("BOOT_INIT_FILESYSOK\n");
ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, timeout_ms); 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) 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){
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) #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; boot_init = BOOT_INIT_FILENAMINGOK_2;
} }
#endif #endif
//DBG_WRN("boot_init = %d\n",boot_init);
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);
@ -959,6 +970,7 @@ INT32 MovieFast_Wait_FileNaming(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;
} }
} }
static void MovieFast_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName) 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; //MOVIEMULTI_CLOSE_FILE_INFO *info = (MOVIEMULTI_CLOSE_FILE_INFO *)value;
//DCF_AddDBfile(info->path); //DCF_AddDBfile(info->path);
//DBG_DUMP("%s added to DCF\r\n", 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); vos_flag_set(MOVIEFAST_FLG_ID, FLGMOVIEFAST_SHUTDOWN);
} }
break; 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: { case MOVIE_USER_CB_EVENT_FILENAMING_EMR_CB: {
CHAR *pFileName = (CHAR *) value; 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); MovieFast_FileNamingCB(id, pFileName);
} }
else{ else{
@ -1395,6 +1408,7 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg)
if(gpio_getPin(GPIO_CARD_DETECT) == 0) 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); ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS);
} }
@ -1410,6 +1424,8 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg)
else{ else{
DBG_WRN("dcf handle1 is already opened\n"); 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); fastboot_set_done(BOOT_INIT_FILENAMINGOK_2);
} }
else if((TRUE != sf_is_card_full()) && (ret == E_OK)) else if((TRUE != sf_is_card_full()) && (ret == E_OK))
@ -1422,6 +1438,8 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg)
else{ else{
DBG_WRN("dcf handle1 is already opened\n"); 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); fastboot_set_done(BOOT_INIT_FILENAMINGOK);
} }
else else

View File

@ -985,11 +985,12 @@ INT32 PhotoFast_Wait_FileSys(UINT32 timeout_ms)
if(gpio_getPin(GPIO_CARD_DETECT) == 0) if(gpio_getPin(GPIO_CARD_DETECT) == 0)
{ {
//DBG_WRN("BOOT_INIT_FILESYSOK\n");
ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, timeout_ms); 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 //DBG_WRN("ret1:%d, ret2:%d\n", ret, ret2);
if(ret == E_OK || ret2 == E_OK) if(ret == E_OK || ret2 == E_OK)
{ {
return E_OK; return E_OK;
@ -1009,20 +1010,31 @@ INT32 PhotoFast_Wait_FileSys(UINT32 timeout_ms)
INT32 PhotoFast_Wait_FileNaming(UINT32 timeout_ms) INT32 PhotoFast_Wait_FileNaming(UINT32 timeout_ms)
{ {
DCF_HANDLE handle = PhotoFast_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){ SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
boot_init = BOOT_INIT_FILENAMINGOK; 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) #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; boot_init = BOOT_INIT_FILENAMINGOK_2;
} }
#endif #endif
//DBG_WRN("boot_init = %d\n",boot_init);
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;
@ -1613,6 +1625,7 @@ THREAD_RETTYPE PhotoFast_InitFileNamingThread(void *arg)
if(gpio_getPin(GPIO_CARD_DETECT) == 0) 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); ret = fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS);
} }
@ -1628,6 +1641,8 @@ THREAD_RETTYPE PhotoFast_InitFileNamingThread(void *arg)
else{ else{
DBG_WRN("dcf handle1 is already opened\n"); 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); fastboot_set_done(BOOT_INIT_FILENAMINGOK_2);
} }
else if((TRUE != sf_is_card_full()) && (ret == E_OK)) else if((TRUE != sf_is_card_full()) && (ret == E_OK))
@ -1640,6 +1655,8 @@ THREAD_RETTYPE PhotoFast_InitFileNamingThread(void *arg)
else{ else{
DBG_WRN("dcf handle1 is already opened\n"); 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); fastboot_set_done(BOOT_INIT_FILENAMINGOK);
} }
else else

View File

@ -1776,7 +1776,7 @@ INT32 PhotoFast_SliceEncode(const HD_PATH_ID vproc_path_id, const HD_VIDEO_FRAME
goto EXIT; 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; goto EXIT;
} }
@ -2367,10 +2367,25 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
* Output jpg file * Output jpg file
******************************************************************/ ******************************************************************/
extern INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, char* Path); extern INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, char* Path);
INT32 waitFalg = 0;
#if SF_NO_SD_SEND == ENABLE #if SF_NO_SD_SEND == ENABLE
if( // if(
PhotoFast_Wait_FileSys(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK && // PhotoFast_Wait_FileSys(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK &&
PhotoFast_Wait_FileNaming(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"); DBG_WRN("filesys not ready, store data into mem\n");

View File

@ -65,13 +65,13 @@ typedef struct
MMC_DEV_MOUNT_STATE moumted_state; MMC_DEV_MOUNT_STATE moumted_state;
MMC_DEV_SPACE_STATE space_state; MMC_DEV_SPACE_STATE space_state;
MMC_DEV_LOOP_STATE loop_state; MMC_DEV_LOOP_STATE loop_state;
int dcf_handle; signed long dcf_handle;
}SF_RTOS_ST_MMC_DEV; }SF_RTOS_ST_MMC_DEV;
void SF_RtosStrgInit(void); void SF_RtosStrgInit(void);
void SF_RtosStrgUnInit(void); void SF_RtosStrgUnInit(void);
int SF_RtosStrgRegister(int devid, int mounted_state); 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); SF_RTOS_ST_MMC_DEV *SF_RtosStrgCheckWorkableDev(void);
#endif #endif

View File

@ -239,7 +239,7 @@ int SF_RtosStrgRegister(int devid, int mounted_state)
return 0; 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; sf_rtos_mmc_dev[strg_id]->dcf_handle = handle;
DBG_WRN("strg_id = %d, handle = %d\n", strg_id, handle); DBG_WRN("strg_id = %d, handle = %d\n", strg_id, handle);