]> granicus.if.org Git - esp-idf/commitdiff
Build: Handle WiFi & BT enabled/disabled combos gracefully as possible
authorAngus Gratton <angus@espressif.com>
Mon, 16 Jan 2017 00:52:15 +0000 (11:52 +1100)
committerAngus Gratton <angus@espressif.com>
Mon, 16 Jan 2017 02:03:17 +0000 (13:03 +1100)
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

components/esp32/component.mk
components/esp32/include/esp_wifi.h
components/esp32/system_api.c
examples/02_blink/sdkconfig.defaults [new file with mode: 0644]
examples/14_gatt_server/sdkconfig.defaults
examples/15_gatt_client/sdkconfig.defaults

index 4ceb13e837de0f9d78054d43cd04c3d7d6082b1a..e1cd2c6524a7ac4b5b183dd5f53d68f51449f993 100644 (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
 
index 197a04fd3b9e6cbcf8e6be1f4291a68d81ae4ec8..8d4fa17bb738f573282253e80379f831567e216e 100755 (executable)
@@ -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
index 60fa1796cdcabfe5135f4e1aa57c63cd2512629d..bfc0f0752792b56710658b9ab75e6c4d53f42174 100644 (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();
diff --git a/examples/02_blink/sdkconfig.defaults b/examples/02_blink/sdkconfig.defaults
new file mode 100644 (file)
index 0000000..8c618fb
--- /dev/null
@@ -0,0 +1,2 @@
+# Disable WiFi stack by default
+CONFIG_WIFI_ENABLED=n
index dcf4ad2c2d15acf23d1ba74eae0973c02b26316d..9d51df5ee57dc9123ca0eebe58a0d2c95e25f0a4 100644 (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
index dcf4ad2c2d15acf23d1ba74eae0973c02b26316d..9d51df5ee57dc9123ca0eebe58a0d2c95e25f0a4 100644 (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