瀏覽代碼

bugfix(simple_ota): Compatible with V3.1 and V3.2

InfiniteYuan1 7 年之前
父節點
當前提交
0fa31d3e31
共有 1 個文件被更改,包括 3 次插入2 次删除
  1. 3 2
      examples/system/ota/simple_ota_example/main/simple_ota_example.c

+ 3 - 2
examples/system/ota/simple_ota_example/main/simple_ota_example.c

@@ -133,9 +133,10 @@ void app_main()
 {
 {
     // Initialize NVS.
     // Initialize NVS.
     esp_err_t err = nvs_flash_init();
     esp_err_t err = nvs_flash_init();
-    if (err == ESP_ERR_NVS_NO_FREE_PAGES) {
-        // OTA app partition table has a smaller NVS partition size than the non-OTA
+    if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) {
+        // 1.OTA app partition table has a smaller NVS partition size than the non-OTA
         // partition table. This size mismatch may cause NVS initialization to fail.
         // partition table. This size mismatch may cause NVS initialization to fail.
+        // 2.NVS partition contains data in new format and cannot be recognized by this version of code.
         // If this happens, we erase NVS partition and initialize NVS again.
         // If this happens, we erase NVS partition and initialize NVS again.
         ESP_ERROR_CHECK(nvs_flash_erase());
         ESP_ERROR_CHECK(nvs_flash_erase());
         err = nvs_flash_init();
         err = nvs_flash_init();