From 4b3997cfbb45d56dfd851900d5b35387114ef1d4 Mon Sep 17 00:00:00 2001 From: Chen Wu Date: Wed, 22 Nov 2017 11:42:55 +0800 Subject: [PATCH] aws_iot: fix aws_iot examples without NVS initialization WiFi used to initialise nvs automatically, but it doesn't now. see more info: https://github.com/espressif/esp-idf/issues/624 Closes #624 --- .../subscribe_publish/main/subscribe_publish_sample.c | 11 +++++++++++ .../aws_iot/thing_shadow/main/thing_shadow_sample.c | 10 ++++++++++ 2 files changed, 21 insertions(+) diff --git a/examples/protocols/aws_iot/subscribe_publish/main/subscribe_publish_sample.c b/examples/protocols/aws_iot/subscribe_publish/main/subscribe_publish_sample.c index ab9161fcb1..2163c38055 100644 --- a/examples/protocols/aws_iot/subscribe_publish/main/subscribe_publish_sample.c +++ b/examples/protocols/aws_iot/subscribe_publish/main/subscribe_publish_sample.c @@ -40,6 +40,9 @@ #include "esp_vfs_fat.h" #include "driver/sdmmc_host.h" +#include "nvs.h" +#include "nvs_flash.h" + #include "aws_iot_config.h" #include "aws_iot_log.h" #include "aws_iot_version.h" @@ -316,6 +319,14 @@ static void initialise_wifi(void) void app_main() { + // Initialize NVS. + esp_err_t err = nvs_flash_init(); + if (err == ESP_ERR_NVS_NO_FREE_PAGES) { + ESP_ERROR_CHECK(nvs_flash_erase()); + err = nvs_flash_init(); + } + ESP_ERROR_CHECK( err ); + initialise_wifi(); #ifdef CONFIG_MBEDTLS_DEBUG const size_t stack_size = 36*1024; diff --git a/examples/protocols/aws_iot/thing_shadow/main/thing_shadow_sample.c b/examples/protocols/aws_iot/thing_shadow/main/thing_shadow_sample.c index 2da22472ee..13ba14e5d0 100644 --- a/examples/protocols/aws_iot/thing_shadow/main/thing_shadow_sample.c +++ b/examples/protocols/aws_iot/thing_shadow/main/thing_shadow_sample.c @@ -37,6 +37,9 @@ #include "esp_vfs_fat.h" #include "driver/sdmmc_host.h" +#include "nvs.h" +#include "nvs_flash.h" + #include "aws_iot_config.h" #include "aws_iot_log.h" #include "aws_iot_version.h" @@ -362,6 +365,13 @@ static void initialise_wifi(void) void app_main() { + esp_err_t err = nvs_flash_init(); + if (err == ESP_ERR_NVS_NO_FREE_PAGES) { + ESP_ERROR_CHECK(nvs_flash_erase()); + err = nvs_flash_init(); + } + ESP_ERROR_CHECK( err ); + initialise_wifi(); /* Temporarily pin task to core, due to FPU uncertainty */ xTaskCreatePinnedToCore(&aws_iot_task, "aws_iot_task", 16384+1024, NULL, 5, NULL, 1);