Skip to content

Commit

Permalink
On app cpu (#1)
Browse files Browse the repository at this point in the history
* move loop task to APP CPU

* Rework WiFi boot so it works when loop is on APP CPU
  • Loading branch information
me-no-dev committed Oct 6, 2016
1 parent b89cf41 commit ac19ecf
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 22 deletions.
12 changes: 8 additions & 4 deletions cores/esp32/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,11 @@ void initVariant() {}
void init() __attribute__((weak));
void init() {}

void bootWiFi() __attribute__((weak));
void bootWiFi() {}
void startWiFi() __attribute__((weak));
void startWiFi() {}

void initWiFi() __attribute__((weak));
void initWiFi() {}

extern void loop();
extern void setup();
Expand All @@ -18,7 +21,7 @@ void loopTask(void *pvParameters)
bool setup_done = false;
for(;;) {
if(!setup_done) {
bootWiFi();
startWiFi();
setup();
setup_done = true;
}
Expand All @@ -30,6 +33,7 @@ extern "C" void app_main()
{
init();
initVariant();
xTaskCreatePinnedToCore(loopTask, "loopTask", 4096, NULL, 1, NULL, 0);
initWiFi();
xTaskCreatePinnedToCore(loopTask, "loopTask", 4096, NULL, 1, NULL, 1);
}

28 changes: 10 additions & 18 deletions libraries/WiFi/src/WiFiGeneric.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -286,29 +286,21 @@ void wifi_dns_found_callback(const char *name, const ip_addr_t *ipaddr, void *ca
* */
#include "nvs_flash.h"

void bootWiFi()
void initWiFi()
{
esp_err_t err;
wifi_init_config_t cfg;
wifi_mode_t mode = WIFI_MODE_NULL;
bool auto_connect = false;

err = nvs_flash_init();
if (err != ESP_OK) {
log_e("nvs_flash_init fail %d", err);
return;
}

wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
nvs_flash_init();
system_init();
tcpip_adapter_init();
esp_event_loop_init(WiFiGenericClass::_eventCallback, NULL);
esp_wifi_init(&cfg);
}

cfg.event_handler = &esp_event_send;
err = esp_wifi_init(&cfg);
if (err != ESP_OK) {
log_e("esp_wifi_init fail %d\n", err);
return;
}
void startWiFi()
{
esp_err_t err;
wifi_mode_t mode = WIFI_MODE_NULL;
bool auto_connect = false;

err = esp_wifi_start();
if (err != ESP_OK) {
Expand Down

0 comments on commit ac19ecf

Please sign in to comment.