diff --git a/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c index ae530d5ec..8de16a676 100755 --- a/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c +++ b/code/application/source/cardv/SrcCode/System/SF_SysStrgMng.c @@ -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; } diff --git a/code/application/source/sf_app/code/include/sf_storeMng.h b/code/application/source/sf_app/code/include/sf_storeMng.h index afda15d0b..9d618e1b1 100644 --- a/code/application/source/sf_app/code/include/sf_storeMng.h +++ b/code/application/source/sf_app/code/include/sf_storeMng.h @@ -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); diff --git a/code/application/source/sf_app/code/source/app/sf_app.c b/code/application/source/sf_app/code/source/app/sf_app.c index d47b96fe0..f9b87e31a 100755 --- a/code/application/source/sf_app/code/source/app/sf_app.c +++ b/code/application/source/sf_app/code/source/app/sf_app.c @@ -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(); diff --git a/code/application/source/sf_app/code/source/app/sf_common.c b/code/application/source/sf_app/code/source/app/sf_common.c index c4719316e..dab5c01c4 100755 --- a/code/application/source/sf_app/code/source/app/sf_common.c +++ b/code/application/source/sf_app/code/source/app/sf_common.c @@ -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; diff --git a/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c b/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c index 637fcc673..fd46d4763 100644 --- a/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c +++ b/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c @@ -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; }