1.修复无SD卡卡住问题

This commit is contained in:
payton 2023-11-21 10:15:33 +08:00
parent 7b4e3fed49
commit 1956c8aef5

View File

@ -62,6 +62,7 @@
#include <sf_mcu.h>
#include "sf_led.h"
#endif
#include "IOCfg.h"
#include <kwrap/cmdsys.h>
/**
Flags for control
@ -940,11 +941,13 @@ static void MovieFast_WriteFile_Task(void* arg)
MOVIEFAST_WRITE_QUEUE_PARAM* param;
fastboot_wait_done(BOOT_INIT_FILESYSOK);
#if HUNTING_CAMERA_MCU == ENABLE
if(TRUE == sf_is_card_full())
{
DBG_ERR("ERR card full\r\n");
return ;
//return ;
}
#endif
while(1)
{
param = (MOVIEFAST_WRITE_QUEUE_PARAM*) lfqueue_deq(queue);
@ -955,20 +958,27 @@ static void MovieFast_WriteFile_Task(void* arg)
if(param->va){
DBG_DUMP("Write %s\n", param->path);
FST_FILE fp = FileSys_OpenFile(param->path, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
FileSys_WriteFile(fp, (UINT8*)param->va, &param->size, 0, NULL);
FileSys_CloseFile(fp);
#if HUNTING_CAMERA_MCU == ENABLE
if(TRUE != sf_is_card_full())
#endif
{
FST_FILE fp = FileSys_OpenFile(param->path, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
FileSys_WriteFile(fp, (UINT8*)param->va, &param->size, 0, NULL);
FileSys_CloseFile(fp);
}
free(param->va);
}
else if(param->frame.phy_addr[0]){
DBG_DUMP("Write %s\n", param->path);
FST_FILE fp = FileSys_OpenFile(param->path, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
FileSys_WriteFile(fp, (UINT8*)param->frame.phy_addr[0], &param->size, 0, NULL);
FileSys_CloseFile(fp);
#if HUNTING_CAMERA_MCU == ENABLE
if(TRUE != sf_is_card_full())
#endif
{
FST_FILE fp = FileSys_OpenFile(param->path, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
FileSys_WriteFile(fp, (UINT8*)param->frame.phy_addr[0], &param->size, 0, NULL);
FileSys_CloseFile(fp);
}
hd_videoproc_release_out_buf(param->vprc_path_id, &param->frame);
}
@ -1135,8 +1145,12 @@ THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg)
DCF_SetDirFreeChars(DCF_DIR_NAME);
DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME);
DCF_ScanObj();
fastboot_set_done(BOOT_INIT_FILENAMINGOK);
#if HUNTING_CAMERA_MCU == ENABLE
if(TRUE != sf_is_card_full())
#endif
{
fastboot_set_done(BOOT_INIT_FILENAMINGOK);
}
}
EXIT:
@ -1282,6 +1296,11 @@ static INT32 MovieFast_Mode2_Get_Cont_Shot(UINT32* max_cnt, UINT32* duration)
}
#if HUNTING_CAMERA_MCU == ENABLE
if(FALSE == (gpio_getPin(GPIO_CARD_DETECT) == 0 ? TRUE : FALSE))
{
*max_cnt = 1;
}
if(SF_MULTISHOT_INTEVEL_1S == puiPara->MultiShotIntevel)
{
*duration = 1000;//The interval between consecutive shots of each photo is 1 second
@ -1798,7 +1817,7 @@ static void MovieFast_Close(void)
{
if(PhotoFast_Sliceencode2_Enq_Frame(&frame) == E_OK){
break;
}
}
else{
vos_util_delay_ms(1);
}