kopia lustrzana https://github.com/espressif/esp-idf
esp32: menuconfig adds some WiFi options
1. Add options to enable/disable AMPDU 2. Add options to enable/disable WIFI NVS 3. Add options to configure WiFi RX/TX buffer numberpull/383/head^2^2
rodzic
3b8c9a407f
commit
abdd8feebb
|
@ -513,15 +513,61 @@ config SW_COEXIST_ENABLE
|
||||||
automatically managed, no user intervention is required.
|
automatically managed, no user intervention is required.
|
||||||
|
|
||||||
|
|
||||||
config ESP32_WIFI_RX_BUFFER_NUM
|
config ESP32_WIFI_STATIC_RX_BUFFER_NUM
|
||||||
int "Max number of WiFi RX buffers"
|
int "Max number of WiFi static RX buffers"
|
||||||
depends on WIFI_ENABLED
|
depends on WIFI_ENABLED
|
||||||
range 2 25
|
range 2 25
|
||||||
default 10
|
default 10
|
||||||
help
|
help
|
||||||
Set the number of WiFi rx buffers. Each buffer takes approximately 1.6KB of RAM.
|
Set the number of WiFi static rx buffers. Each buffer takes approximately 1.6KB of RAM.
|
||||||
Larger number for higher throughput but more memory. Smaller number for lower
|
The static rx buffers are allocated when esp_wifi_init is called, they are not freed
|
||||||
throughput but less memory.
|
until esp_wifi_deinit is called.
|
||||||
|
WiFi hardware use these buffers to receive packets, generally larger number for higher
|
||||||
|
throughput but more memory, smaller number for lower throughput but less memory.
|
||||||
|
|
||||||
|
config ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM
|
||||||
|
int "Max number of WiFi dynamic RX buffers"
|
||||||
|
depends on WIFI_ENABLED
|
||||||
|
range 0 64
|
||||||
|
default 0
|
||||||
|
help
|
||||||
|
Set the number of WiFi dynamic rx buffers, 0 means no limitation for dynamic rx buffer
|
||||||
|
allocation. The size of dynamic rx buffers is not fixed.
|
||||||
|
For each received packet in static rx buffers, WiFi driver makes a copy
|
||||||
|
to dynamic rx buffers and then deliver it to high layer stack. The dynamic rx buffer
|
||||||
|
is freed when the application, such as socket, successfully received the packet.
|
||||||
|
For some applications, the WiFi driver receiving speed is faster than application
|
||||||
|
consuming speed, we may run out of memory if no limitation for the dynamic rx buffer
|
||||||
|
number. Generally the number of dynamic rx buffer should be no less than static
|
||||||
|
rx buffer number if it is not 0.
|
||||||
|
|
||||||
|
config ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM
|
||||||
|
int "Max number of WiFi dynamic TX buffers"
|
||||||
|
depends on WIFI_ENABLED
|
||||||
|
range 16 64
|
||||||
|
default 32
|
||||||
|
help
|
||||||
|
Set the number of WiFi dynamic tx buffers, 0 means no limitation for dynamic tx buffer
|
||||||
|
allocation. The size of dynamic tx buffers is not fixed.
|
||||||
|
For each tx packet from high layer stack, WiFi driver make a copy of it. For some applications,
|
||||||
|
especially the UDP application, the high layer deliver speed is faster than the WiFi tx
|
||||||
|
speed, we may run out of memory if no limitation for the dynamic tx buffer number.
|
||||||
|
|
||||||
|
|
||||||
|
config ESP32_WIFI_AMPDU_ENABLED
|
||||||
|
bool "WiFi AMPDU"
|
||||||
|
depends on WIFI_ENABLED
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Select this option to enable AMPDU feature
|
||||||
|
|
||||||
|
|
||||||
|
config ESP32_WIFI_NVS_ENABLED
|
||||||
|
bool "WiFi NVS flash"
|
||||||
|
depends on WIFI_ENABLED
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Select this option to enable WiFi NVS flash
|
||||||
|
|
||||||
config PHY_ENABLED
|
config PHY_ENABLED
|
||||||
bool
|
bool
|
||||||
|
|
|
@ -31,18 +31,6 @@
|
||||||
#define ESP_TASK_PRIO_MAX (configMAX_PRIORITIES)
|
#define ESP_TASK_PRIO_MAX (configMAX_PRIORITIES)
|
||||||
#define ESP_TASK_PRIO_MIN (0)
|
#define ESP_TASK_PRIO_MIN (0)
|
||||||
|
|
||||||
/* Wifi library task */
|
|
||||||
#define ESP_TASKD_WATCHDOG_PRIO (ESP_TASK_PRIO_MAX - 1)
|
|
||||||
#define ESP_TASKD_WATCHDOG_STACK 2048
|
|
||||||
#define ESP_TASK_WPA2_PRIO (ESP_TASK_PRIO_MAX - 1)
|
|
||||||
#define ESP_TASK_WPA2_STACK 2048
|
|
||||||
#define ESP_TASKD_WIFI_PRIO (ESP_TASK_PRIO_MAX - 2)
|
|
||||||
#define ESP_TASKD_WIFI_STACK 8196
|
|
||||||
#define ESP_TASKD_WIFI_TIMER_PRIO (ESP_TASK_PRIO_MAX - 3)
|
|
||||||
#define ESP_TASKD_WIFI_TIMER_STACK 2048
|
|
||||||
#define ESP_TASK_WPS_PRIO (ESP_TASK_PRIO_MIN + 2)
|
|
||||||
#define ESP_TASK_WPS_STACK 2048
|
|
||||||
|
|
||||||
/* Bt contoller Task */
|
/* Bt contoller Task */
|
||||||
/* controller */
|
/* controller */
|
||||||
#define ESP_TASK_BT_CONTROLLER_PRIO (ESP_TASK_PRIO_MAX - 1)
|
#define ESP_TASK_BT_CONTROLLER_PRIO (ESP_TASK_PRIO_MAX - 1)
|
||||||
|
|
|
@ -94,14 +94,45 @@ extern "C" {
|
||||||
* @brief WiFi stack configuration parameters passed to esp_wifi_init call.
|
* @brief WiFi stack configuration parameters passed to esp_wifi_init call.
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
system_event_handler_t event_handler; /**< WiFi event handler */
|
system_event_handler_t event_handler; /**< WiFi event handler */
|
||||||
uint32_t rx_buf_num; /**< WiFi RX buffer number */
|
int static_rx_buf_num; /**< WiFi static RX buffer number */
|
||||||
|
int dynamic_rx_buf_num; /**< WiFi dynamic RX buffer number */
|
||||||
|
int dynamic_tx_buf_num; /**< WiFi dynamic TX buffer number */
|
||||||
|
int ampdu_enable; /**< WiFi AMPDU feature enable flag */
|
||||||
|
int nvs_enable; /**< WiFi NVS flash enable flag */
|
||||||
|
int nano_enable; /**< Nano option for printf/scan family enable flag */
|
||||||
|
int magic; /**< WiFi init magic number, it should be the last field */
|
||||||
} wifi_init_config_t;
|
} wifi_init_config_t;
|
||||||
|
|
||||||
|
#if CONFIG_ESP32_WIFI_AMPDU_ENABLED
|
||||||
|
#define WIFI_AMPDU_ENABLED 1
|
||||||
|
#else
|
||||||
|
#define WIFI_AMPDU_ENABLED 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_ESP32_WIFI_NVS_ENABLED
|
||||||
|
#define WIFI_NVS_ENABLED 1
|
||||||
|
#else
|
||||||
|
#define WIFI_NVS_ENABLED 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_NEWLIB_NANO_FORMAT
|
||||||
|
#define WIFI_NANO_FORMAT_ENABLED 1
|
||||||
|
#else
|
||||||
|
#define WIFI_NANO_FORMAT_ENABLED 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define WIFI_INIT_CONFIG_MAGIC 0x1F2F3F4F
|
||||||
#ifdef CONFIG_WIFI_ENABLED
|
#ifdef CONFIG_WIFI_ENABLED
|
||||||
#define WIFI_INIT_CONFIG_DEFAULT() { \
|
#define WIFI_INIT_CONFIG_DEFAULT() { \
|
||||||
.event_handler = &esp_event_send, \
|
.event_handler = &esp_event_send, \
|
||||||
.rx_buf_num = CONFIG_ESP32_WIFI_RX_BUFFER_NUM, \
|
.static_rx_buf_num = CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM,\
|
||||||
|
.dynamic_rx_buf_num = CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM,\
|
||||||
|
.dynamic_tx_buf_num = CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM,\
|
||||||
|
.ampdu_enable = WIFI_AMPDU_ENABLED,\
|
||||||
|
.nvs_enable = WIFI_NVS_ENABLED,\
|
||||||
|
.nano_enable = WIFI_NANO_FORMAT_ENABLED,\
|
||||||
|
.magic = WIFI_INIT_CONFIG_MAGIC\
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
#define WIFI_INIT_CONFIG_DEFAULT #error Wifi is disabled in config, WIFI_INIT_CONFIG_DEFAULT will not work
|
#define WIFI_INIT_CONFIG_DEFAULT #error Wifi is disabled in config, WIFI_INIT_CONFIG_DEFAULT will not work
|
||||||
|
@ -113,8 +144,11 @@ typedef struct {
|
||||||
* WiFi NVS structure etc, this WiFi also start WiFi task
|
* WiFi NVS structure etc, this WiFi also start WiFi task
|
||||||
*
|
*
|
||||||
* @attention 1. This API must be called before all other WiFi API can be called
|
* @attention 1. This API must be called before all other WiFi API can be called
|
||||||
* @attention 2. event_handler field in cfg should be set to a valid event handler function.
|
* @attention 2. Always use WIFI_INIT_CONFIG_DEFAULT macro to init the config to default values, this can
|
||||||
* In most cases, use the WIFI_INIT_CONFIG_DEFAULT macro which sets esp_event_send().
|
* guarantee all the fields got correct value when more fields are added into wifi_init_config_t
|
||||||
|
* in future release. If you want to set your owner initial values, overwrite the default values
|
||||||
|
* which are set by WIFI_INIT_CONFIG_DEFAULT, please be notified that the field 'magic' of
|
||||||
|
* wifi_init_config_t should always be WIFI_INIT_CONFIG_MAGIC!
|
||||||
*
|
*
|
||||||
* @param config provide WiFi init configuration
|
* @param config provide WiFi init configuration
|
||||||
*
|
*
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit e22ec1a5140dca2bb44f9bfb3147911fa4ebb8fe
|
Subproject commit 57b2234ed3a501ddbc36bdc032e1714d2838608d
|
Ładowanie…
Reference in New Issue