forked from espressif/esp-idf
Build: Handle WiFi & BT enabled/disabled combos gracefully as possible
If using WIFI_INIT_CONFIG_DEFAULT, error message will point out lack of WiFi. Otherwise linker errors on WiFi symbols should help give a clue as to what is broken. Piggy-backs on changes in !420, ref github #230 #237
This commit is contained in:
@@ -3,8 +3,15 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
COMPONENT_SRCDIRS := . hwcrypto
|
COMPONENT_SRCDIRS := . hwcrypto
|
||||||
|
LIBS := core rtc phy
|
||||||
|
ifdef CONFIG_BT_ENABLED
|
||||||
|
LIBS += coexist
|
||||||
|
endif
|
||||||
|
ifdef CONFIG_WIFI_ENABLED
|
||||||
|
LIBS += net80211 pp wpa smartconfig coexist wps wpa2
|
||||||
|
endif
|
||||||
|
|
||||||
LIBS := core net80211 phy rtc pp wpa smartconfig coexist wps wpa2
|
LIBS := $(sort $(LIBS)) # de-duplicate, we can handle different orders here
|
||||||
|
|
||||||
LINKER_SCRIPTS += esp32.common.ld esp32.rom.ld esp32.peripherals.ld
|
LINKER_SCRIPTS += esp32.common.ld esp32.rom.ld esp32.peripherals.ld
|
||||||
|
|
||||||
|
@@ -62,6 +62,7 @@
|
|||||||
#include "freertos/FreeRTOS.h"
|
#include "freertos/FreeRTOS.h"
|
||||||
#include "freertos/queue.h"
|
#include "freertos/queue.h"
|
||||||
#include "rom/queue.h"
|
#include "rom/queue.h"
|
||||||
|
#include "sdkconfig.h"
|
||||||
#include "esp_err.h"
|
#include "esp_err.h"
|
||||||
#include "esp_wifi_types.h"
|
#include "esp_wifi_types.h"
|
||||||
#include "esp_event.h"
|
#include "esp_event.h"
|
||||||
@@ -97,11 +98,14 @@ typedef struct {
|
|||||||
uint32_t rx_buf_num; /**< WiFi RX buffer number */
|
uint32_t rx_buf_num; /**< WiFi RX buffer number */
|
||||||
} wifi_init_config_t;
|
} wifi_init_config_t;
|
||||||
|
|
||||||
|
#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, \
|
.rx_buf_num = CONFIG_ESP32_WIFI_RX_BUFFER_NUM, \
|
||||||
};
|
};
|
||||||
|
#else
|
||||||
|
#define WIFI_INIT_CONFIG_DEFAULT #error Wifi is disabled in config, WIFI_INIT_CONFIG_DEFAULT will not work
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Init WiFi
|
* @brief Init WiFi
|
||||||
|
@@ -17,6 +17,7 @@
|
|||||||
#include "esp_wifi.h"
|
#include "esp_wifi.h"
|
||||||
#include "esp_wifi_internal.h"
|
#include "esp_wifi_internal.h"
|
||||||
#include "esp_log.h"
|
#include "esp_log.h"
|
||||||
|
#include "sdkconfig.h"
|
||||||
#include "rom/efuse.h"
|
#include "rom/efuse.h"
|
||||||
#include "rom/cache.h"
|
#include "rom/cache.h"
|
||||||
#include "rom/uart.h"
|
#include "rom/uart.h"
|
||||||
@@ -74,7 +75,9 @@ esp_err_t system_efuse_read_mac(uint8_t mac[6]) __attribute__((alias("esp_efuse_
|
|||||||
|
|
||||||
void IRAM_ATTR esp_restart(void)
|
void IRAM_ATTR esp_restart(void)
|
||||||
{
|
{
|
||||||
|
#ifdef CONFIG_WIFI_ENABLED
|
||||||
esp_wifi_stop();
|
esp_wifi_stop();
|
||||||
|
#endif
|
||||||
|
|
||||||
// Disable scheduler on this core.
|
// Disable scheduler on this core.
|
||||||
vTaskSuspendAll();
|
vTaskSuspendAll();
|
||||||
|
2
examples/02_blink/sdkconfig.defaults
Normal file
2
examples/02_blink/sdkconfig.defaults
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Disable WiFi stack by default
|
||||||
|
CONFIG_WIFI_ENABLED=n
|
@@ -1,7 +1,4 @@
|
|||||||
# Override some defaults so BT stack is enabled
|
# Override some defaults so BT stack is enabled
|
||||||
# in this example
|
# and WiFi disabled by default in this example
|
||||||
|
|
||||||
#
|
|
||||||
# BT config
|
|
||||||
#
|
|
||||||
CONFIG_BT_ENABLED=y
|
CONFIG_BT_ENABLED=y
|
||||||
|
CONFIG_WIFI_ENABLED=n
|
||||||
|
@@ -1,7 +1,4 @@
|
|||||||
# Override some defaults so BT stack is enabled
|
# Override some defaults so BT stack is enabled
|
||||||
# in this example
|
# and WiFi disabled by default in this example
|
||||||
|
|
||||||
#
|
|
||||||
# BT config
|
|
||||||
#
|
|
||||||
CONFIG_BT_ENABLED=y
|
CONFIG_BT_ENABLED=y
|
||||||
|
CONFIG_WIFI_ENABLED=n
|
||||||
|
Reference in New Issue
Block a user