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
*/
@@ -1632,9 +1632,9 @@ hal_mac_set_txq_invalid = 0x40001d60;
hal_mac_txq_disable = 0x40001d64;
hal_mac_is_txq_enabled = 0x40001d68;
hal_mac_get_txq_pmd = 0x40001d6c;
lmacDiscardFrameExchangeSequence = 0x40001d70;
lmacDisableTransmit = 0x40001d74;
lmacProcessTxTimeout = 0x40001d78;
/*lmacDiscardFrameExchangeSequence = 0x40001d70;*/
/*lmacDisableTransmit = 0x40001d74;*/
/*lmacProcessTxTimeout = 0x40001d78;*/
/*lmacProcessTxSuccess = 0x40001d7c;*/
lmacProcessCollision = 0x40001d80;
lmacProcessTxRtsError = 0x40001d84;
@@ -1666,7 +1666,7 @@ mac_last_rxbuf_init = 0x40001de8;
hal_attenna_init = 0x40001dec;
hal_timer_update_by_rtc = 0x40001df0;
hal_coex_pti_init = 0x40001df4;
lmac_stop_hw_txq = 0x40001df8;
/*lmac_stop_hw_txq = 0x40001df8;*/
ppDirectRecycleAmpdu = 0x40001dfc;
esp_wifi_internal_set_rts = 0x40001e00;
esp_wifi_internal_get_rts = 0x40001e04;
@@ -1847,7 +1847,7 @@ ic_reset_rx_ba = 0x40001fa8;
ieee80211_align_eb = 0x40001fac;
ieee80211_ampdu_reorder = 0x40001fb0;
ieee80211_ampdu_start_age_timer = 0x40001fb4;
ieee80211_encap_esfbuf = 0x40001fb8;
/*ieee80211_encap_esfbuf = 0x40001fb8;*/
ieee80211_is_tx_allowed = 0x40001fbc;
ieee80211_output_pending_eb = 0x40001fc0;
/* ieee80211_output_process = 0x40001fc4; */
@@ -1857,7 +1857,7 @@ wifi_get_macaddr = 0x40001fd0;
wifi_rf_phy_disable = 0x40001fd4;
wifi_rf_phy_enable = 0x40001fd8;
ic_ebuf_alloc = 0x40001fdc;
ieee80211_classify = 0x40001fe0;
/*ieee80211_classify = 0x40001fe0;*/
ieee80211_copy_eb_header = 0x40001fe4;
ieee80211_recycle_cache_eb = 0x40001fe8;
ieee80211_search_node = 0x40001fec;

View File

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

View File

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

View File

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

View File

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

View File

@@ -1 +1,2 @@
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/event_groups.h"
#include "esp_wifi.h"
#include "esp_wpa2.h"
#include "esp_eap_client.h"
#include "esp_event.h"
#include "esp_log.h"
#include "esp_system.h"
#include "nvs_flash.h"
#include "esp_netif.h"
#include "esp_smartconfig.h"
#include "esp_mac.h"
/* FreeRTOS event group to signal when we are connected & ready to make a request */
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));
memcpy(wifi_config.sta.ssid, evt->ssid, sizeof(wifi_config.sta.ssid));
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;
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));
}
#endif
memcpy(ssid, evt->ssid, sizeof(evt->ssid));
memcpy(password, evt->password, sizeof(evt->password));