Merge branch 'bugfix/fix_some_wifi_bugs_240311_v5.1' into 'release/v5.1'

fix(wifi): fix some wifi issues(Backport v5.1)

See merge request espressif/esp-idf!29565
This commit is contained in:
Jiang Jiang Jian
2024-03-12 22:44:19 +08:00
9 changed files with 27 additions and 14 deletions

View File

@@ -1,5 +1,5 @@
/* /*
* SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
*/ */
@@ -1632,9 +1632,9 @@ hal_mac_set_txq_invalid = 0x40001d60;
hal_mac_txq_disable = 0x40001d64; hal_mac_txq_disable = 0x40001d64;
hal_mac_is_txq_enabled = 0x40001d68; hal_mac_is_txq_enabled = 0x40001d68;
hal_mac_get_txq_pmd = 0x40001d6c; hal_mac_get_txq_pmd = 0x40001d6c;
lmacDiscardFrameExchangeSequence = 0x40001d70; /*lmacDiscardFrameExchangeSequence = 0x40001d70;*/
lmacDisableTransmit = 0x40001d74; /*lmacDisableTransmit = 0x40001d74;*/
lmacProcessTxTimeout = 0x40001d78; /*lmacProcessTxTimeout = 0x40001d78;*/
/*lmacProcessTxSuccess = 0x40001d7c;*/ /*lmacProcessTxSuccess = 0x40001d7c;*/
lmacProcessCollision = 0x40001d80; lmacProcessCollision = 0x40001d80;
lmacProcessTxRtsError = 0x40001d84; lmacProcessTxRtsError = 0x40001d84;
@@ -1666,7 +1666,7 @@ mac_last_rxbuf_init = 0x40001de8;
hal_attenna_init = 0x40001dec; hal_attenna_init = 0x40001dec;
hal_timer_update_by_rtc = 0x40001df0; hal_timer_update_by_rtc = 0x40001df0;
hal_coex_pti_init = 0x40001df4; hal_coex_pti_init = 0x40001df4;
lmac_stop_hw_txq = 0x40001df8; /*lmac_stop_hw_txq = 0x40001df8;*/
ppDirectRecycleAmpdu = 0x40001dfc; ppDirectRecycleAmpdu = 0x40001dfc;
esp_wifi_internal_set_rts = 0x40001e00; esp_wifi_internal_set_rts = 0x40001e00;
esp_wifi_internal_get_rts = 0x40001e04; esp_wifi_internal_get_rts = 0x40001e04;
@@ -1847,7 +1847,7 @@ ic_reset_rx_ba = 0x40001fa8;
ieee80211_align_eb = 0x40001fac; ieee80211_align_eb = 0x40001fac;
ieee80211_ampdu_reorder = 0x40001fb0; ieee80211_ampdu_reorder = 0x40001fb0;
ieee80211_ampdu_start_age_timer = 0x40001fb4; ieee80211_ampdu_start_age_timer = 0x40001fb4;
ieee80211_encap_esfbuf = 0x40001fb8; /*ieee80211_encap_esfbuf = 0x40001fb8;*/
ieee80211_is_tx_allowed = 0x40001fbc; ieee80211_is_tx_allowed = 0x40001fbc;
ieee80211_output_pending_eb = 0x40001fc0; ieee80211_output_pending_eb = 0x40001fc0;
/* ieee80211_output_process = 0x40001fc4; */ /* ieee80211_output_process = 0x40001fc4; */
@@ -1857,7 +1857,7 @@ wifi_get_macaddr = 0x40001fd0;
wifi_rf_phy_disable = 0x40001fd4; wifi_rf_phy_disable = 0x40001fd4;
wifi_rf_phy_enable = 0x40001fd8; wifi_rf_phy_enable = 0x40001fd8;
ic_ebuf_alloc = 0x40001fdc; ic_ebuf_alloc = 0x40001fdc;
ieee80211_classify = 0x40001fe0; /*ieee80211_classify = 0x40001fe0;*/
ieee80211_copy_eb_header = 0x40001fe4; ieee80211_copy_eb_header = 0x40001fe4;
ieee80211_recycle_cache_eb = 0x40001fe8; ieee80211_recycle_cache_eb = 0x40001fe8;
ieee80211_search_node = 0x40001fec; ieee80211_search_node = 0x40001fec;

View File

@@ -35,7 +35,7 @@ wDev_ProcessRxSucData = 0x400017f4;
/*ppProcTxDone = 0x40001804;*/ /*ppProcTxDone = 0x40001804;*/
pm_tx_data_done_process = 0x40001808; pm_tx_data_done_process = 0x40001808;
ppMapWaitTxq = 0x40001810; ppMapWaitTxq = 0x40001810;
ieee80211_encap_esfbuf = 0x4000185c; /*ieee80211_encap_esfbuf = 0x4000185c;*/
/*sta_input = 0x40001870;*/ /*sta_input = 0x40001870;*/
ieee80211_crypto_decap = 0x4000189c; ieee80211_crypto_decap = 0x4000189c;
ieee80211_decap = 0x400018a0; ieee80211_decap = 0x400018a0;

View File

@@ -1729,7 +1729,7 @@ wifi_get_macaddr = 0x40001874;
wifi_rf_phy_disable = 0x40001878; wifi_rf_phy_disable = 0x40001878;
wifi_rf_phy_enable = 0x4000187c; wifi_rf_phy_enable = 0x4000187c;
ic_ebuf_alloc = 0x40001880; ic_ebuf_alloc = 0x40001880;
ieee80211_classify = 0x40001884; /*ieee80211_classify = 0x40001884;*/
ieee80211_copy_eb_header = 0x40001888; ieee80211_copy_eb_header = 0x40001888;
ieee80211_recycle_cache_eb = 0x4000188c; ieee80211_recycle_cache_eb = 0x4000188c;
ieee80211_search_node = 0x40001890; ieee80211_search_node = 0x40001890;

View File

@@ -33,7 +33,7 @@ ic_reset_rx_ba = 0x40000b78;
ieee80211_align_eb = 0x40000b7c; ieee80211_align_eb = 0x40000b7c;
ieee80211_ampdu_reorder = 0x40000b80; ieee80211_ampdu_reorder = 0x40000b80;
ieee80211_ampdu_start_age_timer = 0x40000b84; ieee80211_ampdu_start_age_timer = 0x40000b84;
ieee80211_encap_esfbuf = 0x40000b88; /*ieee80211_encap_esfbuf = 0x40000b88;*/
ieee80211_is_tx_allowed = 0x40000b8c; ieee80211_is_tx_allowed = 0x40000b8c;
ieee80211_output_pending_eb = 0x40000b90; ieee80211_output_pending_eb = 0x40000b90;
/*ieee80211_output_process = 0x40000b94;*/ /*ieee80211_output_process = 0x40000b94;*/
@@ -43,7 +43,7 @@ wifi_get_macaddr = 0x40000ba0;
wifi_rf_phy_disable = 0x40000ba4; wifi_rf_phy_disable = 0x40000ba4;
wifi_rf_phy_enable = 0x40000ba8; wifi_rf_phy_enable = 0x40000ba8;
ic_ebuf_alloc = 0x40000bac; ic_ebuf_alloc = 0x40000bac;
ieee80211_classify = 0x40000bb0; /*ieee80211_classify = 0x40000bb0;*/
ieee80211_copy_eb_header = 0x40000bb4; ieee80211_copy_eb_header = 0x40000bb4;
ieee80211_recycle_cache_eb = 0x40000bb8; ieee80211_recycle_cache_eb = 0x40000bb8;
ieee80211_search_node = 0x40000bbc; ieee80211_search_node = 0x40000bbc;

View File

@@ -2037,7 +2037,7 @@ wifi_get_macaddr = 0x40005ab4;
wifi_rf_phy_disable = 0x40005ac0; wifi_rf_phy_disable = 0x40005ac0;
wifi_rf_phy_enable = 0x40005acc; wifi_rf_phy_enable = 0x40005acc;
ic_ebuf_alloc = 0x40005ad8; ic_ebuf_alloc = 0x40005ad8;
ieee80211_classify = 0x40005ae4; /*ieee80211_classify = 0x40005ae4;*/
ieee80211_copy_eb_header = 0x40005af0; ieee80211_copy_eb_header = 0x40005af0;
ieee80211_recycle_cache_eb = 0x40005afc; ieee80211_recycle_cache_eb = 0x40005afc;
ieee80211_search_node = 0x40005b08; ieee80211_search_node = 0x40005b08;

View File

@@ -1 +1,2 @@
CONFIG_ESP_HTTPS_SERVER_ENABLE=y CONFIG_ESP_HTTPS_SERVER_ENABLE=y
CONFIG_COMPILER_OPTIMIZATION_SIZE=y

View File

@@ -0,0 +1,7 @@
menu "Example Configuration"
config SET_MAC_ADDRESS_OF_TARGET_AP
bool "whether set MAC address of target AP or not"
default y
endmenu

View File

@@ -13,13 +13,14 @@
#include "freertos/task.h" #include "freertos/task.h"
#include "freertos/event_groups.h" #include "freertos/event_groups.h"
#include "esp_wifi.h" #include "esp_wifi.h"
#include "esp_wpa2.h" #include "esp_eap_client.h"
#include "esp_event.h" #include "esp_event.h"
#include "esp_log.h" #include "esp_log.h"
#include "esp_system.h" #include "esp_system.h"
#include "nvs_flash.h" #include "nvs_flash.h"
#include "esp_netif.h" #include "esp_netif.h"
#include "esp_smartconfig.h" #include "esp_smartconfig.h"
#include "esp_mac.h"
/* FreeRTOS event group to signal when we are connected & ready to make a request */ /* FreeRTOS event group to signal when we are connected & ready to make a request */
static EventGroupHandle_t s_wifi_event_group; static EventGroupHandle_t s_wifi_event_group;
@@ -59,10 +60,14 @@ static void event_handler(void* arg, esp_event_base_t event_base,
bzero(&wifi_config, sizeof(wifi_config_t)); bzero(&wifi_config, sizeof(wifi_config_t));
memcpy(wifi_config.sta.ssid, evt->ssid, sizeof(wifi_config.sta.ssid)); memcpy(wifi_config.sta.ssid, evt->ssid, sizeof(wifi_config.sta.ssid));
memcpy(wifi_config.sta.password, evt->password, sizeof(wifi_config.sta.password)); memcpy(wifi_config.sta.password, evt->password, sizeof(wifi_config.sta.password));
#ifdef CONFIG_SET_MAC_ADDRESS_OF_TARGET_AP
wifi_config.sta.bssid_set = evt->bssid_set; wifi_config.sta.bssid_set = evt->bssid_set;
if (wifi_config.sta.bssid_set == true) { if (wifi_config.sta.bssid_set == true) {
ESP_LOGI(TAG, "Set MAC address of target AP: "MACSTR" ", MAC2STR(evt->bssid));
memcpy(wifi_config.sta.bssid, evt->bssid, sizeof(wifi_config.sta.bssid)); memcpy(wifi_config.sta.bssid, evt->bssid, sizeof(wifi_config.sta.bssid));
} }
#endif
memcpy(ssid, evt->ssid, sizeof(evt->ssid)); memcpy(ssid, evt->ssid, sizeof(evt->ssid));
memcpy(password, evt->password, sizeof(evt->password)); memcpy(password, evt->password, sizeof(evt->password));