Просмотр исходного кода

解决soc backup 都正确的情况下,无法读取nv的问题

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 5 лет назад
Родитель
Сommit
4f5185b956
1 измененных файлов с 14 добавлено и 9 удалено
  1. 14 9
      Application/app/nv_storage.c

+ 14 - 9
Application/app/nv_storage.c

@@ -60,15 +60,20 @@ int nv_restore_soc(void){
 	success0 = nv_restore_soc_by_backup(0, &soc0);
 	success1 = nv_restore_soc_by_backup(1, &soc1);
 	printf("back %d-%d\n", success0, success1);
-	if ((success0 == 0) && (success1 != 0)){
-		nv_save_soc_by_backup(1);
-		*get_soc() = soc0;
-	}
-	
-	if ((success0 != 0) && (success1 == 0)){
-		nv_save_soc_by_backup(0);
-		*get_soc() = soc1;
-	}
+
+	if (success0 == 0 || success1 == 0){
+		if (success1 != 0){
+			nv_save_soc_by_backup(1);
+		}
+		if (success0 != 0){
+			nv_save_soc_by_backup(0);
+		}
+		if (success0 == 0){
+			*get_soc() = soc0;
+		}else if (success1 == 0){
+			*get_soc() = soc1;
+		}
+	}	
 	return ((success0 == 0) || (success1 == 0))?0:-1;
 }