On app cpu (#1)

* move loop task to APP CPU

* Rework WiFi boot so it works when loop is on APP CPU
This commit is contained in:
Me No Dev 2016-10-06 18:16:00 +03:00 committed by GitHub
parent b89cf412ab
commit ac19ecf3d5
2 changed files with 18 additions and 22 deletions

View File

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

View File

@ -286,30 +286,22 @@ void wifi_dns_found_callback(const char *name, const ip_addr_t *ipaddr, void *ca
* */ * */
#include "nvs_flash.h" #include "nvs_flash.h"
void bootWiFi() void initWiFi()
{ {
esp_err_t err; wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
wifi_init_config_t cfg; nvs_flash_init();
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;
}
system_init(); system_init();
tcpip_adapter_init(); tcpip_adapter_init();
esp_event_loop_init(WiFiGenericClass::_eventCallback, NULL); 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(); err = esp_wifi_start();
if (err != ESP_OK) { if (err != ESP_OK) {
log_e("esp_wifi_start fail %d\n", err); log_e("esp_wifi_start fail %d\n", err);