Просмотр исходного кода

esp32: support to create wifi task on any core

Support to create WiFi task on any core.
Closes https://github.com/espressif/esp-idf/issues/968
Liu Zhi Fu 7 лет назад
Родитель
Сommit
4e9ea81208
3 измененных файлов с 22 добавлено и 1 удалено
  1. 13 0
      components/esp32/Kconfig
  2. 8 0
      components/esp32/include/esp_wifi.h
  3. 1 1
      components/esp32/lib

+ 13 - 0
components/esp32/Kconfig

@@ -997,6 +997,19 @@ config ESP32_WIFI_NVS_ENABLED
     help
         Select this option to enable WiFi NVS flash
 
+choice ESP32_WIFI_TASK_CORE_ID
+    depends on !FREERTOS_UNICORE
+    prompt "WiFi Task Core ID"
+    default ESP32_WIFI_TASK_PINNED_TO_CORE_0
+    help
+        Pinned WiFi task to core 0 or core 1.
+
+config ESP32_WIFI_TASK_PINNED_TO_CORE_0
+    bool "Core 0"
+config ESP32_WIFI_TASK_PINNED_TO_CORE_1
+    bool "Core 1"
+endchoice
+
 endmenu  # Wi-Fi
 
 menu PHY

+ 8 - 0
components/esp32/include/esp_wifi.h

@@ -105,6 +105,7 @@ typedef struct {
     int                    nano_enable;            /**< Nano option for printf/scan family enable flag */
     int                    tx_ba_win;              /**< WiFi Block Ack TX window size */
     int                    rx_ba_win;              /**< WiFi Block Ack RX window size */
+    int                    wifi_task_core_id;      /**< WiFi Task Core ID */
     int                    magic;                  /**< WiFi init magic number, it should be the last field */
 } wifi_init_config_t;
 
@@ -160,6 +161,12 @@ extern const wpa_crypto_funcs_t g_wifi_default_wpa_crypto_funcs;
 #define WIFI_DEFAULT_RX_BA_WIN 0 /* unused if ampdu_rx_enable == false */
 #endif
 
+#if CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1
+#define WIFI_TASK_CORE_ID 1
+#else
+#define WIFI_TASK_CORE_ID 0
+#endif
+
 #define WIFI_INIT_CONFIG_DEFAULT() { \
     .event_handler = &esp_event_send, \
     .wpa_crypto_funcs = g_wifi_default_wpa_crypto_funcs, \
@@ -174,6 +181,7 @@ extern const wpa_crypto_funcs_t g_wifi_default_wpa_crypto_funcs;
     .nano_enable = WIFI_NANO_FORMAT_ENABLED,\
     .tx_ba_win = WIFI_DEFAULT_TX_BA_WIN,\
     .rx_ba_win = WIFI_DEFAULT_RX_BA_WIN,\
+    .wifi_task_core_id = WIFI_TASK_CORE_ID,\
     .magic = WIFI_INIT_CONFIG_MAGIC\
 };
 

+ 1 - 1
components/esp32/lib

@@ -1 +1 @@
-Subproject commit 3b4ce03f4634ed8837868bb45094d0ec3ee1deb5
+Subproject commit ba4c4ce08e64ec848360afe25796fbdf45e24c9a