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

擦除soc分两块单独擦除

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

+ 2 - 1
Application/app/iap.c

@@ -68,7 +68,8 @@ void process_iap_message(can_frame_t *frame, int len){
 			protocol_send_ack(frame->head.can_addr, frame->key, 1);
 			break;
 		case CAN_KET_ERASE_NV:
-			nv_erase();
+			nv_erase_soc(0);
+			nv_erase_soc(1);
 			shark_timer_post(&_reboot_timer, 100);
 			protocol_send_ack(frame->head.can_addr, frame->key, 1);
 			break;

+ 3 - 5
Application/app/nv_storage.c

@@ -126,13 +126,10 @@ void nv_save_all_soc(void){
 	nv_save_soc_by_backup(1);
 }
 
-void nv_erase(void){
+void nv_erase_soc(int index){
 	uint8_t data = 0xFF;
 	for (int i = 0; i < sizeof(soc_t) + sizeof(uint16_t); i++){
-		AT24CXX_Write(SOC_ADDR + i, &data, 1);
-	}
-	for (int i = 0; i < sizeof(soc_t) + sizeof(uint16_t); i++){
-		AT24CXX_Write(SOC_ADDR + SOC_SIZE + i, &data, 1);
+		AT24CXX_Write(SOC_ADDR + SOC_SIZE * index + i, &data, 1);
 	}	
 }
 
@@ -170,6 +167,7 @@ int nv_restore_soc(void){
 			nv_save_soc_by_backup(0);
 		}
 	}
+	sys_debug("soc bk0=%d, bk1=%d\n", success0, success1);
 	return ((success0 == 0) || (success1 == 0))?0:-1;
 }
 

+ 1 - 1
Application/app/nv_storage.h

@@ -12,7 +12,7 @@ typedef struct {
 
 void nv_save_soc(void);
 int nv_restore_soc(void);
-void nv_erase(void);
+void nv_erase_soc(int index);
 int nv_save_sn(uint8_t *sn, int len);
 int nv_read_sn(uint8_t *sn, int len);
 int nv_read_write_test(void);