ソースを参照

Merge branch 'bugfix/simple_ota_example' into 'master'

bugfix(simple_ota_example): Compatible with V3.1 and V3.2,because the NVS format is different

See merge request idf/esp-idf!3983
Angus Gratton 7 年 前
コミット
48d3a5804d

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

@@ -133,9 +133,10 @@ void app_main()
 {
     // Initialize NVS.
     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.
+        // 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.
         ESP_ERROR_CHECK(nvs_flash_erase());
         err = nvs_flash_init();