You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
240 lines
8.5 KiB
240 lines
8.5 KiB
# Copyright 2020 Espressif Systems (Shanghai) PTE LTD |
|
|
|
menuconfig WIFI_ESP32 |
|
bool "ESP32 SoC WiFi support" |
|
default y |
|
depends on DT_HAS_ESPRESSIF_ESP32_WIFI_ENABLED |
|
depends on !SMP |
|
select THREAD_CUSTOM_DATA |
|
select NET_L2_WIFI_MGMT |
|
select WIFI_USE_NATIVE_NETWORKING |
|
select MBEDTLS |
|
select MBEDTLS_ENTROPY_ENABLED |
|
select MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED |
|
select MBEDTLS_ECP_ALL_ENABLED |
|
help |
|
Enable ESP32 SoC WiFi support. Only supported in single |
|
core mode because the network stack is not aware of SMP |
|
stuff. |
|
|
|
if WIFI_ESP32 |
|
|
|
config ESP32_WIFI_STA_AUTO_DHCPV4 |
|
bool "Automatically starts DHCP4 negotiation" |
|
depends on NET_DHCPV4 |
|
depends on NET_IPV4 |
|
help |
|
WiFi driver will automatically initiate DHCPV4 negotiation when connected. |
|
|
|
config ESP32_WIFI_STA_RECONNECT |
|
bool "WiFi connection retry" |
|
help |
|
Set auto WiFI reconnection when disconnected. |
|
|
|
config ESP32_WIFI_EVENT_TASK_STACK_SIZE |
|
int "Event Task Stack Size" |
|
default 4096 |
|
|
|
config ESP32_WIFI_EVENT_TASK_PRIO |
|
int "Event Task Priority" |
|
default 4 |
|
|
|
config ESP32_WIFI_STATIC_RX_BUFFER_NUM |
|
int "Max number of WiFi static RX buffers" |
|
range 2 25 |
|
default 10 |
|
help |
|
Set the number of WiFi static RX buffers. Each buffer takes approximately |
|
1.6KB of RAM. The static rx buffers are allocated when esp_wifi_init is |
|
called, they are not freed until esp_wifi_deinit is called. |
|
|
|
WiFi hardware use these buffers to receive all 802.11 frames. A higher |
|
number may allow higher throughput but increases memory use. |
|
If ESP32_WIFI_AMPDU_RX_ENABLED is enabled, this value is recommended to |
|
set equal or bigger than ESP32_WIFI_RX_BA_WIN in order to achieve better |
|
throughput and compatibility with both stations and APs. |
|
|
|
config ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM |
|
int "Max number of WiFi dynamic RX buffers" |
|
range 0 128 |
|
default 32 |
|
help |
|
Set the number of WiFi dynamic RX buffers, 0 means unlimited RX buffers |
|
will be allocated (provided sufficient free RAM). The size of each dynamic |
|
RX buffer depends on the size of the received data frame. |
|
|
|
For each received data frame, the WiFi driver makes a copy to an RX buffer |
|
and then delivers it to the high layer TCP/IP stack. The dynamic RX buffer |
|
is freed after the higher layer has successfully received the data frame. |
|
|
|
For some applications, WiFi data frames may be received faster than the |
|
application can process them. In these cases we may run out of memory if |
|
RX buffer number is unlimited (0). If a dynamic RX buffer limit is set, |
|
it should be at least the number of static RX buffers. |
|
|
|
choice ESP32_WIFI_TX_BUFFER |
|
prompt "Type of WiFi TX buffers" |
|
default ESP32_WIFI_DYNAMIC_TX_BUFFER |
|
help |
|
Select type of WiFi TX buffers: |
|
|
|
If "Static" is selected, WiFi TX buffers are allocated when WiFi is |
|
initialized and released when WiFi is de-initialized. The size of each |
|
static TX buffer is fixed to about 1.6KB. |
|
|
|
If "Dynamic" is selected, each WiFi TX buffer is allocated as needed |
|
when a data frame is delivered to the Wifi driver from the TCP/IP stack. |
|
The buffer is freed after the data frame has been sent by the WiFi driver. |
|
The size of each dynamic TX buffer depends on the length of each data |
|
frame sent by the TCP/IP layer. |
|
|
|
If PSRAM is enabled, "Static" should be selected to guarantee enough |
|
WiFi TX buffers. If PSRAM is disabled, "Dynamic" should be selected |
|
to improve the utilization of RAM. |
|
|
|
config ESP32_WIFI_STATIC_TX_BUFFER |
|
bool "Static" |
|
config ESP32_WIFI_DYNAMIC_TX_BUFFER |
|
bool "Dynamic" |
|
endchoice |
|
|
|
config ESP32_WIFI_TX_BUFFER_TYPE |
|
int |
|
default 0 if ESP32_WIFI_STATIC_TX_BUFFER |
|
default 1 if ESP32_WIFI_DYNAMIC_TX_BUFFER |
|
|
|
config ESP32_WIFI_STATIC_TX_BUFFER_NUM |
|
int "Max number of WiFi static TX buffers" |
|
depends on ESP32_WIFI_STATIC_TX_BUFFER |
|
range 1 64 |
|
default 16 |
|
help |
|
Set the number of WiFi static TX buffers. Each buffer takes approximately |
|
1.6KB of RAM. The static RX buffers are allocated when esp_wifi_init() is |
|
called, they are not released until esp_wifi_deinit() is called. |
|
|
|
For each transmitted data frame from the higher layer TCP/IP stack, |
|
the WiFi driver makes a copy of it in a TX buffer. For some applications |
|
especially UDP applications, the upper layer can deliver frames faster |
|
than WiFi layer can transmit. |
|
In these cases, we may run out of TX buffers. |
|
|
|
config ESP32_WIFI_CACHE_TX_BUFFER_NUM |
|
int "Max number of WiFi cache TX buffers" |
|
range 16 128 |
|
default 32 |
|
help |
|
Set the number of WiFi cache TX buffer number. |
|
|
|
For each TX packet from uplayer, such as LWIP etc, WiFi driver needs to |
|
allocate a static TX buffer and makes a copy of uplayer packet. If WiFi |
|
driver fails to allocate the static TX buffer, it caches the uplayer |
|
packets to a dedicated buffer queue, this option is used to configure the |
|
size of the cached TX queue. |
|
|
|
config ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM |
|
int "Max number of WiFi dynamic TX buffers" |
|
depends on ESP32_WIFI_DYNAMIC_TX_BUFFER |
|
range 1 128 |
|
default 32 |
|
help |
|
Set the number of WiFi dynamic TX buffers. The size of each |
|
dynamic TXbuffer is not fixed, it depends on the size of each |
|
transmitted data frame. |
|
|
|
For each transmitted frame from the higher layer TCP/IP stack, |
|
the WiFi driver makes a copy of it in a TX buffer. For some applications, |
|
especially UDP applications, the upper layer can deliver frames faster |
|
than WiFi layer can transmit. In these cases, we may run out of TX |
|
buffers. |
|
|
|
config ESP32_WIFI_CSI_ENABLED |
|
bool "WiFi CSI(Channel State Information)" |
|
help |
|
Select this option to enable CSI(Channel State Information) feature. |
|
CSI takes about CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM KB of RAM. |
|
If CSI is not used, it is better to disable this feature in order |
|
to save memory. |
|
|
|
config ESP32_WIFI_AMPDU_TX_ENABLED |
|
bool "WiFi AMPDU TX" |
|
default y |
|
help |
|
Select this option to enable AMPDU TX feature. It improves transmission |
|
error checking and overall network performance with the cost of processing |
|
speed. Helpful when the device is operating in crowded wireless area. |
|
|
|
config ESP32_WIFI_TX_BA_WIN |
|
int "WiFi AMPDU TX BA window size" |
|
depends on ESP32_WIFI_AMPDU_TX_ENABLED |
|
range 2 32 |
|
default 6 |
|
help |
|
Set the size of WiFi Block Ack TX window. Generally a bigger value means |
|
higher throughput but more memory. Most of time we should NOT change the |
|
default value unless special reason, e.g. test the maximum |
|
UDP TX throughput with iperf etc. For iperf test in shieldbox, |
|
the recommended value is 9~12. |
|
|
|
config ESP32_WIFI_AMPDU_RX_ENABLED |
|
bool "WiFi AMPDU RX" |
|
default y |
|
help |
|
Select this option to enable AMPDU RX feature. It improves transmission |
|
error checking and overall network performance with the cost of processing |
|
speed. Helpful when the device is operating in crowded wireless area. |
|
|
|
config ESP32_WIFI_RX_BA_WIN |
|
int "WiFi AMPDU RX BA window size" |
|
depends on ESP32_WIFI_AMPDU_RX_ENABLED |
|
range 2 32 |
|
default 6 |
|
help |
|
Set the size of WiFi Block Ack RX window. Generally a bigger value means |
|
higher throughput and better compatibility but more memory. Most of time |
|
we should NOT change the default value unless special reason, |
|
e.g. test the maximum UDP RX throughput with iperf etc. For iperf test in |
|
shieldbox, the recommended value is 9~12. If PSRAM is used and WiFi memory |
|
is preferred to be allocated in PSRAM first, the default and minimum value |
|
should be 16 to achieve better throughput and compatibility with both |
|
stations and APs. |
|
|
|
choice ESP32_WIFI_TASK_CORE_ID |
|
prompt "WiFi Task Core ID" |
|
default ESP32_WIFI_TASK_PINNED_TO_CORE_0 |
|
help |
|
Pinned WiFi task to core 0 (core 1 not supported yet) |
|
|
|
config ESP32_WIFI_TASK_PINNED_TO_CORE_0 |
|
bool "Core 0" |
|
endchoice |
|
|
|
config ESP32_WIFI_SW_COEXIST_ENABLE |
|
bool |
|
help |
|
Software controls WiFi/Bluetooth coexistence. Not supported yet. |
|
|
|
config ESP32_WIFI_IRAM_OPT |
|
bool "WiFi IRAM speed optimization" |
|
default y |
|
help |
|
Select this option to place frequently called Wi-Fi library functions in IRAM. |
|
When this option is disabled, more than 10Kbytes of IRAM memory will be saved |
|
but Wi-Fi throughput will be reduced. |
|
|
|
config ESP32_WIFI_RX_IRAM_OPT |
|
bool "WiFi RX IRAM speed optimization" |
|
default y |
|
help |
|
Select this option to place frequently called Wi-Fi library RX functions in IRAM. |
|
When this option is disabled, more than 17Kbytes of IRAM memory will be saved |
|
but Wi-Fi performance will be reduced. |
|
|
|
config ESP32_WIFI_NET_ALLOC_SPIRAM |
|
bool "Allocate memory of WiFi and NET in SPIRAM" |
|
depends on ESP_SPIRAM |
|
help |
|
Allocate memory of WiFi and NET stack in SPIRAM, increasing available RAM memory space |
|
for application stack. |
|
|
|
endif # WIFI_ESP32
|
|
|