Merge branch 'Branch_S550_Fast_Emmc' of http://192.168.6.216/linux-em-group/s530-ntk into Branch_S550_Fast_Emmc

This commit is contained in:
greg 2024-02-04 20:27:46 +08:00
commit 48775cb449
15 changed files with 339 additions and 62 deletions

View File

@ -49,6 +49,14 @@ typedef enum MCU_FLAG_INIT {
MCU_FLAG_INIT_MAX_CNT = 32, //flag max bit cnt is 32 MCU_FLAG_INIT_MAX_CNT = 32, //flag max bit cnt is 32
} MCU_FLAG_INIT; } MCU_FLAG_INIT;
typedef enum NET_FLAG_INIT {
NET_FLAG_INITT = 0x00,
NET_FLAG_INITT_OK,
NET_FLAG_NET_OK,
NET_FLAG_SEND_END,
} NET_FLAG_INIT;
void mcubuf_reset(void); void mcubuf_reset(void);
int sf_commu_mcu_interface_init(int speed, char flow_ctrl, int databits, int stopbits, char parity); int sf_commu_mcu_interface_init(int speed, char flow_ctrl, int databits, int stopbits, char parity);
int sf_commu_mcu_open(void); int sf_commu_mcu_open(void);
@ -79,7 +87,9 @@ void sf_mcu_flag_set_done(MCU_FLAG_INIT boot_init);
void sf_mcu_flag_wait_done(MCU_FLAG_INIT boot_init); void sf_mcu_flag_wait_done(MCU_FLAG_INIT boot_init);
int sf_mcu_flag_wait_done_timeout(MCU_FLAG_INIT boot_init, int timeout_ms); int sf_mcu_flag_wait_done_timeout(MCU_FLAG_INIT boot_init, int timeout_ms);
void sf_mcu_flag_clear_done(MCU_FLAG_INIT boot_init); void sf_mcu_flag_clear_done(MCU_FLAG_INIT boot_init);
void sf_net_flag_init(void);
void sf_net_flag_set_done(NET_FLAG_INIT boot_init);
int sf_net_flag_wait_done_timeout(NET_FLAG_INIT boot_init, int timeout_ms);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif //__cplusplus #endif //__cplusplus

View File

@ -106,6 +106,9 @@ void sf_save_camera_gps_info(void);
void set_at_parament(void); void set_at_parament(void);
int sf_net_dns_ck(void); int sf_net_dns_ck(void);
void sf_register_net_para_ck(void); void sf_register_net_para_ck(void);
SINT32 sf_app_auto_send_start(void);
SINT32 sf_file_send_auto(void);
SINT32 sf_app_auto_net_start(void);
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
} }

View File

@ -25,7 +25,7 @@ extern "C" {
#include "sf_ftp.h" #include "sf_ftp.h"
#include "sf_module.h" #include "sf_module.h"
#include "at_manager.h" #include "at_manager.h"
#include "sf_commu_mcu.h"
#define APNGPRS_WUYUAN1 "America.bics" #define APNGPRS_WUYUAN1 "America.bics"
#define APNGPRS_WUYUAN2 "bicsapn" #define APNGPRS_WUYUAN2 "bicsapn"
#define MEGA_TEST 0 #define MEGA_TEST 0
@ -4281,12 +4281,13 @@ SINT32 sf_auto_net_reg(void)
ret = SF_SIM_ERROR_APN; ret = SF_SIM_ERROR_APN;
sprintf((char *)logStr, "Error Code:0x%08X\n", ret); sprintf((char *)logStr, "Error Code:0x%08X\n", ret);
SLOGE(logStr); SLOGE(logStr);
sf_net_flag_set_done(NET_FLAG_NET_OK);
//sf_guide_operator_match_status_set(); //sf_guide_operator_match_status_set();
goto SF_MODULE_END; goto SF_MODULE_END;
} }
else else
{ {
sf_net_flag_set_done(NET_FLAG_NET_OK);
sprintf((char *)logStr, "Auto Operation Success,MCCMNC:%s\n", puiPara->OperatorCode); sprintf((char *)logStr, "Auto Operation Success,MCCMNC:%s\n", puiPara->OperatorCode);
SLOGI(logStr); SLOGI(logStr);
} }

View File

@ -53,6 +53,8 @@ extern "C" {
#include "sf_system.h" #include "sf_system.h"
#include "curl/curl.h" #include "curl/curl.h"
#include "sf_4G_sms_lpa_cmd.h" #include "sf_4G_sms_lpa_cmd.h"
#include "sf_commu_mcu.h"
/************************************************************************** /**************************************************************************
* C O N S T A N T S * * C O N S T A N T S *
**************************************************************************/ **************************************************************************/
@ -888,7 +890,7 @@ SINT32 sf_pic_send_ftp(void)
UINT8 piccount = 0; UINT8 piccount = 0;
UINT8 pic = 0; UINT8 pic = 0;
UINT8 csqlevel = 0; UINT8 csqlevel = 0;
int timeout = 120000; int timeout = 60000;
//SINT64 sendStartTime = 0; //SINT64 sendStartTime = 0;
UINT8 sendAlreadyFlag = 0; UINT8 sendAlreadyFlag = 0;
UINT8 timeoutCnt = 0; UINT8 timeoutCnt = 0;
@ -918,7 +920,7 @@ SINT32 sf_pic_send_ftp(void)
if(tempPicSize == 0) if(tempPicSize == 0)
{ {
timeout = 120000; timeout = 60000;
} }
else else
{ {
@ -950,6 +952,11 @@ SINT32 sf_pic_send_ftp(void)
printf("%s:%d pic:%d ftpFileName:%s filePath:%s fileStr:%s\n", __FUNCTION__, __LINE__, pic, ftpFileName[pic], filePath[pic], fileStr[pic]); printf("%s:%d pic:%d ftpFileName:%s filePath:%s fileStr:%s\n", __FUNCTION__, __LINE__, pic, ftpFileName[pic], filePath[pic], fileStr[pic]);
} }
*/ */
SF_STARTUP_TYPE_E StartMode = sf_poweron_type_get();
if((SF_MCU_STARTUP_TIMELAPSE == StartMode) || (SF_MCU_STARTUP_PIR == StartMode))
{
sf_net_flag_wait_done_timeout(NET_FLAG_INITT_OK, 120000);
}
for(pic = 0; pic < piccount; pic++) for(pic = 0; pic < piccount; pic++)
{ {
if(SF_FILE_TYPE_PIC_VIDEO == pThumbFileCfg->stfileattr[pic].enFileTye){ if(SF_FILE_TYPE_PIC_VIDEO == pThumbFileCfg->stfileattr[pic].enFileTye){

View File

@ -2704,8 +2704,8 @@ SINT32 sf_power_off_check_sd(void)
//sf_FlowLogCopyToCard(); //sf_FlowLogCopyToCard();
//if(sf_in_card_exist()) //if(sf_in_card_exist())
{ {
if(sf_get_mode_flag() || ((0 == puiPara->SendType)) || (startup == SF_MCU_STARTUP_RESET)) // if(sf_get_mode_flag() || ((0 == puiPara->SendType)) || (startup == SF_MCU_STARTUP_RESET))
sf_delete_send_flie_list(); // sf_delete_send_flie_list();
} }
/*check disk free size*/ /*check disk free size*/

View File

@ -241,6 +241,10 @@ int main(int argc, char *argv[])
{ {
sf_power_off(); sf_power_off();
} }
else if (SF_MCU_STARTUP_OFF == startup) {
sf_power_off_msg_to_cardv();
printf("[%s:%d] SF_MCU_STARTUP_OFF\n", __FUNCTION__, __LINE__);
}
//if((SF_MCU_STARTUP_ONKEY == startup) || (TRUE == autosend)) //if((SF_MCU_STARTUP_ONKEY == startup) || (TRUE == autosend))
{ {
//////////////////////////////// ////////////////////////////////

View File

@ -60,6 +60,7 @@
#include "Log.h" #include "Log.h"
#include "sf_4g_lpa.h" #include "sf_4g_lpa.h"
#include "sf_eg91_gps.h" #include "sf_eg91_gps.h"
#include "sf_commu_mcu.h"
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
extern "C" { extern "C" {
@ -84,6 +85,14 @@ SF_THREAD_S QlogTsk = {
.TskId = -1, .TskId = -1,
}; };
void sf_set_flag_wait(signed int ret)
{
if(ret != SF_SUCCESS)
{
sf_net_flag_set_done(NET_FLAG_SEND_END);
}
}
SINT32 app_ttyusb_IsOpen(void) { SINT32 app_ttyusb_IsOpen(void) {
int retryTime = 0; int retryTime = 0;
int retryFlag = 0; int retryFlag = 0;
@ -272,10 +281,10 @@ SINT32 sf_USB_net_init(void)
UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
if (!sf_app_while_flag()) if (!sf_app_while_flag())
{ {
printf("[%s:%d]is update ... \n", __FUNCTION__, __LINE__); printf("[%s:%d]is update ... \n", __FUNCTION__, __LINE__);
return; return ret;
} }
if (flag == 0) if (flag == 0)
{ {
flag = 1; flag = 1;
@ -292,25 +301,25 @@ SINT32 sf_USB_net_init(void)
} }
for (i = 0; i < 20; i++) for (i = 0; i < 100; i++)
{ {
if(strncmp(puiPara->ModuleVer, GPRS_MODULE_TYPE_EG915Q, 6) == 0) if(strncmp(puiPara->ModuleVer, GPRS_MODULE_TYPE_EG915Q, 6) == 0)
{ {
ret = sf_check_usb0(); ret = sf_check_usb0();
if(ret != SUCCESS) // if(ret != SUCCESS)
{ // {
ret = sf_check_eth0(); // ret = sf_check_eth0();
} // }
} }
else else
{ {
ret = sf_check_eth0(); ret = sf_check_eth0();
if(ret != SUCCESS) // if(ret != SUCCESS)
{ // {
ret = sf_check_usb0(); // ret = sf_check_usb0();
} // }
} }
if (SUCCESS == ret) if (SUCCESS == ret)
{ {
@ -320,7 +329,7 @@ SINT32 sf_USB_net_init(void)
} }
else else
{ {
sf_sleep_ms(500); sf_sleep_ms(100);
} }
} }
//sf_net_dns_ck(); //sf_net_dns_ck();
@ -1262,6 +1271,9 @@ static SINT32 app_file_transfer(SF_FN_PARAM_S *pfnParam) {
//pCustomerParam->GpsSendFlag = 0; //pCustomerParam->GpsSendFlag = 0;
} }
//to do : send lpa direct
sf_ftp_lpa_log_send();
if (sf_get_pic()) { if (sf_get_pic()) {
s32ret = sf_send_file_to_ftp(1); s32ret = sf_send_file_to_ftp(1);
sf_sms_set_pic(0); sf_sms_set_pic(0);
@ -1692,7 +1704,43 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam)
if (pCustomerParam->SendType != 0) { if (pCustomerParam->SendType != 0) {
break; break;
} }
#ifdef SF_HARDWARE_TEST
app_system_poweroff(SF_POWEROFF_NOT);
break;
#endif
s32ret = sf_4G_sim_IsInsert();
if (!s32ret) {
SF_APPCOMM_CHECK_RETURN(SF_FAILURE, SF_APP_ERROR_REQUEST);
}
s32ret = app_ttyusb_IsOpen();
SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST);
#if SF_QLOG_ENABLE
if (pCustomerParam->QLogSwitch == 1)
{
sf_app_qlog_start();
}
#endif
if (pCustomerParam->GprsMode != 1)
{
s32ret = sf_4G_sim_init(pfnParam);
SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST);
}
sf_app_auto_net_start();
s32ret = sf_4G_register_net_auto(pfnParam);
if (s32ret != SF_SUCCESS) {
sf_set_flag_wait(s32ret);
sf_set_signal_ready_flag(TRUE);
}
sf_app_auto_send_start();
// sf_share_mem_customer_down(1);
// SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST);
break;
case SF_MCU_STARTUP_BATCH_SEND: case SF_MCU_STARTUP_BATCH_SEND:
#ifdef SF_HARDWARE_TEST #ifdef SF_HARDWARE_TEST
@ -1949,8 +1997,6 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam)
set_at_parament(); set_at_parament();
sf_USB_net_init(); sf_USB_net_init();
//to do : send lpa direct
sf_ftp_lpa_log_send();
if ((SF_ON == pCustomerParam->GpsSwitch) || (pCustomerParam->FristSendDailyAndGps)) if ((SF_ON == pCustomerParam->GpsSwitch) || (pCustomerParam->FristSendDailyAndGps))
{ {

View File

@ -156,6 +156,16 @@ SF_THREAD_S LpaTskCfg =
.TskId = -1, .TskId = -1,
}; };
SF_THREAD_S AtuoSendTskCfg =
{
.IsRun = 0,
.TskId = -1,
};
SF_THREAD_S AtuoNetTskCfg =
{
.IsRun = 0,
.TskId = -1,
};
SINT8 debugFlag = 0; SINT8 debugFlag = 0;
UINT8 McuInitFlag = 0; UINT8 McuInitFlag = 0;
@ -913,6 +923,28 @@ UINT8 *sf_versionGet(UINT8 ver[],UINT8 fea[])
return ver; return ver;
} }
/*************************************************
Function: sf_power_off_net_flag_wait
Description: sf power off .
Input: N/A
Output: N/A
Return: 0:SUCCESS, errcode:FAIL
Others: N/A
*************************************************/
SINT32 sf_power_off_net_flag_wait(void)
{
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
SF_STARTUP_TYPE_E StartMode = sf_poweron_type_get();
if((SF_MCU_STARTUP_TIMELAPSE == StartMode) || (SF_MCU_STARTUP_PIR == StartMode))
{
sf_net_flag_wait_done_timeout(NET_FLAG_SEND_END, 120000);
}
if(sf_get_mode_flag() || ((0 == puiPara->SendType)) || (StartMode == SF_MCU_STARTUP_RESET))
{
sf_delete_send_flie_list();
}
return 0;
}
/************************************************* /*************************************************
Function: sf_power_off Function: sf_power_off
@ -936,12 +968,14 @@ void sf_power_off(void)
sf_power_off_check_sd(); sf_power_off_check_sd();
sf_power_off_check_sd_fail(); sf_power_off_check_sd_fail();
sf_power_off_net_flag_wait();
sf_power_off_check_sms();
sf_poweroff_check_lpa_excute_cmd(); sf_poweroff_check_lpa_excute_cmd();
sf_poweroff_check_lpa_enable_profile(); sf_poweroff_check_lpa_enable_profile();
sf_power_off_check_sms();
sf_power_off_module_ota(); sf_power_off_module_ota();
sf_power_off_module_sd_update(); sf_power_off_module_sd_update();
@ -1763,3 +1797,61 @@ SINT32 sf_app_lpa_start(void)
} }
return SF_SUCCESS; return SF_SUCCESS;
} }
void* sf_auto_send_thread(void *arg)
{
SLOGI("thread run\n");
sf_file_send_auto();
sf_net_flag_set_done(NET_FLAG_SEND_END);
AtuoSendTskCfg.IsRun = 0;
SLOGI("thread end\n");
return NULL;
}
SINT32 sf_app_auto_send_start(void)
{
SINT32 ret = SF_FAILURE;
if(AtuoSendTskCfg.IsRun)
{
SLOGE("thread has already run !!!\n");
return SF_FAILURE;
}
AtuoSendTskCfg.IsRun = 1;
SLOGI("thread run\n");
ret = pthread_create(&AtuoSendTskCfg.TskId, NULL, sf_auto_send_thread, NULL);
if(ret != SF_SUCCESS)
{
MLOGD("thread creat fail!\n");
return ret;
}
return SF_SUCCESS;
}
void* sf_auto_net_thread(void *arg)
{
SLOGI("thread run\n");
sf_net_flag_wait_done_timeout(NET_FLAG_NET_OK, 120000);
set_at_parament();
sf_USB_net_init();
sf_net_flag_set_done(NET_FLAG_INITT_OK);
AtuoNetTskCfg.IsRun = 0;
SLOGI("thread end\n");
return NULL;
}
SINT32 sf_app_auto_net_start(void)
{
SINT32 ret = SF_FAILURE;
if(AtuoNetTskCfg.IsRun)
{
SLOGE("thread has already run !!!\n");
return SF_FAILURE;
}
AtuoNetTskCfg.IsRun = 1;
SLOGI("thread run\n");
ret = pthread_create(&AtuoNetTskCfg.TskId, NULL, sf_auto_net_thread, NULL);
if(ret != SF_SUCCESS)
{
MLOGD("thread creat fail!\n");
return ret;
}
return SF_SUCCESS;
}

View File

@ -133,6 +133,50 @@ static pthread_t sfCommuMcuThread = 0;
int gsfd = -1; int gsfd = -1;
#if 1
static ID sf_net_flag_id = 0;
void sf_net_flag_init(void)
{
ER ret = E_OK;
T_CFLG cflg;
if ((ret |= vos_flag_create(&sf_net_flag_id, &cflg, "sf_mcu_flag_id")) != E_OK)
{
SYS_SLOGE("sf_net_flag_id fail\r\n");
}
vos_flag_clr(sf_net_flag_id, (FLGPTN)-1);
}
void sf_net_flag_set_done(NET_FLAG_INIT boot_init)
{
static int initflag = 0;
if(!initflag)
{
sf_net_flag_init();
initflag = 1;
}
vos_flag_set(sf_net_flag_id, (FLGPTN)(1 << boot_init));
}
int sf_net_flag_wait_done_timeout(NET_FLAG_INIT boot_init, int timeout_ms)
{
ER ret = E_OK;
FLGPTN flgptn;
if(sf_net_flag_id)
{
ret = vos_flag_wait_timeout(&flgptn, sf_net_flag_id, (FLGPTN)(1 << boot_init), TWF_ANDW, vos_util_msec_to_tick(timeout_ms));
if(unlikely(ret != E_OK)){
printf("[%s:%d]wait(%lu) init timeout(%ld ms)!\n", __FUNCTION__, __LINE__, boot_init, timeout_ms);
}
}
return ret;
}
#endif
static ID sf_mcu_flag_id = 0; static ID sf_mcu_flag_id = 0;
void sf_mcu_flag_init(void) void sf_mcu_flag_init(void)
@ -164,7 +208,7 @@ int sf_mcu_flag_wait_done_timeout(MCU_FLAG_INIT boot_init, int timeout_ms)
ret = vos_flag_wait_timeout(&flgptn, sf_mcu_flag_id, (FLGPTN)(1 << boot_init), TWF_ANDW, vos_util_msec_to_tick(timeout_ms)); ret = vos_flag_wait_timeout(&flgptn, sf_mcu_flag_id, (FLGPTN)(1 << boot_init), TWF_ANDW, vos_util_msec_to_tick(timeout_ms));
if(unlikely(ret != E_OK)){ if(unlikely(ret != E_OK)){
printf("wait(%lu) init timeout(%ld ms)!\n", boot_init, timeout_ms); printf("[%s:%d]wait(%lu) init timeout(%ld ms)!\n", __FUNCTION__, __LINE__, boot_init, timeout_ms);
} }
return ret; return ret;

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 10000 #define FASTBOOT_WAIT_FILESYS_TIMEOUT_MS 15000
#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

@ -100,6 +100,12 @@ static void card_insert_job2(void)
if (FST_STA_OK != ret) { if (FST_STA_OK != ret) {
DBG_ERR("Open err %d\r\n", ret); DBG_ERR("Open err %d\r\n", ret);
sf_set_emmc_err(1); sf_set_emmc_err(1);
#if USE_RTOS_MMC_CHECK
SF_RtosStrgRegister(1, ret);
#endif
fastboot_set_done(BOOT_INIT_FILESYSOK_2);
printf("filesys2_init e err\r\n");
return;
} }
pStrg->GetParam(STRG_GET_DEVICE_PHY_SECTORS, (UINT32)&totoal_sectors, 0); pStrg->GetParam(STRG_GET_DEVICE_PHY_SECTORS, (UINT32)&totoal_sectors, 0);
if (totoal_sectors == 0) { if (totoal_sectors == 0) {

View File

@ -361,6 +361,34 @@ static void MovieFast_ShutDown(void)
//DBG_DUMP("wait filesys close ...\n"); //DBG_DUMP("wait filesys close ...\n");
//FileSys_Close(FST_TIME_INFINITE); //FileSys_Close(FST_TIME_INFINITE);
int cnt = 10;
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
INT32 ret = 0;
while((cnt) && (mmc_dev != NULL))
{
if(mmc_dev->dev_type == MMC_DEV_SD)
{
ret = (INT32)FileSys_GetParamEx('A', FST_PARM_TASK_STS, 0);
}
else
{
ret = (INT32)FileSys_GetParamEx('B', FST_PARM_TASK_STS, 0);
}
if(ret == FST_STA_BUSY)
{
DBG_DUMP("wait filesys BUSY ...\n");
cnt--;
vos_util_delay_ms(200);
}
else {
break;
}
}
FileSys_CloseEx('A', FST_TIME_INFINITE); FileSys_CloseEx('A', FST_TIME_INFINITE);
FileSys_CloseEx('B', FST_TIME_INFINITE); FileSys_CloseEx('B', FST_TIME_INFINITE);
#if SF_IQ_TEST != ENABLE #if SF_IQ_TEST != ENABLE
@ -2030,7 +2058,7 @@ DBG_WRN(">>>>>>>>>>>>>>> movie thread <<<<<<<<<<\r\n");
/*.............sun chen@20240111 end.................*/ /*.............sun chen@20240111 end.................*/
nvt_cmdsys_runcmd("ae dbg 0 256 1 "); // nvt_cmdsys_runcmd("ae dbg 0 256 1 ");
//nvt_cmdsys_runcmd("awb dbg 0 16 1 "); //nvt_cmdsys_runcmd("awb dbg 0 16 1 ");
HD_VIDEO_FRAME frame_capture = {0}; HD_VIDEO_FRAME frame_capture = {0};
@ -2125,8 +2153,8 @@ DBG_WRN(">>>>>>>>>>>>>>> movie thread <<<<<<<<<<\r\n");
} }
} while(1); } while(1);
//nvt_cmdsys_runcmd("ae dbg 0 0"); // nvt_cmdsys_runcmd("ae dbg 0 0");
//nvt_cmdsys_runcmd("awb dbg 0 0"); // nvt_cmdsys_runcmd("awb dbg 0 0");
vos_perf_mark(&g_alg_end_time); vos_perf_mark(&g_alg_end_time);
} }
vos_util_delay_ms(100); vos_util_delay_ms(100);
@ -2431,11 +2459,13 @@ static void MovieFast_Close(void)
EXIT: EXIT:
if(g_dcf_hdl >= 0){ if(g_dcf_hdl >= 0){
DBG_DUMP("g_dcf_hdl = %d\n", g_dcf_hdl);
DCF_Close(g_dcf_hdl); DCF_Close(g_dcf_hdl);
g_dcf_hdl = -1; g_dcf_hdl = -1;
} }
#if (FS_MULTI_STRG_FUNC) #if (FS_MULTI_STRG_FUNC)
if(g_dcf_hdl2 >= 0){ if(g_dcf_hdl2 >= 0){
DBG_DUMP("g_dcf_hdl2 = %d\n", g_dcf_hdl2);
DCF_Close(g_dcf_hdl2); DCF_Close(g_dcf_hdl2);
g_dcf_hdl2 = -1; g_dcf_hdl2 = -1;
} }

View File

@ -802,12 +802,14 @@ INT32 PhotoFast_FileNaming_Close(void)
if(DrvGPIO_GetPhotoMovieModeFromMonitor() != DX_HUNTING_MODE_PHOTO_MOVIE ){ if(DrvGPIO_GetPhotoMovieModeFromMonitor() != DX_HUNTING_MODE_PHOTO_MOVIE ){
if(g_dcf_hdl >= 0){ if(g_dcf_hdl >= 0){
DBG_DUMP("g_dcf_hdl = %d\n", g_dcf_hdl);
DCF_Close(g_dcf_hdl); DCF_Close(g_dcf_hdl);
g_dcf_hdl = -1; g_dcf_hdl = -1;
} }
#if (FS_MULTI_STRG_FUNC) #if (FS_MULTI_STRG_FUNC)
if(g_dcf_hdl2 >= 0){ if(g_dcf_hdl2 >= 0){
DBG_DUMP("g_dcf_hdl2 = %d\n", g_dcf_hdl2);
DCF_Close(g_dcf_hdl2); DCF_Close(g_dcf_hdl2);
g_dcf_hdl2 = -1; g_dcf_hdl2 = -1;
} }
@ -983,13 +985,13 @@ INT32 PhotoFast_Wait_FileSys(UINT32 timeout_ms)
// } // }
// #endif // #endif
static INT32 ret = E_SYS; static INT32 ret = E_SYS;
static int flag = 0; // static int flag = 0;
if(flag) // if(flag)
{ // {
return ret; // return ret;
} // }
flag = 1; // flag = 1;
if(gpio_getPin(GPIO_CARD_DETECT) == 0) if(gpio_getPin(GPIO_CARD_DETECT) == 0)
{ {
//DBG_WRN("BOOT_INIT_FILESYSOK\n"); //DBG_WRN("BOOT_INIT_FILESYSOK\n");
@ -1003,9 +1005,11 @@ INT32 PhotoFast_Wait_FileSys(UINT32 timeout_ms)
ret = E_OK; ret = E_OK;
} }
else { else {
sf_fastboot_msg_en(ENABLE);
DBG_ERR("boot_init = BOOT_INIT_INVALID\n"); DBG_ERR("boot_init = BOOT_INIT_INVALID\n");
ret = E_SYS; ret = E_SYS;
} }
// DBG_WRN("ret = %d, ret2 = %d\n", ret, ret2);
return ret; return ret;
// 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);
@ -1019,21 +1023,23 @@ INT32 PhotoFast_Wait_FileNaming(UINT32 timeout_ms)
{ {
//DCF_HANDLE handle = MovieFast_Get_DCF_Handle(); //DCF_HANDLE handle = MovieFast_Get_DCF_Handle();
static INT32 ret = E_SYS; static INT32 ret = E_SYS;
static int flag = 0; // static int flag = 0;
BOOT_INIT boot_init = BOOT_INIT_INVALID; BOOT_INIT boot_init = BOOT_INIT_INVALID;
if(flag)
{
return ret;
}
flag = 1;
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
if(mmc_dev ==NULL) if(mmc_dev ==NULL)
{ {
sf_fastboot_msg_en(ENABLE);
DBG_ERR("No MMC_Dev Can use!\n"); DBG_ERR("No MMC_Dev Can use!\n");
return E_SYS; return E_SYS;
} }
// if(flag)
// {
// return ret;
// }
// flag = 1;
if(MMC_DEV_SD == mmc_dev->dev_type) if(MMC_DEV_SD == mmc_dev->dev_type)
{ {
boot_init = BOOT_INIT_FILENAMINGOK; boot_init = BOOT_INIT_FILENAMINGOK;
@ -1051,9 +1057,11 @@ INT32 PhotoFast_Wait_FileNaming(UINT32 timeout_ms)
ret = fastboot_wait_done_timeout(boot_init, timeout_ms); ret = fastboot_wait_done_timeout(boot_init, timeout_ms);
} }
else{ else{
sf_fastboot_msg_en(ENABLE);
DBG_ERR("boot_init = BOOT_INIT_INVALID\n"); DBG_ERR("boot_init = BOOT_INIT_INVALID\n");
ret = E_SYS; ret = E_SYS;
} }
// DBG_WRN("boot_init = %d, ret = %d\n", boot_init, ret);
return ret; return ret;
} }
@ -1856,8 +1864,8 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg)
// nvt_cmdsys_runcmd("vprc info"); // nvt_cmdsys_runcmd("vprc info");
// nvt_cmdsys_runcmd("ctl_ipp dump_hdl_all"); // nvt_cmdsys_runcmd("ctl_ipp dump_hdl_all");
//ISPT_TOTAL_GAIN total; //ISPT_TOTAL_GAIN total;
nvt_cmdsys_runcmd("ae dbg 0 256 1 "); // nvt_cmdsys_runcmd("ae dbg 0 256 1 ");
nvt_cmdsys_runcmd("ae dbg 0 16 1 "); // nvt_cmdsys_runcmd("ae dbg 0 16 1 ");
// isp_dbg_set_dbg_mode(0, 0x0202002 ); // isp_dbg_set_dbg_mode(0, 0x0202002 );
// nvt_cmdsys_runcmd("iq dbg 0 0 "); // nvt_cmdsys_runcmd("iq dbg 0 0 ");
@ -2069,8 +2077,8 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg)
VOS_TICK tick; VOS_TICK tick;
PhotoFast_GetTick(video_cap_frame.count, &tick); PhotoFast_GetTick(video_cap_frame.count, &tick);
nvt_cmdsys_runcmd("ae dbg 0 0"); // nvt_cmdsys_runcmd("ae dbg 0 0");
nvt_cmdsys_runcmd("awb dbg 0 0"); // nvt_cmdsys_runcmd("awb dbg 0 0");
DBG_DUMP("*** trigger frame count = %llu (start from 1) frame timestamp = %llu, tick=%lu ms , \n", video_cap_frame.count, video_cap_frame.timestamp, tick); /* UINT64, use %llu */ DBG_DUMP("*** trigger frame count = %llu (start from 1) frame timestamp = %llu, tick=%lu ms , \n", video_cap_frame.count, video_cap_frame.timestamp, tick); /* UINT64, use %llu */
//Set_AEMODE(1); //Set_AEMODE(1);
} }
@ -2343,6 +2351,31 @@ static void PhotoFast_ShutDown(void)
// } // }
#endif #endif
// FileSys_Close(FST_TIME_INFINITE); // FileSys_Close(FST_TIME_INFINITE);
int cnt = 10;
SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev();
INT32 ret = 0;
while((cnt) && (mmc_dev != NULL))
{
if(mmc_dev->dev_type == MMC_DEV_SD)
{
ret = (INT32)FileSys_GetParamEx('A', FST_PARM_TASK_STS, 0);
}
else
{
ret = (INT32)FileSys_GetParamEx('B', FST_PARM_TASK_STS, 0);
}
if(ret == FST_STA_BUSY)
{
DBG_DUMP("wait filesys BUSY ...\n");
cnt--;
vos_util_delay_ms(200);
}
else {
break;
}
}
FileSys_CloseEx('A', FST_TIME_INFINITE); FileSys_CloseEx('A', FST_TIME_INFINITE);
FileSys_CloseEx('B', FST_TIME_INFINITE); FileSys_CloseEx('B', FST_TIME_INFINITE);
#if SF_IQ_TEST != ENABLE #if SF_IQ_TEST != ENABLE

View File

@ -2373,7 +2373,8 @@ 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; INT32 waitFalg = 1;
static int UsrmemFlag = 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 &&
@ -2384,28 +2385,26 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
// waitFalg = 1; // 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){ if(PhotoFast_Wait_FileSys(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) == E_OK
waitFalg = 1; && PhotoFast_Wait_FileNaming(FASTBOOT_WAIT_FILENAMING_TIMEOUT_MS) == E_OK){
} waitFalg = 0;
}
if(waitFalg) if(waitFalg)
{ {
if(sf_is_emmc_err()) if((sf_is_emmc_err()) && (!UsrmemFlag))
{ {
sf_fastboot_msg_en(ENABLE); sf_fastboot_msg_en(ENABLE);
DBG_WRN("filesys not ready, store data into mem\n"); DBG_WRN("filesys not ready, store data into mem\n");
SYS_USRMEM usrmem = {0}; SYS_USRMEM usrmem = {0};
if(sys_usrmem_init(&usrmem) == E_OK){ if(sys_usrmem_init(&usrmem) == E_OK){
sys_usrmem_write_photo( sys_usrmem_write_photo(
&usrmem, &usrmem,
(UINT32) queue_ele_in->jpg_thumb_addr, (UINT32) queue_ele_in->jpg_thumb_addr,
queue_ele_in->jpg_thumb_size queue_ele_in->jpg_thumb_size
); );
UsrmemFlag = 1;
} }
} }
} }

View File

@ -45,10 +45,10 @@
#include <FileSysTsk.h> #include <FileSysTsk.h>
#include "sf_sd_common.h" #include "sf_sd_common.h"
static BOOL IsCardFull = FALSE; static BOOL IsCardFull = TRUE;
SF_CALLBACK_SD_CMD g_fpSd_Exist_CB = NULL; SF_CALLBACK_SD_CMD g_fpSd_Exist_CB = NULL;
extern BOOL DrvCARD_DetStrgCard(void); extern BOOL DrvCARD_DetStrgCard(void);
static BOOL IsEmmcFull = FALSE; static BOOL IsEmmcFull = TRUE;
static BOOL IsEmmcErr = FALSE; static BOOL IsEmmcErr = FALSE;
SF_RTOS_ST_MMC_DEV *sf_rtos_mmc_dev[MMC_DEV_MAX_NUM] = {NULL}; SF_RTOS_ST_MMC_DEV *sf_rtos_mmc_dev[MMC_DEV_MAX_NUM] = {NULL};
@ -86,8 +86,9 @@ UINT32 sf_check_card_full(void)
} }
else else
{ {
ret = FALSE; IsCardFull = FALSE;
//printf("%s:%d sd card no full diskFree=%lu",__FUNCTION__,__LINE__,diskFree); ret = FALSE;
//printf("%s:%d sd card no full diskFree=%lu",__FUNCTION__,__LINE__,diskFree);
} }
printf("[%s:%d]sd card diskFree=%lluM\n", __FUNCTION__, __LINE__, diskFree); printf("[%s:%d]sd card diskFree=%lluM\n", __FUNCTION__, __LINE__, diskFree);
@ -121,8 +122,9 @@ UINT32 sf_check_emmc_full(void)
} }
else else
{ {
ret = FALSE; IsEmmcFull = FALSE;
//printf("%s:%d sd card no full diskFree=%lu",__FUNCTION__,__LINE__,diskFree); ret = FALSE;
//printf("%s:%d sd card no full diskFree=%lu",__FUNCTION__,__LINE__,diskFree);
} }
printf("[%s:%d]emmc diskFree=%lluM\n", __FUNCTION__, __LINE__, diskFree); printf("[%s:%d]emmc diskFree=%lluM\n", __FUNCTION__, __LINE__, diskFree);