# HG changeset patch # User Michiel Broek # Date 1584187622 -3600 # Node ID 1ab1f4a8c328f4ecb53ab25b5569edfe1881bce7 # Parent 2cf4b15895f213df607530d81adeef1edb2852bb Version 0.2.2 Changed to use a permanent network and WiFi connection. Removed three mainloop stages. Removed MQTT sequence counter that was not used. Update WiFi rssi status during eacht measure cycle. Changed FreeRTOS schedulng to 500 Hz. diff -r 2cf4b15895f2 -r 1ab1f4a8c328 CMakeLists.txt --- a/CMakeLists.txt Sat Jan 25 12:02:22 2020 +0100 +++ b/CMakeLists.txt Sat Mar 14 13:07:02 2020 +0100 @@ -2,7 +2,7 @@ # in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.5) -set(PROJECT_VER "0.2.1") +set(PROJECT_VER "0.2.2") set(PROJECT_NAME "co2meter") include($ENV{IDF_PATH}/tools/cmake/project.cmake) diff -r 2cf4b15895f2 -r 1ab1f4a8c328 main/co2meter.c --- a/main/co2meter.c Sat Jan 25 12:02:22 2020 +0100 +++ b/main/co2meter.c Sat Mar 14 13:07:02 2020 +0100 @@ -23,6 +23,7 @@ extern SemaphoreHandle_t xSemaphoreDS18B20; ///< DS18B20 lock semaphore extern ADC_State *adc_state; ///< ADC state extern SemaphoreHandle_t xSemaphoreADC; ///< ADC lock semaphore +extern SemaphoreHandle_t xSemaphoreWiFi; extern WIFI_State *wifi_state; ///< WiFi state extern EventGroupHandle_t xEventGroupUser; extern int count_pub; ///< Published MQTT messages in transit @@ -122,11 +123,23 @@ xTaskCreate(&task_user, "task_user", 4096, NULL,10, &xTaskUser); xTaskCreate(&task_ds18b20, "task_ds18b20", 2560, NULL, 8, &xTaskDS18B20); xTaskCreate(&task_adc, "task_adc", 2560, NULL, 8, &xTaskADC); + esp_log_level_set("MQTT_CLIENT", ESP_LOG_ERROR); + xTaskCreate(&task_mqtt, "task_mqtt", 4096, NULL, 5, &xTaskMQTT); esp_log_level_set("wifi", ESP_LOG_ERROR); xTaskCreate(&task_wifi, "task_wifi", 4096, NULL, 3, &xTaskWifi); vTaskDelay(10 / portTICK_PERIOD_MS); - esp_log_level_set("MQTT_CLIENT", ESP_LOG_ERROR); - xTaskCreate(&task_mqtt, "task_mqtt", 4096, NULL, 5, &xTaskMQTT); + int wait = 150; + while (wait) { + if (ready_WiFi()) { + ESP_LOGI(TAG, "Online in %.1f seconds", (150 - wait) / 10.0); + wait = 0; + } else { + wait--; + if (wait < 1) + ESP_LOGE(TAG, "Timeout network connection"); + } + vTaskDelay(100 / portTICK_PERIOD_MS); + } /* * Main application loop. @@ -139,8 +152,8 @@ while (1) { switch (Main_Loop1) { case ML1_INIT: + status_WiFi(); Main_Loop1 = ML1_CONNECT; - requestWiFi_system(true); request_ds18b20(); request_adc(); break; @@ -149,12 +162,13 @@ if (ready_WiFi()) { Main_Loop1 = ML1_MQTT_CONNECT; user_refresh(); + if (! ready_mqtt()) + connect_mqtt(true); } break; case ML1_MQTT_CONNECT: if (ready_ds18b20() && ready_adc()) { - connect_mqtt(true); Main_Loop1 = ML1_WAITCON; uint32_t temp[DS18B20_MAX]; @@ -242,27 +256,10 @@ break; case ML1_WAITACK: - if (count_pub == 0) // Wait until all published messages are sent. - Main_Loop1 = ML1_MQTT_DISCONNECT; - break; - - case ML1_MQTT_DISCONNECT: - connect_mqtt(false); // Doesn't really disconnect. - Main_Loop1 = ML1_DISCONNECT; - break; - - case ML1_DISCONNECT: - if (! ready_mqtt()) { - requestWiFi_system(false); - Main_Loop1 = ML1_WIFI_OFF; - } - break; - - case ML1_WIFI_OFF: - if (! ready_WiFi()) { + if (count_pub == 0) { // Wait until all published messages are sent. ESP_LOGI(TAG, "Main loop: Done, user busy: %s", user_busy() ? "true":"false"); - Main_Loop1 = ML1_DONE; - user_refresh(); + Main_Loop1 = ML1_DONE; + user_refresh(); } break; diff -r 2cf4b15895f2 -r 1ab1f4a8c328 main/config.h --- a/main/config.h Sat Jan 25 12:02:22 2020 +0100 +++ b/main/config.h Sat Mar 14 13:07:02 2020 +0100 @@ -40,7 +40,6 @@ #include "esp_spi_flash.h" #include "esp_ota_ops.h" #include "esp_http_client.h" -#include "nvs.h" #include "nvs_flash.h" #include "lwip/sockets.h" #include "lwip/dns.h" @@ -71,9 +70,6 @@ ML1_WAITCON, ///< Wait for connection and measurements ML1_SEND, ///< Send MQTT node and units messages ML1_WAITACK, ///< MQTT messages received - ML1_MQTT_DISCONNECT, ///< MQTT disconnect - ML1_DISCONNECT, ///< Disconnect WiFi - ML1_WIFI_OFF, ///< WiFi power off ML1_DONE ///< All done } ML1; diff -r 2cf4b15895f2 -r 1ab1f4a8c328 main/task_mqtt.c --- a/main/task_mqtt.c Sat Jan 25 12:02:22 2020 +0100 +++ b/main/task_mqtt.c Sat Mar 14 13:07:02 2020 +0100 @@ -11,8 +11,6 @@ EventGroupHandle_t xEventGroupMQTT; ///< Events MQTT task SemaphoreHandle_t xSemaphorePcounter; ///< Publish counter semaphore. -uint64_t Sequence = 0; ///< Sequence stored in NVS -nvs_handle_t seq_handle; ///< NVS handle int count_pub = 0; ///< Outstanding published messages. esp_mqtt_client_handle_t client; ///< MQTT client handle @@ -60,16 +58,9 @@ */ char *payload_header(void) { - char *tmp, buf[128]; - esp_err_t err; + char *tmp; - tmp = xstrcpy((char *)"{\"seq\":"); - sprintf(buf, "%lld", Sequence++); - err = nvs_set_u64(seq_handle, "Sequence_cnt", Sequence); - if (err != ESP_OK) - ESP_LOGE(TAG, "Error %s write Sequence to NVS", esp_err_to_name(err)); - tmp = xstrcat(tmp, buf); - tmp = xstrcat(tmp, (char *)",\"metric\":"); + tmp = xstrcpy((char *)"{\"metric\":"); return tmp; } @@ -364,29 +355,6 @@ ESP_LOGI(TAG, "Starting MQTT task"); xSemaphorePcounter = xSemaphoreCreateMutex(); - /* - * Initialize Sequence counter from NVS - */ - err = nvs_open("storage", NVS_READWRITE, &seq_handle); - if (err != ESP_OK) { - ESP_LOGE(TAG, "Error (%s) opening NVS handle", esp_err_to_name(err)); - } else { - err = nvs_get_u64(seq_handle, "Sequence_cnt", &Sequence); - switch (err) { - case ESP_OK: - ESP_LOGI(TAG, "Sequence counter from NVS = %lld", Sequence); - break; - - case ESP_ERR_NVS_NOT_FOUND: - ESP_LOGI(TAG, "Sequence counter not found"); - break; - - default: - ESP_LOGE(TAG, "Error (%s) init Sequence", esp_err_to_name(err)); - break; - } - } - /* event handler and event group for the wifi driver */ xEventGroupMQTT = xEventGroupCreate(); EventBits_t uxBits; @@ -436,9 +404,6 @@ } else if (uxBits & TASK_MQTT_DISCONNECT) { ESP_LOGI(TAG, "Request MQTT disconnect"); esp_mqtt_client_stop(client); - err = nvs_commit(seq_handle); - if (err != ESP_OK) - ESP_LOGE(TAG, "Error %s commit NVS", esp_err_to_name(err)); xEventGroupClearBits(xEventGroupMQTT, TASK_MQTT_DISCONNECT); xEventGroupClearBits(xEventGroupMQTT, TASK_MQTT_CONNECTED); } diff -r 2cf4b15895f2 -r 1ab1f4a8c328 main/task_wifi.c --- a/main/task_wifi.c Sat Jan 25 12:02:22 2020 +0100 +++ b/main/task_wifi.c Sat Mar 14 13:07:02 2020 +0100 @@ -34,14 +34,13 @@ const int TASK_WIFI_REQUEST_WIFI_SCAN = BIT0; ///< When set, means a client requested to scan wireless networks. const int TASK_WIFI_REQUEST_STA_DISCONNECT = BIT1; ///< When set, means a client requested to disconnect from currently connected AP. const int TASK_WIFI_REQUEST_STA_CONNECT = BIT2; ///< When set, means a client requested to connect to an access point. +const int TASK_WIFI_REQUEST_STA_STATUS = BIT8; const int TASK_WIFI_HAS_IP = BIT3; ///< Indicate that we have an IP address const int TASK_WIFI_STA_FAILED = BIT4; ///< Indicate that we could not get a connection to AP as station. const int TASK_WIFI_STA_DISCONNECTED = BIT5; ///< Indicate that we are disconnected from an ap station. const int TASK_WIFI_STA_CONNECTED = BIT6; ///< Indicate that we are connected to AP as station, flip of BIT6. -const int TASK_WIFI_REQUEST_SYSTEM = BIT8; ///< The system needs a connection -const int TASK_WIFI_REQUEST_USER = BIT9; ///< The user needs a connection /** @@ -53,37 +52,6 @@ /****************************************************************************/ - -void requestWiFi_system(bool state) -{ - if (state) - xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_REQUEST_SYSTEM); - else - xEventGroupClearBits(xEventGroupWifi, TASK_WIFI_REQUEST_SYSTEM); - - if (xEventGroupGetBits(xEventGroupWifi) & (TASK_WIFI_REQUEST_SYSTEM | TASK_WIFI_REQUEST_USER)) - xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_REQUEST_STA_CONNECT); - else - xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_REQUEST_STA_DISCONNECT); -} - - - -void requestWiFi_user(bool state) -{ - if (state) - xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_REQUEST_USER); - else - xEventGroupClearBits(xEventGroupWifi, TASK_WIFI_REQUEST_USER); - - if (xEventGroupGetBits(xEventGroupWifi) & (TASK_WIFI_REQUEST_SYSTEM | TASK_WIFI_REQUEST_USER)) - xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_REQUEST_STA_CONNECT); - else - xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_REQUEST_STA_DISCONNECT); -} - - - bool ready_WiFi(void) { if (wifi_state->STA_connected && wifi_state->STA_online) @@ -93,6 +61,13 @@ +void status_WiFi(void) +{ + xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_REQUEST_STA_STATUS); +} + + + static void wifi_event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data) { switch (event_id) { @@ -105,11 +80,11 @@ break; case WIFI_EVENT_STA_START: - ESP_LOGI(TAG, "Event wifi START"); - // Set the configured hostname for the dhcp client. - ESP_ERROR_CHECK(tcpip_adapter_set_hostname(TCPIP_ADAPTER_IF_STA, config.hostname)); - esp_wifi_connect(); - break; + ESP_LOGI(TAG, "Event wifi START"); + // Set the configured hostname for the dhcp client. + ESP_ERROR_CHECK(tcpip_adapter_set_hostname(TCPIP_ADAPTER_IF_STA, config.hostname)); + esp_wifi_connect(); + break; case WIFI_EVENT_STA_CONNECTED: { @@ -145,8 +120,49 @@ } else { ESP_LOGE(TAG, "wifi_event_handler() lock error WIFI_EVENT_STA_DISCONNECTED"); } + connect_mqtt(false); xEventGroupClearBits(xEventGroupWifi, TASK_WIFI_STA_CONNECTED); xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_STA_DISCONNECTED); + + //if (disconnected->reason == WIFI_REASON_NO_AP_FOUND && ! _wifi_ScanAPs) { + // ESP_LOGI(TAG, "Request scan for another AP"); + // _wifi_ScanAPs = true; + // _wifi_ScanDone = false; + // ap_num = MAX_AP_NUM; + // ESP_ERROR_CHECK(esp_wifi_scan_start(&scan_config, false)); + // xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_REQUEST_STA_CONNECT); // Keep looping active. + // break; + //} + + //if (disconnected->reason == WIFI_REASON_NO_AP_FOUND && _wifi_ScanAPs && _wifi_ScanDone) { + // ESP_LOGD(TAG, "Scan completed, look for another AP, found:%d", _wifi_Scanned); + // _wifi_ScanAPs = false; + // _wifi_ScanDone = false; + // for (int i = 0; i < _wifi_Scanned; i++) { + // ap = accessp_records[i]; + // if ((read_station(ap.ssid) != -1)) { + // if (wifiStation.hide) { + // continue; // Blacklisted. + // } + /* We know this one */ + // wifi_config_t* config = task_wifi_ConfigSTA; + // memset(config, 0x00, sizeof(wifi_config_t)); + // memcpy(config->sta.ssid, wifiStation.SSID, strlen(wifiStation.SSID)); + // memcpy(config->sta.password, wifiStation.Password, strlen(wifiStation.Password)); + // ESP_LOGD(TAG, "new AP %s %s", wifiStation.SSID, wifiStation.Password); + // xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_REQUEST_STA_CONNECT); + // break; + // } + // } + // break; + //} + + /* + * Reconnect previous AP. + */ + //if (FetchStaConfig()) { + // xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_REQUEST_STA_CONNECT); + //} break; } @@ -163,36 +179,42 @@ switch (event_id) { case IP_EVENT_STA_GOT_IP: - xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_HAS_IP); - ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data; - if (xSemaphoreTake(xSemaphoreWiFi, 25) == pdTRUE) { - wifi_state->STA_online = true; - snprintf(wifi_state->STA_ip, 16, "%s", ip4addr_ntoa(&event->ip_info.ip)); - snprintf(wifi_state->STA_nm, 16, "%s", ip4addr_ntoa(&event->ip_info.netmask)); - snprintf(wifi_state->STA_gw, 16, "%s", ip4addr_ntoa(&event->ip_info.gw)); - xSemaphoreGive(xSemaphoreWiFi); - } else { - ESP_LOGE(TAG, "got_ip_event_handler() lock error IP_EVENT_STA_GOT_IP"); - } - break; + xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_HAS_IP); + ip_event_got_ip_t* event = (ip_event_got_ip_t*) event_data; + if (xSemaphoreTake(xSemaphoreWiFi, 25) == pdTRUE) { + wifi_state->STA_online = true; + snprintf(wifi_state->STA_ip, 16, "%s", ip4addr_ntoa(&event->ip_info.ip)); + snprintf(wifi_state->STA_nm, 16, "%s", ip4addr_ntoa(&event->ip_info.netmask)); + snprintf(wifi_state->STA_gw, 16, "%s", ip4addr_ntoa(&event->ip_info.gw)); + xSemaphoreGive(xSemaphoreWiFi); + } else { + ESP_LOGE(TAG, "got_ip_event_handler() lock error IP_EVENT_STA_GOT_IP"); + } + connect_mqtt(true); + break; case IP_EVENT_STA_LOST_IP: - ESP_LOGW(TAG, "Lost IP address"); - xEventGroupClearBits(xEventGroupWifi, TASK_WIFI_HAS_IP); - if (xSemaphoreTake(xSemaphoreWiFi, 25) == pdTRUE) { - wifi_state->STA_ip[0] = '\0'; - wifi_state->STA_nm[0] = '\0'; - wifi_state->STA_gw[0] = '\0'; - wifi_state->STA_online = false; - xSemaphoreGive(xSemaphoreWiFi); - } else { - ESP_LOGE(TAG, "got_ip_event_handler() lock error IP_EVENT_STA_LOST_IP"); - } - break; + ESP_LOGW(TAG, "Lost IP address"); + xEventGroupClearBits(xEventGroupWifi, TASK_WIFI_HAS_IP); + if (xSemaphoreTake(xSemaphoreWiFi, 25) == pdTRUE) { + wifi_state->STA_ip[0] = '\0'; + wifi_state->STA_nm[0] = '\0'; + wifi_state->STA_gw[0] = '\0'; + wifi_state->STA_online = false; + xSemaphoreGive(xSemaphoreWiFi); + } else { + ESP_LOGE(TAG, "got_ip_event_handler() lock error IP_EVENT_STA_LOST_IP"); + } + connect_mqtt(false); + break; + + case IP_EVENT_AP_STAIPASSIGNED: + ESP_LOGI(TAG, "IP_EVENT_AP_STAIPASSIGNED"); + break; default: - ESP_LOGW(TAG, "Unknown IP event %d", event_id); - break; + ESP_LOGW(TAG, "Unknown IP event %d", event_id); + break; } } @@ -230,12 +252,13 @@ ESP_ERROR_CHECK(esp_wifi_init(&wifi_init_config)); ESP_ERROR_CHECK( esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &wifi_event_handler, NULL) ); - ESP_ERROR_CHECK( esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, &got_ip_event_handler, NULL) ); + ESP_ERROR_CHECK( esp_event_handler_register(IP_EVENT, ESP_EVENT_ANY_ID, &got_ip_event_handler, NULL) ); ESP_ERROR_CHECK(esp_wifi_set_storage(WIFI_STORAGE_RAM)); ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); ESP_ERROR_CHECK(esp_wifi_start()); + xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_REQUEST_STA_CONNECT); xEventGroupSetBits(xEventGroupWifi, TASK_WIFI_STA_DISCONNECTED); EventBits_t uxBits; @@ -243,13 +266,14 @@ /* actions that can trigger: request a connection, a scan, or a disconnection */ uxBits = xEventGroupWaitBits(xEventGroupWifi, - TASK_WIFI_REQUEST_STA_CONNECT | TASK_WIFI_REQUEST_WIFI_SCAN | TASK_WIFI_REQUEST_STA_DISCONNECT, + TASK_WIFI_REQUEST_STA_CONNECT | TASK_WIFI_REQUEST_WIFI_SCAN | TASK_WIFI_REQUEST_STA_DISCONNECT | TASK_WIFI_REQUEST_STA_STATUS, pdFALSE, pdFALSE, portMAX_DELAY ); if (uxBits & TASK_WIFI_REQUEST_STA_DISCONNECT) { /* * user requested a disconnect, this will in effect disconnect the wifi */ + connect_mqtt(false); ESP_LOGD(TAG, "Request STA disconnect"); ESP_ERROR_CHECK(esp_wifi_disconnect()); xEventGroupWaitBits(xEventGroupWifi, TASK_WIFI_STA_DISCONNECTED, pdFALSE, pdTRUE, portMAX_DELAY ); @@ -305,6 +329,21 @@ ESP_LOGI(TAG, "No known AP found, scan again"); vTaskDelay(3000 / portTICK_PERIOD_MS); } + } else if (uxBits & TASK_WIFI_REQUEST_STA_STATUS) { + /* + * Request WiFi update status, refresh the rssi. + */ + xEventGroupClearBits(xEventGroupWifi, TASK_WIFI_REQUEST_STA_STATUS); + wifi_ap_record_t ap_info; + esp_wifi_sta_get_ap_info(&ap_info); + ESP_LOGI(TAG, "Event STA status, ssid:%s, bssid:" MACSTR ", rssi: %d", ap_info.ssid, MAC2STR(ap_info.bssid), ap_info.rssi); + if (xSemaphoreTake(xSemaphoreWiFi, 35) == pdTRUE) { + wifi_state->STA_rssi = ap_info.rssi; + xSemaphoreGive(xSemaphoreWiFi); + } else { + ESP_LOGE(TAG, "lock error TASK_WIFI_REQUEST_STA_STATUS"); + } + user_refresh(); } } /* for(;;) */ diff -r 2cf4b15895f2 -r 1ab1f4a8c328 main/task_wifi.h --- a/main/task_wifi.h Sat Jan 25 12:02:22 2020 +0100 +++ b/main/task_wifi.h Sat Mar 14 13:07:02 2020 +0100 @@ -29,23 +29,15 @@ /** - * @brief System request for WiFi connection. - * @param state Boolean state request. - */ -void requestWiFi_system(bool state); - -/** - * @brief User request for WiFi connection. - * @param state Boolean state request. - */ -void requestWiFi_user(bool state); - -/** * @brief Test if Wifi is ready and connected * @return Return true is connected and we have an IP address. */ bool ready_WiFi(void); + +void status_WiFi(void); + + /** * @brief Main task for the wifi_manager * @param pvParameters Parameters for the task. diff -r 2cf4b15895f2 -r 1ab1f4a8c328 main/updates.c --- a/main/updates.c Sat Jan 25 12:02:22 2020 +0100 +++ b/main/updates.c Sat Mar 14 13:07:02 2020 +0100 @@ -51,7 +51,6 @@ } screen_updating("Stop meten", "Start WiFi"); - requestWiFi_user(true); timeout = 600; for (;;) { vTaskDelay(100 / portTICK_PERIOD_MS); @@ -219,7 +218,6 @@ updateok: update_running = 0; - requestWiFi_user(false); vTaskDelay(3000 / portTICK_PERIOD_MS); } diff -r 2cf4b15895f2 -r 1ab1f4a8c328 sdkconfig --- a/sdkconfig Sat Jan 25 12:02:22 2020 +0100 +++ b/sdkconfig Sat Mar 14 13:07:02 2020 +0100 @@ -29,9 +29,7 @@ CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y # CONFIG_BOOTLOADER_FACTORY_RESET is not set # CONFIG_BOOTLOADER_APP_TEST is not set -CONFIG_BOOTLOADER_WDT_ENABLE=y -# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set -CONFIG_BOOTLOADER_WDT_TIME_MS=9000 +# CONFIG_BOOTLOADER_WDT_ENABLE is not set # CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set # CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 @@ -319,7 +317,7 @@ CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF CONFIG_FREERTOS_CORETIMER_0=y # CONFIG_FREERTOS_CORETIMER_1 is not set -CONFIG_FREERTOS_HZ=200 +CONFIG_FREERTOS_HZ=500 CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y # CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set # CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set @@ -345,13 +343,14 @@ CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set -CONFIG_HEAP_POISONING_DISABLED=y -# CONFIG_HEAP_POISONING_LIGHT is not set +# CONFIG_HEAP_POISONING_DISABLED is not set +CONFIG_HEAP_POISONING_LIGHT=y # CONFIG_HEAP_POISONING_COMPREHENSIVE is not set CONFIG_HEAP_TRACING_OFF=y # CONFIG_HEAP_TRACING_STANDALONE is not set # CONFIG_HEAP_TRACING_TOHOST is not set # CONFIG_HEAP_TRACING is not set +CONFIG_HEAP_TASK_TRACKING=y CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y # CONFIG_LOG_DEFAULT_LEVEL_NONE is not set # CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set @@ -546,7 +545,7 @@ # CONFIG_UNITY_ENABLE_FIXTURE is not set # CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y -CONFIG_VFS_SUPPORT_TERMIOS=y +# CONFIG_VFS_SUPPORT_TERMIOS is not set CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 CONFIG_SEMIHOSTFS_HOST_PATH_MAX_LEN=128 # CONFIG_WL_SECTOR_SIZE_512 is not set @@ -701,5 +700,5 @@ # CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set CONFIG_IP_LOST_TIMER_INTERVAL=120 CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y -CONFIG_SUPPORT_TERMIOS=y +# CONFIG_SUPPORT_TERMIOS is not set # End of deprecated options