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:
Angus Gratton 2017-01-16 11:52:15 +11:00
parent f20135af54
commit ea19838d3a
6 changed files with 22 additions and 12 deletions

View file

@ -3,8 +3,15 @@
#
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

View file

@ -62,6 +62,7 @@
#include "freertos/FreeRTOS.h"
#include "freertos/queue.h"
#include "rom/queue.h"
#include "sdkconfig.h"
#include "esp_err.h"
#include "esp_wifi_types.h"
#include "esp_event.h"
@ -97,11 +98,14 @@ typedef struct {
uint32_t rx_buf_num; /**< WiFi RX buffer number */
} wifi_init_config_t;
#ifdef CONFIG_WIFI_ENABLED
#define WIFI_INIT_CONFIG_DEFAULT() { \
.event_handler = &esp_event_send, \
.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

View file

@ -17,6 +17,7 @@
#include "esp_wifi.h"
#include "esp_wifi_internal.h"
#include "esp_log.h"
#include "sdkconfig.h"
#include "rom/efuse.h"
#include "rom/cache.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)
{
#ifdef CONFIG_WIFI_ENABLED
esp_wifi_stop();
#endif
// Disable scheduler on this core.
vTaskSuspendAll();

View file

@ -0,0 +1,2 @@
# Disable WiFi stack by default
CONFIG_WIFI_ENABLED=n

View file

@ -1,7 +1,4 @@
# Override some defaults so BT stack is enabled
# in this example
#
# BT config
#
# and WiFi disabled by default in this example
CONFIG_BT_ENABLED=y
CONFIG_WIFI_ENABLED=n

View file

@ -1,7 +1,4 @@
# Override some defaults so BT stack is enabled
# in this example
#
# BT config
#
# and WiFi disabled by default in this example
CONFIG_BT_ENABLED=y
CONFIG_WIFI_ENABLED=n