修复动态拼接存储路径死机问题
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]->space_state = MMC_DEV_SPACE_STATE_ENOUGH;
|
||||||
sf_mmc_dev[i]->loop_state = MMC_DEV_LOOP_STATE_OFF;
|
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)
|
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)
|
static int sfStrgOnActionSendCurrentDev(SF_ST_MMC_DEV *pMMCDev)
|
||||||
{
|
{
|
||||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||||
stMessageBuf.s32Wait = SF_SYS_STRG_DEV_MSG;
|
stMessageBuf.arg1 = SF_SYS_STRG_DEV_MSG;
|
||||||
stMessageBuf.arg1 = pMMCDev->dev_type;
|
stMessageBuf.arg2 = pMMCDev->dev_type;
|
||||||
stMessageBuf.arg2 = pMMCDev->node;
|
|
||||||
stMessageBuf.arg3 = pMMCDev->moumted_state;
|
stMessageBuf.arg3 = pMMCDev->moumted_state;
|
||||||
stMessageBuf.cmdId = CMD_SD;
|
stMessageBuf.cmdId = CMD_SD;
|
||||||
sf_com_message_send_to_app(&stMessageBuf);
|
sf_com_message_send_to_app(&stMessageBuf);
|
||||||
|
MLOGD("sf sys strg update current dev!\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void* mmc_monitoring_thread(void *arg)
|
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)
|
while(MMCMonitorTskCfg.IsRun)
|
||||||
{
|
{
|
||||||
pMMCDev = SF_StrgCheckWorkableDev();
|
pMMCDev = SF_StrgCheckWorkableDev();
|
||||||
|
|
||||||
if(current_dev != pMMCDev->dev_type)
|
if(pMMCDev != NULL) {
|
||||||
{
|
if(current_id != pMMCDev->dev_type)
|
||||||
current_dev = pMMCDev->dev_type;
|
{
|
||||||
sfStrgOnActionSendCurrentDev(pMMCDev);
|
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;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,14 +80,13 @@ typedef enum
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
MMC_DEV_TYPE dev_type;
|
MMC_DEV_TYPE dev_type;
|
||||||
MMC_DEV_NODE_STATE node;
|
|
||||||
MMC_DEV_MOUNT_STATE moumted_state;
|
MMC_DEV_MOUNT_STATE moumted_state;
|
||||||
}SF_STRG_DEV;
|
}SF_STRG_DEV;
|
||||||
|
|
||||||
|
|
||||||
void sf_strg_dev_init(void);
|
void sf_strg_dev_init(void);
|
||||||
void sf_strg_dev_uninit(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);
|
MMC_DEV_TYPE sf_get_strg_dev(void);
|
||||||
char *sf_root_path_strcat(char *path_name);
|
char *sf_root_path_strcat(char *path_name);
|
||||||
char *sf_get_root_path(void);
|
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
|
stMessageBuf.arg2 = SF_KEY_PIN_AOTU_MODE_POWOFF;//auto mode powoff
|
||||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
//init stroage_dev struct
|
|
||||||
sf_strg_dev_uninit();
|
|
||||||
|
|
||||||
ftp_manager_uninit();
|
ftp_manager_uninit();
|
||||||
sf_share_mem_file_deinit();
|
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)
|
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)
|
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);
|
sf_set_card_statu(pMessageBuf->arg2);
|
||||||
break;
|
break;
|
||||||
case CMD_SD_STRG_WORKABLE_DEV:
|
case CMD_SD_STRG_WORKABLE_DEV:
|
||||||
sf_strg_dev_register(pMessageBuf);
|
sf_strg_dev_register(pMessageBuf->arg2, pMessageBuf->arg3);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
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 = (SF_STRG_DEV *)malloc(sizeof(SF_STRG_DEV));
|
||||||
sf_strg_dev->dev_type = MMC_DEV_NO;
|
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;
|
sf_strg_dev->moumted_state = MMC_DEV_MOUNT_STATE_NO;
|
||||||
|
MLOGD("sf_app strg dev init success!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void sf_strg_dev_uninit(void)
|
void sf_strg_dev_uninit(void)
|
||||||
|
@ -52,11 +52,10 @@ void sf_strg_dev_uninit(void)
|
||||||
sf_strg_dev = NULL;
|
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->dev_type = dev_id;
|
||||||
sf_strg_dev->node = pMessageBuf->arg2;
|
sf_strg_dev->moumted_state = mounted;
|
||||||
sf_strg_dev->moumted_state = pMessageBuf->arg3;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MMC_DEV_TYPE sf_get_strg_dev(void)
|
MMC_DEV_TYPE sf_get_strg_dev(void)
|
||||||
|
@ -112,6 +111,7 @@ char *sf_get_root_path(void)
|
||||||
mmc_dev = sf_get_strg_dev();
|
mmc_dev = sf_get_strg_dev();
|
||||||
if (mmc_dev == MMC_DEV_NO)
|
if (mmc_dev == MMC_DEV_NO)
|
||||||
{
|
{
|
||||||
|
MLOGE("get strg dev no!\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -125,6 +125,7 @@ char *sf_get_root_path(void)
|
||||||
strg_path = (char *)malloc(strlen(SF_EMMC_ROOT) + 1);
|
strg_path = (char *)malloc(strlen(SF_EMMC_ROOT) + 1);
|
||||||
strcpy(strg_path, SF_EMMC_ROOT);
|
strcpy(strg_path, SF_EMMC_ROOT);
|
||||||
}
|
}
|
||||||
|
MLOGD("strg_path: %s\n", strg_path);
|
||||||
return strg_path;
|
return strg_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,6 +144,7 @@ char *sf_root_path_strcat(char *path_name)
|
||||||
strcat(tmp, path_name);
|
strcat(tmp, path_name);
|
||||||
|
|
||||||
free(strg_path); // 释放内存
|
free(strg_path); // 释放内存
|
||||||
|
MLOGD("root path: %s\n", tmp);
|
||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user