修复动态拼接存储路径死机问题
This commit is contained in:
parent
04ffffa004
commit
13ebddc03b
|
@ -70,6 +70,8 @@ void SF_StrgInit(void) {
|
|||
sf_mmc_dev[i]->space_state = MMC_DEV_SPACE_STATE_ENOUGH;
|
||||
sf_mmc_dev[i]->loop_state = MMC_DEV_LOOP_STATE_OFF;
|
||||
}
|
||||
|
||||
pMMCDev = (SF_ST_MMC_DEV *)malloc(sizeof(SF_ST_MMC_DEV));
|
||||
}
|
||||
|
||||
void SF_StrgUnInit(void)
|
||||
|
@ -342,32 +344,37 @@ SF_ST_MMC_DEV *SF_StrgCheckWorkableDev(void)
|
|||
}
|
||||
}
|
||||
|
||||
#if 1
|
||||
static int sfStrgOnActionSendCurrentDev(SF_ST_MMC_DEV *pMMCDev)
|
||||
{
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
stMessageBuf.s32Wait = SF_SYS_STRG_DEV_MSG;
|
||||
stMessageBuf.arg1 = pMMCDev->dev_type;
|
||||
stMessageBuf.arg2 = pMMCDev->node;
|
||||
stMessageBuf.arg1 = SF_SYS_STRG_DEV_MSG;
|
||||
stMessageBuf.arg2 = pMMCDev->dev_type;
|
||||
stMessageBuf.arg3 = pMMCDev->moumted_state;
|
||||
stMessageBuf.cmdId = CMD_SD;
|
||||
sf_com_message_send_to_app(&stMessageBuf);
|
||||
MLOGD("sf sys strg update current dev!\n");
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void* mmc_monitoring_thread(void *arg)
|
||||
{
|
||||
static MMC_DEV_TYPE current_dev = MMC_DEV_NO;
|
||||
static MMC_DEV_TYPE current_id = MMC_DEV_NO;
|
||||
while(MMCMonitorTskCfg.IsRun)
|
||||
{
|
||||
pMMCDev = SF_StrgCheckWorkableDev();
|
||||
|
||||
if(current_dev != pMMCDev->dev_type)
|
||||
{
|
||||
current_dev = pMMCDev->dev_type;
|
||||
sfStrgOnActionSendCurrentDev(pMMCDev);
|
||||
|
||||
if(pMMCDev != NULL) {
|
||||
if(current_id != pMMCDev->dev_type)
|
||||
{
|
||||
current_id = pMMCDev->dev_type;
|
||||
MLOGD("mmc monitor dev has changed!, %d\n", pMMCDev->dev_type);
|
||||
sfStrgOnActionSendCurrentDev(pMMCDev);
|
||||
}
|
||||
}
|
||||
|
||||
sf_sleep_ms(1000);
|
||||
sf_sleep_ms(5000);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -80,14 +80,13 @@ typedef enum
|
|||
typedef struct
|
||||
{
|
||||
MMC_DEV_TYPE dev_type;
|
||||
MMC_DEV_NODE_STATE node;
|
||||
MMC_DEV_MOUNT_STATE moumted_state;
|
||||
}SF_STRG_DEV;
|
||||
|
||||
|
||||
void sf_strg_dev_init(void);
|
||||
void sf_strg_dev_uninit(void);
|
||||
void sf_strg_dev_register(SF_MESSAGE_BUF_S *pMessageBuf);
|
||||
void sf_strg_dev_register(SINT32 dev_id, SINT32 mounted);
|
||||
MMC_DEV_TYPE sf_get_strg_dev(void);
|
||||
char *sf_root_path_strcat(char *path_name);
|
||||
char *sf_get_root_path(void);
|
||||
|
|
|
@ -260,9 +260,6 @@ int main(int argc, char *argv[])
|
|||
stMessageBuf.arg2 = SF_KEY_PIN_AOTU_MODE_POWOFF;//auto mode powoff
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
}*/
|
||||
|
||||
//init stroage_dev struct
|
||||
sf_strg_dev_uninit();
|
||||
|
||||
ftp_manager_uninit();
|
||||
sf_share_mem_file_deinit();
|
||||
|
|
|
@ -706,15 +706,15 @@ static SINT32 sfStrgDevEmmcHandler(SF_MESSAGE_BUF_S *pMessageBuf)
|
|||
|
||||
static SINT32 sf_app_process_cmd_SD(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||
{
|
||||
MLOGD("[dev_id:%d,evt:%s]\n",pMessageBuf->arg2,app_process_SD_getstatusstring(pMessageBuf->arg1));
|
||||
MLOGD("[dev_id:%d,evt:%d]\n",pMessageBuf->arg2,pMessageBuf->arg1);
|
||||
|
||||
if(pMessageBuf->arg2 == MMC_DEV_SD)
|
||||
//if(pMessageBuf->arg2 == MMC_DEV_SD)
|
||||
{
|
||||
sfStrgDevSdHandler(pMessageBuf);
|
||||
//sfStrgDevSdHandler(pMessageBuf);
|
||||
}
|
||||
else if(pMessageBuf->arg2 == MMC_DEV_EMMC)
|
||||
//else if(pMessageBuf->arg2 == MMC_DEV_EMMC)
|
||||
{
|
||||
sfStrgDevEmmcHandler(pMessageBuf);
|
||||
//sfStrgDevEmmcHandler(pMessageBuf);
|
||||
}
|
||||
|
||||
switch(pMessageBuf->arg1)
|
||||
|
@ -732,7 +732,7 @@ static SINT32 sf_app_process_cmd_SD(SF_MESSAGE_BUF_S *pMessageBuf)
|
|||
sf_set_card_statu(pMessageBuf->arg2);
|
||||
break;
|
||||
case CMD_SD_STRG_WORKABLE_DEV:
|
||||
sf_strg_dev_register(pMessageBuf);
|
||||
sf_strg_dev_register(pMessageBuf->arg2, pMessageBuf->arg3);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
@ -42,8 +42,8 @@ void sf_strg_dev_init(void)
|
|||
{
|
||||
sf_strg_dev = (SF_STRG_DEV *)malloc(sizeof(SF_STRG_DEV));
|
||||
sf_strg_dev->dev_type = MMC_DEV_NO;
|
||||
sf_strg_dev->node = MMC_DEV_NODE_STATE_NO;
|
||||
sf_strg_dev->moumted_state = MMC_DEV_MOUNT_STATE_NO;
|
||||
MLOGD("sf_app strg dev init success!\n");
|
||||
}
|
||||
|
||||
void sf_strg_dev_uninit(void)
|
||||
|
@ -52,11 +52,10 @@ void sf_strg_dev_uninit(void)
|
|||
sf_strg_dev = NULL;
|
||||
}
|
||||
|
||||
void sf_strg_dev_register(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||
void sf_strg_dev_register(SINT32 dev_id, SINT32 mounted)
|
||||
{
|
||||
sf_strg_dev->dev_type = pMessageBuf->arg1;
|
||||
sf_strg_dev->node = pMessageBuf->arg2;
|
||||
sf_strg_dev->moumted_state = pMessageBuf->arg3;
|
||||
sf_strg_dev->dev_type = dev_id;
|
||||
sf_strg_dev->moumted_state = mounted;
|
||||
}
|
||||
|
||||
MMC_DEV_TYPE sf_get_strg_dev(void)
|
||||
|
@ -112,6 +111,7 @@ char *sf_get_root_path(void)
|
|||
mmc_dev = sf_get_strg_dev();
|
||||
if (mmc_dev == MMC_DEV_NO)
|
||||
{
|
||||
MLOGE("get strg dev no!\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -125,6 +125,7 @@ char *sf_get_root_path(void)
|
|||
strg_path = (char *)malloc(strlen(SF_EMMC_ROOT) + 1);
|
||||
strcpy(strg_path, SF_EMMC_ROOT);
|
||||
}
|
||||
MLOGD("strg_path: %s\n", strg_path);
|
||||
return strg_path;
|
||||
}
|
||||
|
||||
|
@ -143,6 +144,7 @@ char *sf_root_path_strcat(char *path_name)
|
|||
strcat(tmp, path_name);
|
||||
|
||||
free(strg_path); // 释放内存
|
||||
MLOGD("root path: %s\n", tmp);
|
||||
return tmp;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user