Przeglądaj źródła

Merge branch 'bugfix/backport_some_wifi_bugs_0323_v4.0' into 'release/v4.0'

esp_wifi: Backport some wifi bugs 0323 (backport v4.0)

See merge request espressif/esp-idf!8087
Jiang Jiang Jian 5 lat temu
rodzic
commit
fb14ab08c8

+ 1 - 0
components/esp32/esp_adapter.c

@@ -588,6 +588,7 @@ wifi_osi_funcs_t g_wifi_osi_funcs = {
     ._get_time = get_time_wrapper,
     ._random = os_random,
     ._log_write = esp_log_write,
+    ._log_writev = esp_log_writev,
     ._log_timestamp = esp_log_timestamp,
     ._malloc_internal =  malloc_internal_wrapper,
     ._realloc_internal = realloc_internal_wrapper,

+ 1 - 0
components/esp_wifi/include/esp_private/wifi_os_adapter.h

@@ -106,6 +106,7 @@ typedef struct {
     int32_t (* _get_time)(void *t);
     unsigned long (* _random)(void);
     void (* _log_write)(uint32_t level, const char* tag, const char* format, ...);
+    void (* _log_writev)(uint32_t level, const char* tag, const char* format, va_list args);
     uint32_t (* _log_timestamp)(void);
     void * (* _malloc_internal)(size_t size);
     void * (* _realloc_internal)(void *ptr, size_t size);

+ 1 - 1
components/esp_wifi/include/esp_wifi_types.h

@@ -207,7 +207,7 @@ typedef struct {
     uint8_t channel;            /**< Channel of ESP32 soft-AP */
     wifi_auth_mode_t authmode;  /**< Auth mode of ESP32 soft-AP. Do not support AUTH_WEP in soft-AP mode */
     uint8_t ssid_hidden;        /**< Broadcast SSID or not, default 0, broadcast the SSID */
-    uint8_t max_connection;     /**< Max number of stations allowed to connect in, default 4, max 4 */
+    uint8_t max_connection;     /**< Max number of stations allowed to connect in, default 4, max 10 */
     uint16_t beacon_interval;   /**< Beacon interval, 100 ~ 60000 ms, default 100 ms */
 } wifi_ap_config_t;
 

+ 1 - 1
components/esp_wifi/lib_esp32

@@ -1 +1 @@
-Subproject commit 11a77168887c3e0ec8e1c8508a13cd561f57d622
+Subproject commit 674f73c44a1c9f96292fa468b1c47a16d55a40a2

+ 1 - 0
components/esp_wifi/src/wifi_init.c

@@ -104,6 +104,7 @@ esp_err_t esp_wifi_deinit(void)
     err = esp_wifi_deinit_internal();
     if (err != ESP_OK) {
         ESP_LOGE(TAG, "Failed to deinit Wi-Fi driver (0x%x)", err);
+        return err;
     }
 
     tcpip_adapter_clear_default_wifi_handlers();

+ 1 - 1
components/idf_test/integration_test/TC_IT_WIFI_CONN.yml

@@ -78,7 +78,7 @@ test cases:
   - - SSC SSC2 sta -C -s <target_ssid>
     - - R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)
   - - SSC SSC1 ap -S -s <target_ssid> -n 15
-    - - R SSC1 C +SAP:OK
+    - - R SSC1 C +SAP:ERROR
   - - SSC SSC2 sta -C -s <target_ssid>
     - - R SSC2 RE "\+JAP:CONNECTED,%%s"%%(<target_ssid>)
   - - SSC SSC2 sta -D

+ 9 - 0
components/log/include/esp_log.h

@@ -106,6 +106,15 @@ uint32_t esp_log_early_timestamp(void);
  */
 void esp_log_write(esp_log_level_t level, const char* tag, const char* format, ...) __attribute__ ((format (printf, 3, 4)));
 
+/**
+ * @brief Write message into the log, va_list variant
+ * @see esp_log_write()
+ *
+ * This function is provided to ease integration toward other logging framework,
+ * so that esp_log can be used as a log sink.
+ */
+void esp_log_writev(esp_log_level_t level, const char* tag, const char* format, va_list args);
+
 /** @cond */
 
 #include "esp_log_internal.h"

+ 11 - 3
components/log/log.c

@@ -186,9 +186,10 @@ void clear_log_level_list()
 #endif
 }
 
-void IRAM_ATTR esp_log_write(esp_log_level_t level,
+void IRAM_ATTR esp_log_writev(esp_log_level_t level,
         const char* tag,
-        const char* format, ...)
+        const char* format,
+        va_list args)
 {
     if (!s_log_mutex) {
         s_log_mutex = xSemaphoreCreateMutex();
@@ -212,9 +213,16 @@ void IRAM_ATTR esp_log_write(esp_log_level_t level,
         return;
     }
 
+    (*s_log_print_func)(format, args);
+}
+
+void IRAM_ATTR esp_log_write(esp_log_level_t level,
+        const char* tag,
+        const char* format, ...)
+{
     va_list list;
     va_start(list, format);
-    (*s_log_print_func)(format, list);
+    esp_log_writev(level, tag, format, list);
     va_end(list);
 }