소스 검색

CPU工程中优化sysinfo数据保存异常问题:
移植spi nand falsh驱动时统一封装了读写接口,保存sysinfo数据前未先执行擦除操作,导致数据保存失败。

helen 2 달 전
부모
커밋
4746e3e181
1개의 변경된 파일3개의 추가작업 그리고 3개의 파일을 삭제
  1. 3 3
      amt630hv160-freertos-beta/ArkmicroFiles/libboard-amt630hv160/source/sysinfo.c

+ 3 - 3
amt630hv160-freertos-beta/ArkmicroFiles/libboard-amt630hv160/source/sysinfo.c

@@ -24,7 +24,7 @@ int ReadSysInfo(void)
 	checksum = xcrc32((unsigned char*)&sysinfo, sizeof(SysInfo) - 4, 0xffffffff, HARD_CALC_CRC);
 	if (checksum == sysinfo.checksum) {
 		/* copy sysinfo to flash offset SYSINFO_OFFSET */
-		flash_write(SYSINFO_OFFSET, sizeof(SysInfo), (void*)&sysinfo);
+		flash_erase_write(SYSINFO_OFFSET, sizeof(SysInfo), (void*)&sysinfo);
 		return 0;
 	}
 
@@ -40,6 +40,6 @@ SysInfo *GetSysInfo(void)
 void SaveSysInfo(void)
 {
 	sysinfo.checksum = xcrc32((unsigned char*)&sysinfo, sizeof(SysInfo) - 4, 0xffffffff, HARD_CALC_CRC);
-	flash_write(SYSINFO_OFFSET, sizeof(SysInfo), (void*)&sysinfo);
-	flash_write(SYSINFO_B_OFFSET, sizeof(SysInfo), (void*)&sysinfo);
+	flash_erase_write(SYSINFO_OFFSET, sizeof(SysInfo), (void*)&sysinfo);
+	flash_erase_write(SYSINFO_B_OFFSET, sizeof(SysInfo), (void*)&sysinfo);
 }