修复动态拼接存储路径死机问题
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
	 sober.song
						sober.song