ronghulin пре 4 година
родитељ
комит
fddaaef06e
1 измењених фајлова са 8 додато и 6 уклоњено
  1. 8 6
      components/esp_wifi/src/phy_init.c

+ 8 - 6
components/esp_wifi/src/phy_init.c

@@ -352,6 +352,7 @@ const esp_phy_init_data_t* esp_phy_get_init_data(void)
                 PHY_INIT_MAGIC, sizeof(phy_init_magic_post)) != 0) {
 #ifndef CONFIG_ESP32_PHY_DEFAULT_INIT_IF_INVALID
         ESP_LOGE(TAG, "failed to validate PHY data partition");
+        free(init_data_store);
         return NULL;
 #else
         ESP_LOGE(TAG, "failed to validate PHY data partition, restoring default data into flash...");
@@ -855,18 +856,19 @@ esp_err_t esp_phy_update_country_info(const char *country)
 {
 #if CONFIG_ESP32_SUPPORT_MULTIPLE_PHY_INIT_DATA_BIN
     uint8_t phy_init_data_type_map = 0;
-    //if country equal s_phy_current_country, return;
-    if (!memcmp(country, s_phy_current_country, sizeof(s_phy_current_country))) {
-        return ESP_OK;
-    }
-
-    memcpy(s_phy_current_country, country, sizeof(s_phy_current_country));
 
     if (!s_multiple_phy_init_data_bin) {
         ESP_LOGD(TAG, "Does not support multiple PHY init data bins");
         return ESP_FAIL;
     }
 
+   //if country equal s_phy_current_country, return;
+    if (!memcmp(country, s_phy_current_country, sizeof(s_phy_current_country))) {
+        return ESP_OK;
+    }
+
+    memcpy(s_phy_current_country, country, sizeof(s_phy_current_country));
+
     phy_init_data_type_map = phy_find_bin_type_according_country(country);
     if (phy_init_data_type_map == s_phy_init_data_type) {
         return ESP_OK;