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

This commit is contained in:
xiehongyan 2024-01-29 10:55:54 +08:00
commit 500d91ba50
12 changed files with 85 additions and 17 deletions

View File

@ -271,15 +271,18 @@ void SF_StrgRegister(SF_MESSAGE_BUF_S *pMessageBuf)
else else
{ {
sf_mmc_dev[MMC_DEV_EMMC]->node = MMC_DEV_NODE_STATE_NO_EXIST; sf_mmc_dev[MMC_DEV_EMMC]->node = MMC_DEV_NODE_STATE_NO_EXIST;
sf_set_emmc_err(1);
} }
if(pMessageBuf->arg1 == CMD_SD_STRG_CB_MOUNT_FINISH) if(pMessageBuf->arg1 == CMD_SD_STRG_CB_MOUNT_FINISH)
{ {
sf_mmc_dev[MMC_DEV_EMMC]->moumted_state = MMC_DEV_MOUNT_STATE_MOUNTED; sf_mmc_dev[MMC_DEV_EMMC]->moumted_state = MMC_DEV_MOUNT_STATE_MOUNTED;
sf_set_emmc_err(0);
} }
else if(pMessageBuf->arg1 == CMD_SD_STRG_CB_UNMOUNT_FINISH) else if(pMessageBuf->arg1 == CMD_SD_STRG_CB_UNMOUNT_FINISH)
{ {
sf_mmc_dev[MMC_DEV_EMMC]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED; sf_mmc_dev[MMC_DEV_EMMC]->moumted_state = MMC_DEV_MOUNT_STATE_UNMOUNTED;
sf_set_emmc_err(1);
} }
} }

View File

@ -70,6 +70,8 @@ SINT32 sf_in_update(void);
void sf_set_card_statu(UINT32 val); void sf_set_card_statu(UINT32 val);
UINT32 sf_get_card_statu(void); UINT32 sf_get_card_statu(void);
BOOL sf_system_check_bt_ko(void); BOOL sf_system_check_bt_ko(void);
void sf_set_emmc_err(BOOL val);
BOOL sf_is_emmc_err(void);
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
} }

View File

@ -616,6 +616,7 @@ static SINT32 sfStrgDevOnActionMount(int dev_id, int result)
{ {
printf("EMMC has Mounted!\r\n"); printf("EMMC has Mounted!\r\n");
sf_strg_dev_register(MMC_DEV_EMMC, MMC_DEV_MOUNT_STATE_MOUNTED); sf_strg_dev_register(MMC_DEV_EMMC, MMC_DEV_MOUNT_STATE_MOUNTED);
sf_set_emmc_err(0);
} }
// if(SF_MCU_STARTUP_ONKEY == startup) // if(SF_MCU_STARTUP_ONKEY == startup)
// { // {
@ -693,6 +694,7 @@ static SINT32 sfStrgDevSdHandler(int cb_evt, int dev_id, int result)
static SINT32 sfStrgDevEmmcHandler(int cb_evt, int dev_id, int result) static SINT32 sfStrgDevEmmcHandler(int cb_evt, int dev_id, int result)
{ {
sf_set_emmc_err(1);
switch(cb_evt) switch(cb_evt)
{ {
case CMD_SD_STRG_CB_UNKNOWN: case CMD_SD_STRG_CB_UNKNOWN:

View File

@ -45,6 +45,7 @@ static SINT32 IsCardFull = 0;
static SINT32 isGoing2Pir = 0; static SINT32 isGoing2Pir = 0;
static SINT32 IsCard = 0; static SINT32 IsCard = 0;
static int formatSD = CMD_FORMAT_SD_ERR; static int formatSD = CMD_FORMAT_SD_ERR;
static BOOL IsEmmcErr = TRUE;
SF_THREAD_S PirMonitorTskCfg = SF_THREAD_S PirMonitorTskCfg =
{ {
@ -547,7 +548,7 @@ SINT32 sf_is_card_full(void)
void sf_set_card_full(SINT32 vol) void sf_set_card_full(SINT32 vol)
{ {
UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
if((0 == puiPara->SendType) && (!sf_get_mode_flag())) if((0 == puiPara->SendType) && (!sf_get_mode_flag()) &&(sf_is_emmc_err()))
{ {
MLOGW("The memory sending function has been enabled, but the identification is not effective. IsCardFull:%d\n",vol); MLOGW("The memory sending function has been enabled, but the identification is not effective. IsCardFull:%d\n",vol);
IsCardFull = 0; IsCardFull = 0;
@ -726,6 +727,17 @@ SINT32 sf_in_update(void)
return (regValue & 0xFF) ? 0:1; return (regValue & 0xFF) ? 0:1;
} }
BOOL sf_is_emmc_err(void)
{
//printf("[%s]:%d IsEmmcFull:%d\n", __FUNCTION__, __LINE__, IsEmmcFull);
return IsEmmcErr;
}
void sf_set_emmc_err(BOOL vol)
{
//printf("[%s]:%d IsEmmcFull:%d\n", __FUNCTION__, __LINE__, IsEmmcFull);
IsEmmcErr = vol;
}
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
} }

View File

@ -2441,12 +2441,20 @@ static int sf_is_sdc_mounted(void)
int sf_check_sd(void) int sf_check_sd(void)
{ {
UINT8 i = 0; UINT8 i = 0;
int ret = SF_SUCCESS; static int ret = SF_SUCCESS;
int cnt = 0; int cnt = 0;
static int flag = 0;
if((flag) && (sf_get_mode_flag() == 0))
{
MLOGI("SD Status:%d\r\n", ret);
return ret;
}
if(0 == sf_in_card_exist() && (0 == sf_in_emmc_exist())) if(0 == sf_in_card_exist() && (0 == sf_in_emmc_exist()))
{ {
NET_SLOGE("NO SD\r\n"); NET_SLOGE("NO SD\r\n");
return SF_FAILURE; flag = 1;
ret = SF_FAILURE;
return ret;
} }
if (sf_sd_status_get() != SF_SD_OK) { if (sf_sd_status_get() != SF_SD_OK) {
ret = SF_FAILURE; ret = SF_FAILURE;
@ -2476,8 +2484,10 @@ int sf_check_sd(void)
} }
} }
flag = 1;
return ret; return ret;
} }
flag = 1;
return ret; return ret;
} }
/************************************************* /*************************************************

View File

@ -21,5 +21,7 @@ BOOL sf_in_card_exist(void);
BOOL sf_in_emmc_exist(void); BOOL sf_in_emmc_exist(void);
void sf_set_card_statu(UINT32 val); void sf_set_card_statu(UINT32 val);
UINT32 sf_get_card_statu(void); UINT32 sf_get_card_statu(void);
void sf_set_emmc_err(BOOL val);
BOOL sf_is_emmc_err(void);
#endif #endif

View File

@ -3591,7 +3591,7 @@ INT32 sf_mem_write_photo(UINT32 buf, UINT32 size)
{ {
UINT32 fd = 0; UINT32 fd = 0;
UIMenuStoreInfo *puiPara = sf_ui_para_get(); UIMenuStoreInfo *puiPara = sf_ui_para_get();
if(0 == puiPara->SendType) if((0 == puiPara->SendType) && sf_is_emmc_err())
{ {
MLOGD("filesys not ready, store data into mem\n"); MLOGD("filesys not ready, store data into mem\n");
system("rm -rf /tmp/MEMPHOTO.JPG"); system("rm -rf /tmp/MEMPHOTO.JPG");

View File

@ -49,7 +49,7 @@ SF_CALLBACK_SD_CMD g_fpSd_Exist_CB = NULL;
static int formatSD = CMD_FORMAT_SD_ERR; static int formatSD = CMD_FORMAT_SD_ERR;
static BOOL IsCardFull = TRUE; static BOOL IsCardFull = TRUE;
static BOOL IsEmmcFull = TRUE; static BOOL IsEmmcFull = TRUE;
static BOOL IsEmmcErr = TRUE;
void sf_sd_exist_reg_cb(SF_CALLBACK_SD_CMD fpCB) void sf_sd_exist_reg_cb(SF_CALLBACK_SD_CMD fpCB)
{ {
g_fpSd_Exist_CB = fpCB; g_fpSd_Exist_CB = fpCB;
@ -105,3 +105,14 @@ void sf_set_emmc_card_full(BOOL val)
{ {
IsEmmcFull = val; IsEmmcFull = val;
} }
BOOL sf_is_emmc_err(void)
{
//printf("[%s]:%d IsEmmcFull:%d\n", __FUNCTION__, __LINE__, IsEmmcFull);
return IsEmmcErr;
}
void sf_set_emmc_err(BOOL val)
{
//printf("[%s]:%d IsEmmcFull:%d\n", __FUNCTION__, __LINE__, IsEmmcFull);
IsEmmcErr = val;
}

View File

@ -96,7 +96,11 @@ static void card_insert_job2(void)
printf("filesys2_init b\r\n"); printf("filesys2_init b\r\n");
memset(&Param, 0, sizeof(FILE_TSK_INIT_PARAM)); memset(&Param, 0, sizeof(FILE_TSK_INIT_PARAM));
pStrg->Open(); ret = pStrg->Open();
if (FST_STA_OK != ret) {
DBG_ERR("Open err %d\r\n", ret);
sf_set_emmc_err(1);
}
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) {
DBG_WRN("totoal_sectors couldn't be zero\n"); DBG_WRN("totoal_sectors couldn't be zero\n");
@ -126,9 +130,14 @@ static void card_insert_job2(void)
ret = FileSys_OpenEx('B', StrgDXH2, &Param); ret = FileSys_OpenEx('B', StrgDXH2, &Param);
if (FST_STA_OK != ret) { if (FST_STA_OK != ret) {
printf("FileSys_Open err %d\r\n", ret); printf("FileSys_Open err %d\r\n", ret);
sf_set_emmc_err(1);
} }
FileSys_WaitFinishEx('B'); ret = FileSys_WaitFinishEx('B');
if (FST_STA_OK != ret) {
printf("FileSys_WaitFinishEx err %d\r\n", ret);
sf_set_emmc_err(1);
}
FileSys_SetParamEx('B', FST_PARM_UPDATE_FSINFO , TRUE); FileSys_SetParamEx('B', FST_PARM_UPDATE_FSINFO , TRUE);
#if USE_RTOS_MMC_CHECK #if USE_RTOS_MMC_CHECK
SF_RtosStrgRegister(1, ret); SF_RtosStrgRegister(1, ret);

View File

@ -2393,17 +2393,20 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data)
} }
if(waitFalg) if(waitFalg)
{ {
sf_fastboot_msg_en(ENABLE); if(sf_is_emmc_err())
DBG_WRN("filesys not ready, store data into mem\n"); {
sf_fastboot_msg_en(ENABLE);
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
); );
}
} }
} }
else else

View File

@ -533,5 +533,7 @@ UINT32 sf_in_mcu_update(void);
int sf_base64_decode(const char * base64, char * bindata); int sf_base64_decode(const char * base64, char * bindata);
void sf_dailyReport_refresh(void); void sf_dailyReport_refresh(void);
void sf_fastboot_msg_en(int en); void sf_fastboot_msg_en(int en);
void sf_set_emmc_err(BOOL val);
BOOL sf_is_emmc_err(void);
#endif #endif

View File

@ -49,6 +49,7 @@ static BOOL IsCardFull = FALSE;
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 = 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};
@ -129,6 +130,17 @@ UINT32 sf_check_emmc_full(void)
return ret; return ret;
} }
BOOL sf_is_emmc_err(void)
{
//printf("[%s]:%d IsEmmcFull:%d\n", __FUNCTION__, __LINE__, IsEmmcFull);
return IsEmmcErr;
}
void sf_set_emmc_err(BOOL val)
{
//printf("[%s]:%d IsEmmcFull:%d\n", __FUNCTION__, __LINE__, IsEmmcFull);
IsEmmcErr = val;
}
void sf_sd_exist_reg_cb(SF_CALLBACK_SD_CMD fpCB) void sf_sd_exist_reg_cb(SF_CALLBACK_SD_CMD fpCB)
{ {
g_fpSd_Exist_CB = fpCB; g_fpSd_Exist_CB = fpCB;