修改部分EMMC和SD卡切换逻辑

This commit is contained in:
sober.song 2023-12-25 11:30:44 +08:00
parent 2a20d7fd2a
commit 69dc8b618c
5 changed files with 39 additions and 17 deletions

View File

@ -1236,13 +1236,13 @@ static void MovieExe_FileNamingCB(MOVIE_CFG_REC_ID id, char *pFileName)
#if(SENSOR_CAPS_COUNT>=2 || ((defined(_NVT_ETHREARCAM_RX_)) && (ETH_REARCAM_CAPS_COUNT >= 2))) #if(SENSOR_CAPS_COUNT>=2 || ((defined(_NVT_ETHREARCAM_RX_)) && (ETH_REARCAM_CAPS_COUNT >= 2)))
char NH_endChar='A'; char NH_endChar='A';
if(mmc_dev == MMC_DEV_SD) //if(mmc_dev == MMC_DEV_SD)
{ {
NH_endChar='A'; //NH_endChar='A';
} }
else if(mmc_dev == MMC_DEV_EMMC) //else if(mmc_dev == MMC_DEV_EMMC)
{ {
NH_endChar='B'; //NH_endChar='B';
} }
if(id < _CFG_REC_ID_MAX){ if(id < _CFG_REC_ID_MAX){

View File

@ -595,7 +595,7 @@ static SINT32 sf_app_process_cmd_SD(SF_MESSAGE_BUF_S *pMessageBuf)
UINT32 status; UINT32 status;
SINT16 startup = sf_poweron_type_get(); SINT16 startup = sf_poweron_type_get();
MLOGD("[%d,%s]\n",pMessageBuf->arg1,app_process_SD_getstatusstring(pMessageBuf->arg1)); MLOGD("[dev_id:%d,evt:%s]\n",pMessageBuf->arg2,app_process_SD_getstatusstring(pMessageBuf->arg1));
sf_mmc_dev_register(pMessageBuf); sf_mmc_dev_register(pMessageBuf);

View File

@ -19,8 +19,6 @@
#include "sf_mmc_dev.h" #include "sf_mmc_dev.h"
#include <sf_param_common.h> #include <sf_param_common.h>
typedef struct typedef struct
{ {
int event; int event;
@ -28,13 +26,12 @@ typedef struct
int mounted_status; int mounted_status;
}STRG_CB_PARAM; }STRG_CB_PARAM;
static SF_ST_MMC_DEV sf_mmc_dev[MMC_DEV_MAX_NUM] = {0}; static SF_ST_MMC_DEV sf_mmc_dev[MMC_DEV_MAX_NUM] = {0};
SINT32 sf_mmc_dev_space_check_full(const char *mountPath) SINT32 sf_mmc_dev_space_check_full(const char *mountPath)
{ {
SF_STORE_ATTR_S *pstoreattrs = NULL; SF_STORE_ATTR_S *pstoreattrs = NULL;
SF_COMM_CHECK_POINTER(pstoreattrs,SF_FAILURE); //SF_COMM_CHECK_POINTER(pstoreattrs,SF_FAILURE);
SINT32 fd = -1; SINT32 fd = -1;
UINT32 Isfull = 0; UINT32 Isfull = 0;
fd = open(mountPath, O_RDONLY,0); fd = open(mountPath, O_RDONLY,0);
@ -100,12 +97,14 @@ static int sf_mmc_dev_node_check(const char *devName)
void sf_mmc_dev_register(SF_MESSAGE_BUF_S *pMessageBuf) void sf_mmc_dev_register(SF_MESSAGE_BUF_S *pMessageBuf)
{ {
STRG_CB_PARAM strg_cb_param; STRG_CB_PARAM strg_cb_param;
UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
strg_cb_param.event = pMessageBuf->arg1; strg_cb_param.event = pMessageBuf->arg1;
strg_cb_param.dev_id = pMessageBuf->arg2; strg_cb_param.dev_id = pMessageBuf->arg2;
strg_cb_param.mounted_status = pMessageBuf->arg3; strg_cb_param.mounted_status = pMessageBuf->arg3;
MLOGD("[dev_id:%d, evt:%d]\n",strg_cb_param.dev_id, strg_cb_param.event);
if(strg_cb_param.dev_id == MMC_DEV_SD) if(strg_cb_param.dev_id == MMC_DEV_SD)
{ {
if(strg_cb_param.event == CMD_SD_STRG_CB_INSERTED) if(strg_cb_param.event == CMD_SD_STRG_CB_INSERTED)
@ -189,8 +188,13 @@ void sf_mmc_dev_register(SF_MESSAGE_BUF_S *pMessageBuf)
MMC_DEV_TYPE sf_mmc_check_workable_dev(void) MMC_DEV_TYPE sf_mmc_check_workable_dev(void)
{ {
MMC_DEV_TYPE workable_dev = MMC_DEV_NO; MMC_DEV_TYPE workable_dev = MMC_DEV_NO;
MLOGD("sf mmc check workable dev start!!!\n");
if(sf_mmc_dev[MMC_DEV_EMMC].node == MMC_DEV_NODE_STATE_NO_EXIST) //EMMC节点不存在 if((sf_mmc_dev[MMC_DEV_SD].node == MMC_DEV_NODE_STATE_NO_EXIST) &&
(sf_mmc_dev[MMC_DEV_EMMC].node == MMC_DEV_NODE_STATE_NO_EXIST))
{
workable_dev = MMC_DEV_NO;
}
else if(sf_mmc_dev[MMC_DEV_EMMC].node == MMC_DEV_NODE_STATE_NO_EXIST) //EMMC节点不存在
{ {
if(sf_mmc_dev[MMC_DEV_EMMC].moumted_state == MMC_DEV_MOUNT_STATE_MOUNTED) if(sf_mmc_dev[MMC_DEV_EMMC].moumted_state == MMC_DEV_MOUNT_STATE_MOUNTED)
{ {
@ -226,7 +230,12 @@ MMC_DEV_TYPE sf_mmc_check_workable_dev(void)
} }
else //MMC节点都存在 else //MMC节点都存在
{ {
if(sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) if((sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) &&
(sf_mmc_dev[MMC_DEV_EMMC].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED))
{
workable_dev = MMC_DEV_NO;
}
else if(sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)
{ {
if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH) if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH)
{ {
@ -278,5 +287,13 @@ MMC_DEV_TYPE sf_mmc_check_workable_dev(void)
} }
} }
} }
MLOGD("sf mmc check workable dev end, dev_id = %d!!!\n", workable_dev);
for(int i = 0; i < 2; i++)
{
MLOGD("node:%d, mount:%d, space:%d, loop:%d\n",
sf_mmc_dev[i].node, sf_mmc_dev[i].moumted_state,
sf_mmc_dev[i].space_state, sf_mmc_dev[i].loop_state);
}
return workable_dev; return workable_dev;
} }

View File

@ -112,7 +112,7 @@ static void card_insert_job(void)
//if(TRUE == sf_check_card_full()) //if(TRUE == sf_check_card_full())
//{ //{
//DBG_WRN("ERR card full\r\n"); //DBG_WRN("ERR card full\r\n");
//fastboot_set_done(BOOT_INIT_FILESYSOK); fastboot_set_done(BOOT_INIT_FILESYSOK);
//} //}
//else //else
//{ //{
@ -146,7 +146,7 @@ static void card_insert_job(void)
// FileSys_SetParamEx('B', FST_PARM_UPDATE_FSINFO , TRUE); // FileSys_SetParamEx('B', FST_PARM_UPDATE_FSINFO , TRUE);
#endif #endif
fastboot_set_done(BOOT_INIT_FILESYSOK); //fastboot_set_done(BOOT_INIT_FILESYSOK);
DBG_WRN("filesys_init e\r\n"); DBG_WRN("filesys_init e\r\n");
} }

View File

@ -183,8 +183,13 @@ int sf_rtos_mmc_dev_register(int devid, int mounted_state)
MMC_DEV_TYPE sf_rtos_mmc_check_workable_dev(void) MMC_DEV_TYPE sf_rtos_mmc_check_workable_dev(void)
{ {
MMC_DEV_TYPE workable_dev = MMC_DEV_NO; MMC_DEV_TYPE workable_dev = MMC_DEV_NO;
if(sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) if((sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED) &&
(sf_mmc_dev[MMC_DEV_EMMC].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED))
{
workable_dev = MMC_DEV_NO;
}
else if(sf_mmc_dev[MMC_DEV_SD].moumted_state == MMC_DEV_MOUNT_STATE_UNMOUNTED)
{ {
if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH) if(sf_mmc_dev[MMC_DEV_EMMC].space_state == MMC_DEV_SPACE_STATE_ENOUGH)
{ {