From c32a9be28bcae61d27078b88124ecfaa2eddb183 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Sat, 30 May 2020 15:22:52 +0300 Subject: [PATCH] what if functions are in the core? --- CMakeLists.txt | 1 + cores/esp32/esp32-hal-tinyusb.c | 286 ++++++++++++++++++ tools/sdk/esp32s2/ld/esp32s2.project.ld | 4 +- tools/sdk/esp32s2/lib/libapp_trace.a | Bin 121000 -> 121000 bytes tools/sdk/esp32s2/lib/libapp_update.a | Bin 126536 -> 126536 bytes tools/sdk/esp32s2/lib/libasio.a | Bin 2694896 -> 2694896 bytes tools/sdk/esp32s2/lib/libbootloader_support.a | Bin 620638 -> 620638 bytes tools/sdk/esp32s2/lib/libcbor.a | Bin 514338 -> 514338 bytes tools/sdk/esp32s2/lib/libcoap.a | Bin 1671046 -> 1671046 bytes tools/sdk/esp32s2/lib/libconsole.a | Bin 553882 -> 553882 bytes tools/sdk/esp32s2/lib/libcxx.a | Bin 62490 -> 62490 bytes tools/sdk/esp32s2/lib/libdriver.a | Bin 4091000 -> 4091000 bytes tools/sdk/esp32s2/lib/libefuse.a | Bin 248986 -> 248986 bytes tools/sdk/esp32s2/lib/libesp-tls.a | Bin 244738 -> 244738 bytes tools/sdk/esp32s2/lib/libesp32s2.a | Bin 1183796 -> 1183796 bytes tools/sdk/esp32s2/lib/libesp_common.a | Bin 452722 -> 452722 bytes tools/sdk/esp32s2/lib/libesp_eth.a | Bin 664442 -> 664442 bytes tools/sdk/esp32s2/lib/libesp_event.a | Bin 498404 -> 498404 bytes tools/sdk/esp32s2/lib/libesp_gdbstub.a | Bin 124820 -> 124820 bytes tools/sdk/esp32s2/lib/libesp_hid.a | Bin 264318 -> 264318 bytes tools/sdk/esp32s2/lib/libesp_http_client.a | Bin 346300 -> 346300 bytes tools/sdk/esp32s2/lib/libesp_http_server.a | Bin 461890 -> 461890 bytes tools/sdk/esp32s2/lib/libesp_https_ota.a | Bin 73224 -> 73224 bytes tools/sdk/esp32s2/lib/libesp_https_server.a | Bin 74096 -> 74096 bytes tools/sdk/esp32s2/lib/libesp_local_ctrl.a | Bin 316080 -> 316080 bytes tools/sdk/esp32s2/lib/libesp_netif.a | Bin 872456 -> 872456 bytes tools/sdk/esp32s2/lib/libesp_ringbuf.a | Bin 170730 -> 170730 bytes .../esp32s2/lib/libesp_serial_slave_link.a | Bin 224770 -> 224770 bytes tools/sdk/esp32s2/lib/libesp_system.a | Bin 306818 -> 306818 bytes tools/sdk/esp32s2/lib/libesp_timer.a | Bin 138150 -> 138150 bytes .../sdk/esp32s2/lib/libesp_websocket_client.a | Bin 174822 -> 174822 bytes tools/sdk/esp32s2/lib/libesp_wifi.a | Bin 890178 -> 890178 bytes tools/sdk/esp32s2/lib/libespcoredump.a | Bin 163824 -> 163824 bytes tools/sdk/esp32s2/lib/libexpat.a | Bin 1477050 -> 1477050 bytes tools/sdk/esp32s2/lib/libfatfs.a | Bin 848492 -> 848492 bytes tools/sdk/esp32s2/lib/libfb_gfx.a | Bin 31284 -> 31284 bytes tools/sdk/esp32s2/lib/libfreemodbus.a | Bin 1373688 -> 1373688 bytes tools/sdk/esp32s2/lib/libfreertos.a | Bin 708118 -> 708118 bytes tools/sdk/esp32s2/lib/libheap.a | Bin 327978 -> 327978 bytes tools/sdk/esp32s2/lib/libjsmn.a | Bin 26930 -> 26930 bytes tools/sdk/esp32s2/lib/libjson.a | Bin 374690 -> 374690 bytes tools/sdk/esp32s2/lib/liblibsodium.a | Bin 4024304 -> 4024304 bytes tools/sdk/esp32s2/lib/liblog.a | Bin 93052 -> 93052 bytes tools/sdk/esp32s2/lib/liblwip.a | Bin 6099790 -> 6099790 bytes tools/sdk/esp32s2/lib/libmbedcrypto.a | Bin 3198174 -> 3198174 bytes tools/sdk/esp32s2/lib/libmbedtls.a | Bin 1211504 -> 1211504 bytes tools/sdk/esp32s2/lib/libmbedx509.a | Bin 652188 -> 652188 bytes tools/sdk/esp32s2/lib/libmdns.a | Bin 1055602 -> 1055602 bytes tools/sdk/esp32s2/lib/libmqtt.a | Bin 485944 -> 485944 bytes tools/sdk/esp32s2/lib/libnewlib.a | Bin 255916 -> 255916 bytes tools/sdk/esp32s2/lib/libnghttp.a | Bin 1926106 -> 1926106 bytes tools/sdk/esp32s2/lib/libnvs_flash.a | Bin 1415266 -> 1415266 bytes tools/sdk/esp32s2/lib/libopenssl.a | Bin 381044 -> 381044 bytes tools/sdk/esp32s2/lib/libperfmon.a | Bin 76048 -> 76048 bytes tools/sdk/esp32s2/lib/libprotobuf-c.a | Bin 444364 -> 444364 bytes tools/sdk/esp32s2/lib/libprotocomm.a | Bin 437852 -> 437852 bytes tools/sdk/esp32s2/lib/libpthread.a | Bin 184068 -> 184068 bytes tools/sdk/esp32s2/lib/libsdmmc.a | Bin 418222 -> 418222 bytes tools/sdk/esp32s2/lib/libsoc.a | Bin 2261934 -> 2261934 bytes tools/sdk/esp32s2/lib/libsoc_esp32s2.a | Bin 480430 -> 480430 bytes tools/sdk/esp32s2/lib/libspi_flash.a | Bin 871014 -> 871014 bytes tools/sdk/esp32s2/lib/libspiffs.a | Bin 766734 -> 766734 bytes tools/sdk/esp32s2/lib/libtcp_transport.a | Bin 322210 -> 322210 bytes tools/sdk/esp32s2/lib/libtcpip_adapter.a | Bin 191804 -> 191804 bytes tools/sdk/esp32s2/lib/libulp.a | Bin 50318 -> 50318 bytes tools/sdk/esp32s2/lib/libunity.a | Bin 232034 -> 232034 bytes tools/sdk/esp32s2/lib/libvfs.a | Bin 405678 -> 405678 bytes tools/sdk/esp32s2/lib/libwear_levelling.a | Bin 332428 -> 332428 bytes tools/sdk/esp32s2/lib/libwifi_provisioning.a | Bin 966752 -> 966752 bytes tools/sdk/esp32s2/lib/libwpa_supplicant.a | Bin 6764854 -> 6764854 bytes tools/sdk/esp32s2/lib/libxtensa.a | Bin 155350 -> 155350 bytes 71 files changed, 289 insertions(+), 2 deletions(-) create mode 100644 cores/esp32/esp32-hal-tinyusb.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 69953843..3451e969 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,7 @@ set(CORE_SRCS cores/esp32/esp32-hal-spi.c cores/esp32/esp32-hal-time.c cores/esp32/esp32-hal-timer.c + cores/esp32/esp32-hal-tinyusb.c cores/esp32/esp32-hal-touch.c cores/esp32/esp32-hal-uart.c cores/esp32/esp32-hal-rmt.c diff --git a/cores/esp32/esp32-hal-tinyusb.c b/cores/esp32/esp32-hal-tinyusb.c new file mode 100644 index 00000000..8db442f8 --- /dev/null +++ b/cores/esp32/esp32-hal-tinyusb.c @@ -0,0 +1,286 @@ + +#include "sdkconfig.h" +#if CONFIG_USB_ENABLED + + +#include +#include "esp_log.h" +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "driver/gpio.h" +#include "tinyusb.h" + +static const char *TAG = "example"; + +#if CONFIG_USB_MSC_ENABLED + +#define README_CONTENTS "This is tinyusb's MassStorage Class demo.\r\n\r\nIf you find any bugs or get any questions, feel free to file an\r\nissue at github.com/hathach/tinyusb" + +enum +{ + DISK_BLOCK_NUM = 2 * 140, // 8KB is the smallest size that windows allow to mount + DISK_BLOCK_SIZE = 512 +}; + +#ifdef CFG_EXAMPLE_MSC_READONLY +const +#endif +uint8_t msc_disk[DISK_BLOCK_NUM][DISK_BLOCK_SIZE] = +{ + //------------- Block0: Boot Sector -------------// + // byte_per_sector = DISK_BLOCK_SIZE; fat12_sector_num_16 = DISK_BLOCK_NUM; + // sector_per_cluster = 1; reserved_sectors = 1; + // fat_num = 1; fat12_root_entry_num = 16; + // sector_per_fat = 1; sector_per_track = 1; head_num = 1; hidden_sectors = 0; + // drive_number = 0x80; media_type = 0xf8; extended_boot_signature = 0x29; + // filesystem_type = "FAT12 "; volume_serial_number = 0x1234; volume_label = "TinyUSB MSC"; + // FAT magic code at offset 510-511 + { + 0xEB, 0x3C, 0x90, 0x4D, 0x53, 0x44, 0x4F, 0x53, 0x35, 0x2E, 0x30, 0x00, 0x02, 0x01, 0x01, 0x00, + 0x01, 0x10, 0x00, 0x10, 0x00, 0xF8, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x29, 0x34, 0x12, 0x00, 0x00, 'E' , 'S' , 'P' , '3' , '2' , + 'S' , '2' , ' ' , 'M' , 'S' , 'C' , 0x46, 0x41, 0x54, 0x31, 0x32, 0x20, 0x20, 0x20, 0x00, 0x00, + + // Zero up to 2 last bytes of FAT magic code + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xAA + }, + + //------------- Block1: FAT12 Table -------------// + { + 0xF8, 0xFF, 0xFF, 0xFF, 0x0F // // first 2 entries must be F8FF, third entry is cluster end of readme file + }, + + //------------- Block2: Root Directory -------------// + { + // first entry is volume label + 'E' , 'S' , 'P' , '3' , '2' , 'S' , '2' , ' ' , 'M' , 'S' , 'C' , 0x08, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x6D, 0x65, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + // second entry is readme file + 'R' , 'E' , 'A' , 'D' , 'M' , 'E' , ' ' , ' ' , 'T' , 'X' , 'T' , 0x20, 0x00, 0xC6, 0x52, 0x6D, + 0x65, 0x43, 0x65, 0x43, 0x00, 0x00, 0x88, 0x6D, 0x65, 0x43, 0x02, 0x00, + sizeof(README_CONTENTS) - 1, 0x00, 0x00, 0x00 // readme's files size (4 Bytes) + }, + + //------------- Block3: Readme Content -------------// + README_CONTENTS +}; + +// Invoked when received SCSI_CMD_INQUIRY +// Application fill vendor id, product id and revision with string up to 8, 16, 4 characters respectively +void tud_msc_inquiry_cb(uint8_t lun, uint8_t vendor_id[8], uint8_t product_id[16], uint8_t product_rev[4]) +{ + (void) lun; + + const char vid[] = "Espressif"; + const char pid[] = "Mass Storage"; + const char rev[] = "1.0"; + + memcpy(vendor_id , vid, strlen(vid)); + memcpy(product_id , pid, strlen(pid)); + memcpy(product_rev, rev, strlen(rev)); + ESP_LOGI(__func__, ""); +} + +// Invoked when received Test Unit Ready command. +// return true allowing host to read/write this LUN e.g SD card inserted +bool tud_msc_test_unit_ready_cb(uint8_t lun) +{ + (void) lun; + ESP_LOGI(__func__, ""); + + return true; // RAM disk is always ready +} + +// Invoked when received SCSI_CMD_READ_CAPACITY_10 and SCSI_CMD_READ_FORMAT_CAPACITY to determine the disk size +// Application update block count and block size +void tud_msc_capacity_cb(uint8_t lun, uint32_t* block_count, uint16_t* block_size) +{ + (void) lun; + ESP_LOGI(__func__, ""); + + *block_count = DISK_BLOCK_NUM; + *block_size = DISK_BLOCK_SIZE; +} + +// Invoked when received Start Stop Unit command +// - Start = 0 : stopped power mode, if load_eject = 1 : unload disk storage +// - Start = 1 : active mode, if load_eject = 1 : load disk storage +bool tud_msc_start_stop_cb(uint8_t lun, uint8_t power_condition, bool start, bool load_eject) +{ + (void) lun; + (void) power_condition; + ESP_LOGI(__func__, ""); + + if ( load_eject ) + { + if (start) + { + // load disk storage + } else + { + // unload disk storage + } + } + + return true; +} + +// Callback invoked when received READ10 command. +// Copy disk's data to buffer (up to bufsize) and return number of copied bytes. +int32_t tud_msc_read10_cb(uint8_t lun, uint32_t lba, uint32_t offset, void* buffer, uint32_t bufsize) +{ + (void) lun; + ESP_LOGI(__func__, ""); + + uint8_t const* addr = msc_disk[lba] + offset; + memcpy(buffer, addr, bufsize); + + return bufsize; +} + +// Callback invoked when received WRITE10 command. +// Process data in buffer to disk's storage and return number of written bytes +int32_t tud_msc_write10_cb(uint8_t lun, uint32_t lba, uint32_t offset, uint8_t* buffer, uint32_t bufsize) +{ + (void) lun; + ESP_LOGI(__func__, ""); + +#ifndef CFG_EXAMPLE_MSC_READONLY + uint8_t* addr = msc_disk[lba] + offset; + memcpy(addr, buffer, bufsize); +#else + (void) lba; (void) offset; (void) buffer; +#endif + + return bufsize; +} + +// Callback invoked when received an SCSI command not in built-in list below +// - READ_CAPACITY10, READ_FORMAT_CAPACITY, INQUIRY, MODE_SENSE6, REQUEST_SENSE +// - READ10 and WRITE10 has their own callbacks +int32_t tud_msc_scsi_cb (uint8_t lun, uint8_t const scsi_cmd[16], void* buffer, uint16_t bufsize) +{ + // read10 & write10 has their own callback and MUST not be handled here + ESP_LOGI(__func__, ""); + + void const* response = NULL; + uint16_t resplen = 0; + + // most scsi handled is input + bool in_xfer = true; + + switch (scsi_cmd[0]) + { + case SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL: + // Host is about to read/write etc ... better not to disconnect disk + resplen = 0; + break; + + default: + // Set Sense = Invalid Command Operation + tud_msc_set_sense(lun, SCSI_SENSE_ILLEGAL_REQUEST, 0x20, 0x00); + + // negative means error -> tinyusb could stall and/or response with failed status + resplen = -1; + break; + } + + // return resplen must not larger than bufsize + if ( resplen > bufsize ) resplen = bufsize; + + if ( response && (resplen > 0) ) + { + if (in_xfer) + { + memcpy(buffer, response, resplen); + } else + { + // SCSI output + } + } + + return resplen; +} + +#endif /* CONFIG_USB_MSC_ENABLED */ + +#if CONFIG_USB_CDC_ENABLED +void tud_cdc_line_state_cb(uint8_t itf, bool dtr, bool rts) { + if (dtr && rts) { + tud_cdc_write_str("Welcome to tinyUSB CDC example!!!\r\n"); + } +} +#endif /* CONFIG_USB_CDC_ENABLED */ + +// USB Device Driver task +// This top level thread processes all usb events and invokes callbacks +void usb_device_task(void *param) { + (void)param; + ESP_LOGI(TAG, "USB task started"); + while (1) { + tud_task(); // RTOS forever loop + } +} + +void cloop() { +#if CONFIG_USB_CDC_ENABLED + if (tud_cdc_connected()) { + // connected and there are data available + if ( tud_cdc_available() ) { + uint8_t buf[64]; + // read and echo back + uint32_t count = tud_cdc_read(buf, sizeof(buf)); + for (uint32_t i = 0; i < count; i++) { + tud_cdc_write_char(buf[i]); + if ( buf[i] == '\r' ) { + tud_cdc_write_str("\n > "); + } + } + tud_cdc_write_flush(); + } + } +#endif /* CONFIG_USB_CDC_ENABLED */ +} + +void csetup() { + tinyusb_config_t tusb_cfg = { + .descriptor = NULL, + .string_descriptor = NULL, + .external_phy = false + }; + + ESP_ERROR_CHECK(tinyusb_driver_install(&tusb_cfg)); + xTaskCreate(usb_device_task, "usbd", 4096, NULL, 24, NULL); +} + +#endif /* CONFIG_USB_ENABLED */ \ No newline at end of file diff --git a/tools/sdk/esp32s2/ld/esp32s2.project.ld b/tools/sdk/esp32s2/ld/esp32s2.project.ld index 75c16729..ddd648e7 100644 --- a/tools/sdk/esp32s2/ld/esp32s2.project.ld +++ b/tools/sdk/esp32s2/ld/esp32s2.project.ld @@ -381,7 +381,7 @@ SECTIONS *(.rodata_desc .rodata_desc.*) /* Should be the first. App version info. DO NOT PUT ANYTHING BEFORE IT! */ *(.rodata_custom_desc .rodata_custom_desc.*) /* Should be the second. Custom app version info. DO NOT PUT ANYTHING BEFORE IT! */ - *(EXCLUDE_FILE(*libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:uart_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:ledc_hal_iram.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libphy.a) .rodata EXCLUDE_FILE(*libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *liblog.a:log_freertos.* *liblog.a:log.* *libesp_event.a:esp_event.* *libesp_event.a:default_event_loop.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:system_api.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:uart_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:ledc_hal_iram.* *libdriver.a:gpio.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libfreertos.a:queue.* *libphy.a) .rodata.*) + *(EXCLUDE_FILE(*libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:soc_hal.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:uart_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:ledc_hal_iram.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libphy.a) .rodata EXCLUDE_FILE(*libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *liblog.a:log_freertos.* *liblog.a:log.* *libesp_event.a:esp_event.* *libesp_event.a:default_event_loop.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:system_api.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:soc_hal.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:uart_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:ledc_hal_iram.* *libdriver.a:gpio.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libfreertos.a:queue.* *libphy.a) .rodata.*) *libdriver.a:gpio.*(.rodata.gpio_input_enable.str1.4 .rodata.gpio_output_enable.str1.4 .rodata.gpio_set_intr_type.str1.4 .rodata.gpio_set_pull_mode.str1.4 .rodata.gpio_set_direction.str1.4 .rodata.gpio_config.str1.4 .rodata.gpio_reset_pin.str1.4 .rodata.gpio_isr_handler_add.str1.4 .rodata.gpio_isr_register.str1.4 .rodata.gpio_install_isr_service.str1.4 .rodata.gpio_wakeup_enable.str1.4 .rodata.gpio_set_drive_capability.str1.4 .rodata.gpio_get_drive_capability.str1.4 .rodata.gpio_hold_en.str1.4 .rodata.__FUNCTION__$7299 .rodata.__FUNCTION__$7294 .rodata.__FUNCTION__$7289 .rodata.__FUNCTION__$7283 .rodata.__FUNCTION__$7277 .rodata.__FUNCTION__$7272 .rodata.__FUNCTION__$7265 .rodata.__FUNCTION__$7250 .rodata.__FUNCTION__$7246 .rodata.__FUNCTION__$7239 .rodata.__func__$7220 .rodata.__FUNCTION__$7173 .rodata.__FUNCTION__$7177 .rodata.__FUNCTION__$7165 .rodata.__FUNCTION__$7169 .rodata.__FUNCTION__$7157 .rodata.__FUNCTION__$7161 .rodata.__FUNCTION__$7202 .rodata.__FUNCTION__$7190 .rodata.__FUNCTION__$7182 .rodata.__FUNCTION__$7153 .rodata.__FUNCTION__$7145 .rodata.__FUNCTION__$7149 .rodata.__FUNCTION__$7140 .rodata.__FUNCTION__$7135 .rodata.__FUNCTION__$7131 .rodata.__FUNCTION__$7127 .rodata.__FUNCTION__$7123) *libesp_event.a:default_event_loop.*(.rodata.esp_event_loop_create_default.str1.4 .rodata.esp_event_send_to_default_loop) *libesp_event.a:esp_event.*(.rodata.base_node_add_handler.str1.4 .rodata.loop_node_add_handler.str1.4 .rodata.esp_event_loop_create.str1.4 .rodata.esp_event_loop_run.str1.4 .rodata.esp_event_loop_run_task.str1.4 .rodata.esp_event_handler_register_with_internal.str1.4 .rodata.esp_event_handler_unregister_with_internal.str1.4 .rodata.__func__$9783 .rodata.__func__$9770 .rodata.__func__$9737 .rodata.__func__$9705 .rodata.__func__$9680 .rodata.__func__$9639 .rodata.__func__$9630) @@ -450,7 +450,7 @@ SECTIONS _stext = .; _text_start = ABSOLUTE(.); - *(EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libgcc.a:lib2funcs.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:soc_hal.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .literal EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *liblog.a:log.* *liblog.a:log_freertos.* *libgcc.a:lib2funcs.* *libesp_event.a:default_event_loop.* *libesp_event.a:esp_event.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:system_api.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:soc_hal.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libdriver.a:gpio.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .literal.* EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libgcc.a:lib2funcs.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:soc_hal.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .text EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *liblog.a:log.* *liblog.a:log_freertos.* *libgcc.a:lib2funcs.* *libesp_event.a:default_event_loop.* *libesp_event.a:esp_event.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:system_api.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:soc_hal.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libdriver.a:gpio.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .text.* EXCLUDE_FILE(*libpp.a *libnet80211.a *libsoc.a:uart_hal_iram.*) .wifi0iram EXCLUDE_FILE(*libpp.a *libnet80211.a *libsoc.a:uart_hal_iram.* *libfreertos.a:queue.*) .wifi0iram.* EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .wifirxiram EXCLUDE_FILE(*libsoc.a:uart_hal_iram.* *libfreertos.a:queue.*) .wifirxiram.*) + *(EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libgcc.a:lib2funcs.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:soc_hal.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .literal EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *liblog.a:log.* *liblog.a:log_freertos.* *libgcc.a:lib2funcs.* *libesp_event.a:default_event_loop.* *libesp_event.a:esp_event.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:system_api.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:soc_hal.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libdriver.a:gpio.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .literal.* EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libgcc.a:lib2funcs.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:soc_hal.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .text EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *liblog.a:log.* *liblog.a:log_freertos.* *libgcc.a:lib2funcs.* *libesp_event.a:default_event_loop.* *libesp_event.a:esp_event.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:system_api.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:soc_hal.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libdriver.a:gpio.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .text.* EXCLUDE_FILE(*libpp.a *libnet80211.a *libsoc.a:uart_hal_iram.*) .wifi0iram EXCLUDE_FILE(*libpp.a *libnet80211.a *libsoc.a:uart_hal_iram.* *libfreertos.a:queue.*) .wifi0iram.* EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .wifirxiram EXCLUDE_FILE(*libsoc.a:uart_hal_iram.* *libfreertos.a:queue.*) .wifirxiram.*) *libdriver.a:gpio.*(.literal.gpio_input_enable .literal.gpio_input_disable .literal.gpio_output_disable .literal.gpio_od_enable .literal.gpio_od_disable .literal.gpio_intr_enable_on_core .literal.gpio_output_enable .literal.gpio_isr_register_on_core_static .literal.gpio_pullup_en .literal.gpio_pullup_dis .literal.gpio_pulldown_en .literal.gpio_pulldown_dis .literal.gpio_set_intr_type .literal.gpio_intr_enable .literal.gpio_intr_disable .literal.gpio_set_level .literal.gpio_get_level .literal.gpio_set_pull_mode .literal.gpio_set_direction .literal.gpio_config .literal.gpio_reset_pin .literal.gpio_isr_handler_add .literal.gpio_isr_handler_remove .literal.gpio_uninstall_isr_service .literal.gpio_isr_register .literal.gpio_install_isr_service .literal.gpio_wakeup_enable .literal.gpio_wakeup_disable .literal.gpio_set_drive_capability .literal.gpio_get_drive_capability .literal.gpio_hold_en .literal.gpio_hold_dis .literal.gpio_deep_sleep_hold_en .literal.gpio_deep_sleep_hold_dis .literal.gpio_force_hold_all .literal.gpio_force_unhold_all .text.gpio_input_enable .text.gpio_input_disable .text.gpio_output_disable .text.gpio_od_enable .text.gpio_od_disable .text.gpio_intr_enable_on_core .text.gpio_output_enable .text.gpio_isr_register_on_core_static .text.gpio_pullup_en .text.gpio_pullup_dis .text.gpio_pulldown_en .text.gpio_pulldown_dis .text.gpio_set_intr_type .text.gpio_intr_enable .text.gpio_intr_disable .text.gpio_set_level .text.gpio_get_level .text.gpio_set_pull_mode .text.gpio_set_direction .text.gpio_config .text.gpio_reset_pin .text.gpio_isr_handler_add .text.gpio_isr_handler_remove .text.gpio_uninstall_isr_service .text.gpio_isr_register .text.gpio_install_isr_service .text.gpio_wakeup_enable .text.gpio_wakeup_disable .text.gpio_set_drive_capability .text.gpio_get_drive_capability .text.gpio_hold_en .text.gpio_hold_dis .text.gpio_deep_sleep_hold_en .text.gpio_deep_sleep_hold_dis .text.gpio_force_hold_all .text.gpio_force_unhold_all) *libesp_event.a:default_event_loop.*(.literal.esp_event_handler_register .literal.esp_event_handler_instance_register .literal.esp_event_handler_unregister .literal.esp_event_handler_instance_unregister .literal.esp_event_post .literal.esp_event_loop_create_default .literal.esp_event_loop_delete_default .literal.esp_event_send_to_default_loop .text.esp_event_handler_register .text.esp_event_handler_instance_register .text.esp_event_handler_unregister .text.esp_event_handler_instance_unregister .text.esp_event_post .text.esp_event_loop_create_default .text.esp_event_loop_delete_default .text.esp_event_send_to_default_loop) *libesp_event.a:esp_event.*(.literal.handler_instances_remove_all .literal.base_node_remove_all_handler .literal.loop_node_remove_all_handler .literal.handler_instances_add .literal.base_node_add_handler .literal.loop_node_add_handler .literal.handler_instances_remove .literal.base_node_remove_handler .literal.loop_node_remove_handler .literal.esp_event_loop_create .literal.esp_event_loop_run .literal.esp_event_loop_run_task .literal.esp_event_loop_delete .literal.esp_event_handler_register_with_internal .literal.esp_event_handler_register_with .literal.esp_event_handler_instance_register_with .literal.esp_event_handler_unregister_with_internal .literal.esp_event_handler_unregister_with .literal.esp_event_handler_instance_unregister_with .literal.esp_event_post_to .text.handler_execute .text.handler_instances_remove_all .text.base_node_remove_all_handler .text.loop_node_remove_all_handler .text.handler_instances_add .text.base_node_add_handler .text.loop_node_add_handler .text.handler_instances_remove .text.base_node_remove_handler .text.loop_node_remove_handler .text.esp_event_loop_create .text.esp_event_loop_run .text.esp_event_loop_run_task .text.esp_event_loop_delete .text.esp_event_handler_register_with_internal .text.esp_event_handler_register_with .text.esp_event_handler_instance_register_with .text.esp_event_handler_unregister_with_internal .text.esp_event_handler_unregister_with .text.esp_event_handler_instance_unregister_with .text.esp_event_post_to .text.esp_event_dump) diff --git a/tools/sdk/esp32s2/lib/libapp_trace.a b/tools/sdk/esp32s2/lib/libapp_trace.a index 9ee3e1945bfcbff20f78284acd5fe043c222dfb2..7c9892938218c8c7abe2810561bb4970d1b19ad0 100644 GIT binary patch delta 65 zcmZ3nk$uHR_6c$kb diff --git a/tools/sdk/esp32s2/lib/libapp_update.a b/tools/sdk/esp32s2/lib/libapp_update.a index 6b12e47398af7f020ff3795e172f3811d290a0c1..b5354bd52c61dd07586b4670add143599a70dc62 100644 GIT binary patch delta 54 zcmX?chyBDI_6c$N1Yg6-R83$<^X zE!@6swn+Q7*`n>+W{b6Nn=RhHZMH=Fw%L;H+h$9(Z<{UMzHPQl`?lG#?b~L{wQrj( t-@a|OLi@JaitXEGE46Q%t=ztCwo3c9*{bc^W~;Sto2|Zm+iVT1W&jLsSfBs^ delta 189 zcmeyccL^g1Pmp6VFgCT=s5D_Vn9;m#cKf#3jP2WIGqrD<&D_3iHcR`q*{to`X0x?# zo6X+7Z8k^yw%MHR+h%jMZ=22CzHK&7`?lGN1Yg6-R83$<^X zE!@6swn+Q7*`n>+W{b6Nn=RhHZMH=Fw%L;H+h$9(Z<{UMzHPQl`?lG#?b~L{wQrj( t-@a|OLi@JaitXEGE46Q%t=ztCwo3c9*{bc^W~;Sto2|Zm+iVT1W&jn(Sgrs7 diff --git a/tools/sdk/esp32s2/lib/libbootloader_support.a b/tools/sdk/esp32s2/lib/libbootloader_support.a index 1f1bb8161b038da0c25f90b481e7c783e0732468..01f61c31c8d0124aae7a9f8a23266556cda08105 100644 GIT binary patch delta 223 zcmccjLG|7T)d_MehDHX)8X}b{{vtA2W2&|;Nx{JBJx{GCdbr{2LLfZfU delta 223 zcmccjLG|7T)d_Me2FAvg8f&jc*AJz)<= aNf?+3lHLAJh*L`$%mrJy-Pnv%+X(=`lS04% diff --git a/tools/sdk/esp32s2/lib/libcbor.a b/tools/sdk/esp32s2/lib/libcbor.a index 111bd955428f23b39229ec727052d904c873bafe..912c3de60aa027223557d2a98d9b23493f026514 100644 GIT binary patch delta 185 zcmZ3qNq*5L`3Z6?hDHV^8mS;+>$Z{K&3dHcSLEPk3`v37yqEZYTs evu-H_bHQ5L@8z&mS;+>$Z{K&3dHcSLEPk3`v37yqEZYTs evu-H_bHQ5L@8z&22jZH6WZSjPING(%INP<&xVCGXaX3jxdU@q7uEk6EsEk1$mT6}_h<}hLL?ZK{sl@QyuU)UfhQwx@9 z|DY?h{e!OX17|Q7tp8P^aQmx5k?pSvMU`fPg|`cEi_P!@G0mn6aEnQ_ABhxeKN2b4 Oek4+2`;kb=L#hCAesjtI delta 341 zcmZqspW606b%Gp=fw8IaMx|Y1AcoQA2Vy;W5LQ9!nnhsNb_ET_o_i4H1~#UcLI_i! zg6Tp8h-p0eftXnPuM14=zb-Iu|8;@oToXvxX!-^=CdutjgIT4)Iv~oVjt^UuV~i193qb#M`yaING(%INP<&xVCGXaXJU diff --git a/tools/sdk/esp32s2/lib/libconsole.a b/tools/sdk/esp32s2/lib/libconsole.a index e2934392c714d06d39dc890caa41a9bf54f6e21f..6a88419a98c0fbd6a66cd6b65fa85cc063846d1b 100644 GIT binary patch delta 94 zcmbRBTyfTO#R+mOhDHWv83el|X3ejxa6{6YQWI=M4AY;Ya8!Fh_8!9;38!9-r zH&k#fN<|fZ}o146^HXzA4bn&%2bn&-4bO~&C=n`bAN0N)-6l#y* z6mE~<6xklbDSFBUBnS3}*meg$(Mcace5n0z?8VyO*o(Knv6pCnV=vkM#$Ias8+&QJ zX0V!exx>=!a))KM%N>?op$QU#7}NgXjqLUZZ{#MGA;h-#B+K_HgZP&1a_#c%a_tJ+ z<=PcvVjx0wj}^DqJyx0$0Oo={zg@>fdDSC0U!wh!m`eL6G1cv##MBg=;o{=$x>0KF zx>4%eb)z&^UO*E6sHM66qn4KGIV3U1pIYsXKee|z{?ysY3l?wx$EMr8u>HmXqxKsIjN5Mt{P-tIWts@-w6^>)YEHkFNF@%DW(w%hl~ I*zNKM0FXx9ivR!s delta 621 zcmexy<0m5sPmp6VFgCW>sIm@mxgg}WJNSuC`Uv8if!r_F{>C1J#oOQ5OSHeSmu!DyFSY%Ry|i94NR4T` z++pcxvw;vcm%w|~^qGChYR=J->q-SMaPcE_JOJ9$CkX6^sjbld;2>23eVrf={8Bm|BZ z@pjMe`rAFf8Y(9B16FaGdGU7XY){ B5t{%2 diff --git a/tools/sdk/esp32s2/lib/libesp32s2.a b/tools/sdk/esp32s2/lib/libesp32s2.a index be82ba960ecbd97832a7253214bf6996d91cae35..05e6ad762a5e7050ebd046d3279f0bacdcf6556e 100644 GIT binary patch delta 316 zcmdn8z+=k-j|p-thDHWP8U7DGcz0}xld**3e~Hk)y~ zZ8npuI6_tXoF=C2bDEgd3J^-$?|x!#zx#=0``u5hlIaMw+XbT7RyBe7+xOjJ6LA1( zF$9?|w*8F^`>8+>-w4cazmUhi{X!ncq7;PK_MXceO!q*1sGb!YId5fv_+UNa?Q^BL z+UH7fx6hU0**;f__bwY)ZhM^~@04X=Cdg>C+7CMpIElv{lqGn4i^{OE)d1GstL^BzV8m3hy$1jwru+w z8TM0w2!8v8JofDu@;DZyAjG!!T;^c9hs0m8k@HptoG;!!SBk5Bt`v9sTq&OIbESCi zvVrBc*D3N&Sq5f;tP*e6J;A$O_XOY1Nl0Rj(fr#TqXh&{z{SM2=O_yvl7#ccw|m+O PDw=}%+w+P9kIe-DU~zG_ diff --git a/tools/sdk/esp32s2/lib/libesp_common.a b/tools/sdk/esp32s2/lib/libesp_common.a index 10f104933dc90da2d546f6d9b1e27e9f97979d14..52608c09aad416bcdc9e413c1631c33a2f4e2aaa 100644 GIT binary patch delta 172 zcmex#LHg4L=?QWyhDHWP8@fIt=- X9Wb+fLM_Yk3AL=q3Rit&J@F9$qSP|E diff --git a/tools/sdk/esp32s2/lib/libesp_eth.a b/tools/sdk/esp32s2/lib/libesp_eth.a index 3efef14be9cba11eb9939dc227df7cb4ad70f474..7d5b13bfa986e4672964744caf224cc2daf6cbb6 100644 GIT binary patch delta 122 zcmex$Oyk!vjR|rrhDHX)8o2C8SY}WR3v)Q(vo6TOg2&}w4z>Z^k JfE}mSQvhC#Ct3gi delta 123 zcmex$Oyk!vjR|rr2FAvg8@ytZck4Affh)o^0DMda?@#0synxCddE) delta 110 zcmaE|Rqn}Fxe0PC2FAvg8AONW= BCYS&K diff --git a/tools/sdk/esp32s2/lib/libesp_gdbstub.a b/tools/sdk/esp32s2/lib/libesp_gdbstub.a index 5a92fe5ddee2d11a45f1b6f6cd788a403c49ddaa..7cab58cc988d822473c7266544ec438f657f0a8d 100644 GIT binary patch delta 62 zcmbPoo_)%B_6c$LjxOlRsLEWf6ZEHGH(3fqC24RWm-z F1^|4w6`lY9 delta 62 zcmbPoo_)%B_6c$<2F9jF8V!Z delta 62 zcmex2LEzs6feCUf2F9jF8H=;wst=@#_fJ=OghiNBJFi=n6}rwVcrt~;u>wY Vb7gT^24+t7V-wpx=QWE$EC6py7f%2H diff --git a/tools/sdk/esp32s2/lib/libesp_http_server.a b/tools/sdk/esp32s2/lib/libesp_http_server.a index e9ef6841ea2a6b56a550a1cec737d88caf78adee..11563b90de479a01ace9954217e4e08879fe72c0 100644 GIT binary patch delta 117 zcmX>!L*~#7nF(?%hDHWP8UAi#w;fc6B2KC=49FK%*h%V1s2-AAer^fT?n(mk!_A2gsCurO{oR|soW%l delta 117 zcmX>!L*~#7nF(?%2F6Cl8yY*tS1lV_f3`=Cx1oX52o(n<-%xm^=9an^-&7 wH>T}e-5CMx_`=Fr&GNaeEUZW19>BnS2Q3 delta 31 mcmeC!!_u*bWr7@wfw8H{Mx_`=76W4wgXSj2?M;k~Z889w8VKzG diff --git a/tools/sdk/esp32s2/lib/libesp_https_server.a b/tools/sdk/esp32s2/lib/libesp_https_server.a index 744897d167b5bf535bb405426f913a8dca7e259f..32dff762643b54f758792f32dc3e0face5158ec4 100644 GIT binary patch delta 28 hcmexxh~>i}mI-n!hDL^l6P31r>Bd`IZ!u0&005!33bgi}mI-n!2F9kw6P31r>Bd`IZ!u0&005#)3c&yX diff --git a/tools/sdk/esp32s2/lib/libesp_local_ctrl.a b/tools/sdk/esp32s2/lib/libesp_local_ctrl.a index bf6473ae7370c8d5f8b408f86acefc7ce792f17b..239335b68cf5f31ca0c7dea3f50ee682173e529e 100644 GIT binary patch delta 78 zcmdn6RCvQu;R$jqhDL@)8%*4)?!5VD9#N9E@vDfSK)m7a6zr XU1Unw1?GYkwsZ6_Z|CS?S>Xl%JkT3G delta 78 zcmdn6RCvQu;R$jq2F9i)8%*4)?!5Ag;modmM~wPJo&1eHR(G Y_g!R4*ahZ-6}EHqFmLDRVOik@06x|mLI3~& diff --git a/tools/sdk/esp32s2/lib/libesp_netif.a b/tools/sdk/esp32s2/lib/libesp_netif.a index 390446ee6200ade08ca60edcfc45e1d4e736ed53..7fba0ddb65de141d65cf07dafc0c5fd8d5be4746 100644 GIT binary patch delta 168 zcmeBJVA`?3bb=g6_CEAZpW7>Xn8nYoQNSQfUXS={0=5~QOEbRhwSlb2Wux%HZ!!B0_($a1y w#IfB_h_m(?n78o<=k|?1xbAX;c@tTlR>4ria;>|m_w(sC#bTa~rOl0AfXqU8Q+%9R$ zG%*q^wDAY0MElWcOxur6V>V=EF)%hVpT2GylUTdJ9Oia`IV|l0b6DF2=CExSn8Pkt z2GY`QD8#YdP>8ek8JM^62j}*UKe+C4gLxBKxVKMa;fb^c@uq_fXLaD&&g#I+EC2v* C)G}=V diff --git a/tools/sdk/esp32s2/lib/libesp_ringbuf.a b/tools/sdk/esp32s2/lib/libesp_ringbuf.a index 23d61128ff2b1bee6f501a6bc3311087d21cd576..e12c7b3a02115c46a216e53feae36fc6391018f9 100644 GIT binary patch delta 35 rcmaF0mFv}3t_gB1hDHX)8h26k delta 35 pcmaF0mFv}3t_gB12FAt~8z^6yd6UT delta 97 zcmZp=E7WvXXo4Jzfw8gWMx`ib76W4=)8+=|?G4O~e@f0006}J9XtR4 diff --git a/tools/sdk/esp32s2/lib/libesp_timer.a b/tools/sdk/esp32s2/lib/libesp_timer.a index a3e6669610d0e0378b3d53a54584e23bce004cf6..d111ef43dcfdd688b4df40445f401da4fdda576b 100644 GIT binary patch delta 56 zcmZ3sonzT{jtO!shDHWP8u)QIGag!=UXr2j^ a_;%ki#<{j&{`Pm98P_yGnDb1Sg1iBtHXh#q delta 89 zcmezHpYy|i&IxiX2FAt~8gxh!h6WPA&pXjMZkY2Ev65AIvi1o05 L`P&Uz#kyDk-Pb|; delta 175 zcmdlrIcnGBs0nf`2F9jF8oPmwyzRd1j5k{mT*qF< zmD506i}rWQOzrQKncLqfv$VfcX5IcyneEDYkd*mkKQ^)LcP_KBMI*R>^w`Ua;N13} oh3xG;3puv;EaZ#=I|r<(?EvSt16*vY5$Y7Oxwk81^Z2v_0EAgQYybcN delta 187 zcmaF!#Q4n<;|X#s2F9jF87`#WW}E9*g0hLio+#J1nL%*Gat;QrBLFDrs` r+j|zWxA!dM*xs{{GYaG!6R@VX1Dx9qaIvjMs8h)1-mZ|%lOl#tCvPhDJt)8lOl#tCvP2F9jF8#ysZ2uR|KA{QBoSp}= zYUM3<(<>0ZoCTl6_FwBbbh6-l@$HV1oG$~w{C2%8&h2_xTqk(IT!?nTa<0g$VE*Wqs|`YQ7wV+!GXeS!TWVFgb#M4>>b{T;PA7U4px8i0dHV9 zSbn>l1s@C4QUAi(CAQlw;_GMuOF_c-p&GyDJ}`ef-&6h@pi?t$__@`1K22d_c-KHL)9^+Z@x*2DSY z+t(gu6`cp+>n#=#-+nid?Vt~YFK59gzJ2F9wzr88K3M*s0K26-n7{pBIQxVqFmrky z$f}jM*iElM_;MC}65D^R0^85n;`HGy< diff --git a/tools/sdk/esp32s2/lib/libfreertos.a b/tools/sdk/esp32s2/lib/libfreertos.a index 978ac0e93fe0602cba74b3a077c16b28c77ad68e..1103590d5a37549864223f820249dd9837015a23 100644 GIT binary patch delta 279 zcmbO>M|;{F?Fn)$hDHWP8ff>^UyqUx{-xBIt3E~<;xOID8sUUHi9zGHVagCs| zUz1!B-0i=t7{7@k@woyS=fxoL53ObVM|;{F?Fn)$2FAt~8ff#1f1-zNWHs2EJT8YH1+w)2ViQDw>kuVas?rV}O zg1h~f72`Ki5Z@eZ)^@Hy#(6OyKE&+pht@KF@ delta 72 zcmZ40B(kbWWP%)vfw8g0MkO&05W}R|hGV-82cu3Ln72JAjq$`P5Yx2XLXfH5LXdg8 Sg&>QCGDyf|dx;6lwle^~CKFu% diff --git a/tools/sdk/esp32s2/lib/libjsmn.a b/tools/sdk/esp32s2/lib/libjsmn.a index a0ae07ace24de7117955ed9e4f98c096e742c670..d1e563a3c1b671d3eeac66074abed41f035a7d3f 100644 GIT binary patch delta 25 dcmdmViE+~<#tCvPhDHV!6P2RC^u~rw831*92(JJD delta 25 hcmdmViE+~<#tCvP2F9jF6P2P^42(?-H#Tg_004Dm2&(`9 diff --git a/tools/sdk/esp32s2/lib/libjson.a b/tools/sdk/esp32s2/lib/libjson.a index 5fbfc469d9e2687f645272430353f7ef5eec0307..b57b01602ee4d7e61b488b088abc74dab051df07 100644 GIT binary patch delta 54 zcmZ4VUTo2Ou?cc4hDHXK8INNV5; Ik>%A>03`txjsO4v diff --git a/tools/sdk/esp32s2/lib/liblibsodium.a b/tools/sdk/esp32s2/lib/liblibsodium.a index 93e3af6dbe83a47d2a51dc77a3b55de0835b803d..7ae8514fb16f05244478e12f9231a67ef481da6d 100644 GIT binary patch delta 1820 zcmexx{wpI0Pmp6VG%_^ZsN@sJY-nUK-Ea$^_~wo{t=(|m_A`=#fde0#3|U#l+?UpJ0#ss)6eDVcHQZGjIv-y3Ce1Sw|i{iYxmf~ zzujYtK+#9AvhDkp3TDWHnbW~KCLR`Kg!1crRm8WieIWSqAVePQ&5etMu4Y2`^JZE~ zY+uA9Y@!X}-`gM(x!u@8xLX;*&pV(f-hMM$c>B$05ynuk*!FuHM4o`84GpHt-BFTg zzjsAs`@Jio7En*d9kZ0!Zj>a}pafPv9qh@oEn=*e5dOc1Y7*Pu?G^hH4dLs}Qj^&J zPg1Y~PhDu|yFn4~n_UeuJj}khM zAyPuG>Ec)EOH6Z@B$}`N+r44aO&>IRnE>mDm^0f`zK zfRpi7U!|QLP(_=RqL`+qbSsHL_;uY%GVGuLFxWnCl2Qc3=7awfp}65E5k)o%EK`P=noshxpXxc%Ql zwIxwtQHWdj+Nc|X(v+bA$W-y|ob%K#`hexP-+QIr0ZM*`2Ghau*vO;ND*(=;i65CH z+BIc0+BIc0+cjmi+BIdhw`hs|KI`R{=lxZr^JP^`V-pV{_?f97@E5apo6zg>#U zVvik!4^F}#JuJS0iYIttaA~msr8Yx@?Qty@JD^(svB;%wZ=7K96OvB1*R8bxXE8&A z>EJ@}=P8Ry5xA)m+xzZYL>NQ(^R7rrY-bX-%z(&m&r`Qd081HybK~|`QI;DZ4%$9% zrsWKNdO3?cR=7-r$5}2+A`O+c(8oU6=-u z2Zz$!uU2z2!2IoYan=`1z)Vm&kl3y@*?LAGln*LS?>@1fx)q7vJIjVs7#trT-Iyh| YZ(M7`tAXI&ylQjP1HnBjXRGW904VcUfB*mh delta 1834 zcmexx{wpI0Pmp6VFg7*XsN@sJY+!6MT~Jm-d~-*f)@~S2V*6Q1#@tvi_uy33TtQh4iS4#)86~3-+(LFHP9*NsM5aINoDM=%$xxAG%XX(*TrmgRJ3 z_H_kwL9W1OzxIXiEs)P{S2OD_YdJ$X)J6@wpU@q8Ey#jo# zz6h>v9N$z6Fc;*;=?;el1Gno==VO!wi+yxsmT33f!q@J(g@3!}7JdAs>Wk#49uxjRY{?f0&TY`=F!)B?%N21#N~N??=0 z7M*PoW3>cx!Ljsquh`dUF!$h98_DheB*i=2VO)vr3lqh+dO@54ik9t#Ys7Woeh}Zj zBUfUXB3L!ptjd0gkBMN_+w(q3=sbon=UtJ!auUQenO>L3B;MXTPpZ9lo^*TfJelpi z^JH_=Kyt?0|FOs=$by;E``CEIw^u63)s{o}d>fb~mJ7|2bAWKc(z>_gI_r@57bD~= z+ra$oe)r{F?7__G@9b10wy%>@xY7gR+m$nlZ=btb;ieUY5BAi=X9|DkLHPTY3W{%E z*{XOI>Jl)2=3>Q*GGO`bc?T4EAi=%8?y=$)h$z^-TYZ&wc0d(vQi@`lp3++o(EPHvI(XtZ&;S=+TL(ld7C?gzi+9a#P%Rz z6#h1%?Fm>{?1ON2g^A^d+Va+2G< z9j&~fUhQM!k=VW|&g#N6h&(uy=6(~kAyY8` diff --git a/tools/sdk/esp32s2/lib/liblog.a b/tools/sdk/esp32s2/lib/liblog.a index a543f4c1e4ff3b7e6b2300290d4cd841599be3b4..95e87e6cfa689afe4f0e6cb407c57cfa95145f44 100644 GIT binary patch delta 47 vcmex!jrGqp)(LVfhDHX)8(V3aTM2t#3i40GziFr~m)} diff --git a/tools/sdk/esp32s2/lib/liblwip.a b/tools/sdk/esp32s2/lib/liblwip.a index 72a331b8f79a414502b577412cd23a331d158195..9caf0e1569fdc6264af3a091406eaf25ddf76a9b 100644 GIT binary patch delta 1509 zcmX@N>>EChZ?g7`J~gVfvB{5iVFQF24Q$ z0;a}#B>rp#=DAG}{svV&@%G@w%-e$(voNYc#K3y;Pq4@~gZb?fyjizT@MimP1;jO* zKEaz+ynVI;d;4q!j_tD*I16`y#7(yg+~#}}0A_B};R=WZv!)AF>PT$QY2|t_3C!Of zAi>SCAIzM7V55W7_Ok2TQFb7{*>sS#?XN|7+Fy(Ew!aqTYkw`u-~L)uVEb!P!N7?i zHKyAgmJ7zbhA>)H|75mn|C24$0*h^5pdnWP z_3#1>IjQY>>2g6(zQAoxiS{{5<=W>gm2aQ3RAKv^rHU?MU~P~<|GitW{r7IA?Z0;` z_bMTYFTSVTzWAQX_Qm&9YgORlV%x2l)ovYu^Cj91PN;1+IH6v!4kC77qeIemwsH+I zi2dyfTQ%AhwrXxy*s5g_4N>xd%}BhxSU`Jwv4GCZ46xXCfl8f}DPZRG4XSz)?Gt!) zw@={JlaT<6wQo?>+rB|n{{YnCU`wvq=tC{p{-H{L#d5GpNZ@W(GME|!;e(Z~D>Z;B zg~;FEY_K;8EWdq$nBkSxU?w;?w)Y=0^mPI8&D$Ta8Et>SW_$;n>dm(wC^GJu3zpd) zAYd}#512XKVY#6A_TN0F8^443?HgFk+BdM6Z{NUT;Q>w>=8)tgeB5F!ID42+2mAlF zr{(tBo>q+MU~StUY_K}B3c}nFZSCAH6mJ*KvEMG7kz?BCa&QMRyKIFQ6 z_93^U2_Ur=(>Jh~Nwn7}ySLXUdu*>!_VfX#8*@lrdHmc{bq7eDIVcPzwyP}gy6_gl zU!Wl;xm~c&J00R?kQc?j8*w(H_tcxILgD zNCxZ-i}r$jLE8)V1+Vb|$(k=$;11~lu`EFD7jL(o9@- zP78<_IO6+nhi&h_9lkLQA_guDqMafR27~$A6{bbZSPW)PSKtnj*nY(_@RqzkY delta 1509 zcmX@N>4S+`H{X8Ujj z%$+{Ln^nAhwgP+mYz2<(vlTcCcY(#X3*6>>698sz)8Pt;1hb|KRO(1<&uQg)FbT}x z9w5QZu^-Hweqf`6)b_IL+);KQzA@OT?XN|7+Fy(Ew!aqTYkw`u-~L)uVEb!P!N7?i zHAdSVmJ7zbhA#I0O+3 zkl+^Io*yN)a}$JrpvYKay9=+l#yl{8d%{`Q16i9P$k z%ytD=$?XcRQa`SOxziO~B_-NTq@}l;NXy)L1Q7!VuJ%8f?b`oj3$?&v+ZSla6@Wbq zjxwq3dg*dOV7@WPGKuy%OXb?`em8Z(ks0cx5%13G$x!_WnbLzAj*X`vW$k?GM9A5R%cd0m>Z(4J-&jOU>CIu2ij~G4z!&(3nB(i zSO;F)E&wMia3qLruj;a^dkB#aXb2Q<7tXQYE}Y}A(iJSW{lG?t3P^lx-=OFCT4TGq zq+_cnL~etgBP8uW9crEH_;M;p$^;Zq673GmPTL)roh5Q1VxS_Sy`;doy`;cpdr5&S z4>+8`YQ@`UA9CG3`;gnw1c=%VEM^kzHOlVoHOd~_Ym_~Gpy>vjR~|q2RNVnl=dfH* zV!O%$uM2NMd}C0tBe`9$&pRFLW)ny-Og`hieexNfwR1pfz+z(CqcVM0-GcDJ!J^>e zR{;(d6G%Gz_s9fCAX`tPDddPO`>7i4(A!6Wc`g&35_ScKT zIxQe#;Dq0QJ8XOZ?eL9h5HWCJ5bYFkFc{3=t}rcP#$qsYx&n8I#P%zekqSs0h$ux+pRA$t~~+eTQiDnXPU+IDG$UqoE~7! zDAvx$$=uGz$BmVC}ajb3Qx{=5Id`%_RX<4sy@- zPZeBYU%*lzpQmr%oXfot;s&sLx7T%Xdwqq-g92*%<9Z&&{SZD#f4iJL?{+zRK0hX~ z*!BWPK8VAi-dz>P*S;!_zkOAl!1h&fg3qcz%3yLg1>0BM6lz~}Q+WHTn<7!IAUUXq z<>N&Yk3sksxH!_czg87H2ys^X1}CxY8=S-?G$GOf){NrYA7_heHiP-w1>TE8Twnn4 z&}<$FsE4)(Xi7-j1FM3BYBRfJ?o|l?Kr~nS_UOBkFr@;&Bw@h>_O`RQRNx_qQgDc_ zzbTap3DIfn>=N4z7D~e`1;^y>ebUhQna0j8-rj#(dVBwEnWd5t6TnL5f0cnM0jI$2 z#X_=~d%*JBADokI*a2oj+*#c&clSPo4|Ys(x_s>lBtEx*!dDRA!en{^v$jOL%ua>v zGCLJp)_{_%3CMVf?R!#{0(OJ=#@huHm7kb`nbQmIYDsJt2v=UA%4}$8F+JarFJrrM ztuokQ7RK8j%v4qZB^C=4aAIhe+pgR$w_T-OZoBGsx$SCxLLgI2wildKJFp1M1S{L_ zm7}ir4$24RiOEqKvY>E=8ngYBzNXY0i2Q~12I<@VWwiE!BGo8}P{j05+|5L;wH) delta 1162 zcmcaN^DrX_Pmp6VFgCW_sMKW4Vqk1!JpI8rS@F&LjZHT|xCf%SBsU8_VU~q+leSke zGH#PW;!l%<@wW$9GhUbqkqXe15Z`Wnk#X$_DBqe#o88 zzI}5p_eO{t!0z2%*TwDi6(SD`sO^vIc@+0U_#pl5a`wF2-!AZ89O43Fh=*qLNI*Pf zxII8qLgF4sl_A8EW_HQks}Mfe@6mT9VM+ylNkW3j5S%`?JBv#N9)c(ZyKntXsZ?-? z8ct(pm)LHwP#R*XAtWYu?~{ha4@g?Pz5llK_Ws*4OC=#DfFpbUR~e`hhz-R;vYC6p z^4lMrlWo`mW|WqFrXE!giURiY;s4 zY9zMrNmUBi4dNSa7f@7wVhUzXFSx5Ev0Wfsd4(#J4@!p0waQSJZGSLRSp}S0jKHa( zU2eN_yWDn_cDe1U+vT>a`3Zrv8Er2(sdiuym zDSb_;HxT&?>kZPk`^#wU1;?(@b^%MRIS?DSZwS+xqYYNIJfKO-4$OkY>Fxtskccwc zUT|0I4cPHU+Y^|z1;B~IXnH`Cmc;fR9qlhx5M7|8x_wrmYv5c0b=4zv zol6-|d628mPtcio1j=vHl4!39)orf{)!SYZs-F=E6$h#Nzf8aN9E1-lJhm?^HGq^J TM$^H*x?`K!K}%BqGFo`mZZ%9@k}SL zGZJr~Xv5e((T1sgq7C!*i8d^@iXbVI$?J?Hw!eyHIgtzELR6kT&C-7MG;90W(`?(% zo@RG#1WB2IjNGo{%Mo;e+0f8pdSQ*Ac>4@l&h{CyTNA>^! delta 212 zcmezH!}G%r&k1rY2FAvg8x?`K!K}%BqGFo`mZZ%9@r)<0 zGZJr~Xv5e((T1sgq7C!*i8d^@iXbVY$?J?Hw!eyHIgtzELR6kT&C-7MG;90W(`?(% zo@RG#1W6fzjNGo{%Mo+|WW521+de~lR>5a0S;@e}Q1%(t5+>RQ-7ykk4ctB(6 zjN5l^W4c=e7Mh;7i(P#CMonhRNnrl=ce|Old;~E~C*PA1Yu~e$rG3v@*7iMX*|zUl r%f5~WBxSNaZx_4EOfYl$yWPyB(6 zjN5l^W4c=e7Mh;7i(P#CMonhRNnrl=ce|Old;~F#C*PA1Yu~e$rG3v@*7iMX*|zUl r%f5~WBxSTcZx_4EOfYl$yWPyX3p&u%v>v8fOMF*tGwZAS9!zTuJVRwyUH8hgb;{uhXddC4hQ~Mw*by> BA{77t diff --git a/tools/sdk/esp32s2/lib/libmqtt.a b/tools/sdk/esp32s2/lib/libmqtt.a index 4cff69f2cbdd0bfdaf50d3fe26ceeb0667c1a1aa..0d1158a7551e4b22699228d55cf236bf57235a44 100644 GIT binary patch delta 93 zcmdmSMRvy(*$HyYhDL@P6%AQg42=wpru#{vJCc_RE+McJtCUG6i1Z&>D;5*xlA^^iB8M^=g delta 93 zcmdmSMRvy(*$HyY2F9iv6%AQg42(@or~65=h&AW1w&$=iw&$=iwdb%hZ_i<6xhD*g mHfi^hWNG)4WZmv3$tJ@N7TTVtz$S4W%mi!RzTi9Cj3NNXs~OY) diff --git a/tools/sdk/esp32s2/lib/libnewlib.a b/tools/sdk/esp32s2/lib/libnewlib.a index 98a5b542defb43da1a696e5232c4f310891b7136..2d53c976ad4edabf1a793ab0b85f9b95d0b5a5d2 100644 GIT binary patch delta 164 zcmZ2;o`21G{t0p{hDHWP8Ivb_6K4|N{MVm10?ggaw?beV zm<3k1-O`S6p)Hud{a!WWA7dzUJ)?>imrOHmn1Y#;`BsQ+Kk<+0$qNAS8a6us diff --git a/tools/sdk/esp32s2/lib/libnghttp.a b/tools/sdk/esp32s2/lib/libnghttp.a index cbae7bae71c9ee9782c353855accdd17456360a2..ae0c81956cbd1ae07241221075cfd898a00f6fa7 100644 GIT binary patch delta 421 zcmcb0y!6)b(g|`bhDHWP8>w(qv$Yu|0f-@e;QpnbQMVEb+>q4wQY z!tJ}QMA~;-iEiI*CAM@nNQ*JphW6@fV%w{)iHB|mi-G<1s#9Y7t4_%_WQTM!N(HKe Zl$f?Z(2#0>pdsD$_ZH^%?kz0s-CJ0=ZYzZFc)m&n&Ad! zf?cpZ_%D~CA(%g{pId7CB0cV?1Tc47KX(Cy1+rUWd(V6BI}kG<8k^I3SdG9cr$5k; zlGwgvCQnNci-EC`IoNH^Z+K$;KwQho6HLY1cU$qc@3!J=-)+U;zS~NmeYcfh`)(_t z_T5&(?Ypf++IL%tZr^PswsbZ~i#gba_Udb5+pDjMhi(Rof&KNWQ)2t8PRTZqLyREG gws$j11*(ITShPRTkZOORA>IB!LuUH}4cT8-02W=7?f?J) diff --git a/tools/sdk/esp32s2/lib/libnvs_flash.a b/tools/sdk/esp32s2/lib/libnvs_flash.a index 77b8d7a23b0f89c2ffb3a86bb0fdce79c21c9dac..1da386dbd91a99d056149690343afa22dfedf8ed 100644 GIT binary patch delta 245 zcmaE~A?(qHunBT3hDHX)8PYPt6_Z2R*UCNzJ>@COu1F!+xy-e7z*}|pUt%}&&t%^9>t%^9e zTNQE5QbS0+o58jH-3;!kXCU1W>)V^^dD@%mdE1-n`L;LJ^BE^vi%&p=qz@G`1U4#(FYv>io#O| delta 243 zcmaE~A?(qHunBT32FAvg8!!tLkSMYf+~7oEipQU&(X_9lMO2OR(wno`jK diff --git a/tools/sdk/esp32s2/lib/libopenssl.a b/tools/sdk/esp32s2/lib/libopenssl.a index 0513d06e7ec71288862c9751a84360a4b2ac8542..ff497ae24f44a2eee4aeca0d89d8f25f738b58f5 100644 GIT binary patch delta 142 zcmeyeK>W)B@dsnh@L#516i1z_{Yu7e+EqHG*-)wg>buUs?y}w%b^W)B@d Mg|_#sWPPCq00<&7oB#j- diff --git a/tools/sdk/esp32s2/lib/libperfmon.a b/tools/sdk/esp32s2/lib/libperfmon.a index f43c1225c3b5a68e4a89c7ac41195f69097ba4a0..c9f289f9b06cb188400b137f5428fed6a04cee48 100644 GIT binary patch delta 54 wcmbPmi3Nn@m<^2#H!2D;u^1W|8clw8Uu?4vlUgo<*OMPt0OoCecVEd90QC10JOBUy delta 54 wcmbPmi3Nn@m<^0gH!2D;u^1Sem`;9oUu?4vlUgo<*OMPt0OoCecVEd90QV3RQUCw| diff --git a/tools/sdk/esp32s2/lib/libprotobuf-c.a b/tools/sdk/esp32s2/lib/libprotobuf-c.a index 5b88c6aa4f387683f371e1979d5205b1d493a196..65f5b232932b7e5a2de31b3fad6cc819c4f68c83 100644 GIT binary patch delta 51 zcmX@pFMXz8dV(B_p^>4{MkNPkFrzt*xjl`Uu|18MsXdJu#AazvV`kl+#>|#>1OSAP B4nP0^ delta 51 zcmX@pFMXz8dV(B_fw8H{MkNPkFrzt*xjl`Uu|18MsXdJu#AazvV`kl+#>|#>1OSFK B4om<5 diff --git a/tools/sdk/esp32s2/lib/libprotocomm.a b/tools/sdk/esp32s2/lib/libprotocomm.a index c49e7d7f2d31104a3184c3f3242fe3425eae86d9..f48ea1f95a71d72f1e967de494d33fb8f2b6e622 100644 GIT binary patch delta 155 zcmca}N9xWUsR?o{hDL@)8%`O0)|E12ItZ#DDwd8=7GxWQbo@@?B$^vV(3?H+opcI%l9jSQw6 O>amJ%UvQUo&jkSJVleXn delta 156 zcmca}N9xWUsR?o{2F9i)8%`O0)|E12ItZ#DDwd8=7GxWQbo@@?B$^vXe86EJtXhaRildL;gW JyR3UI001lZF_r)T diff --git a/tools/sdk/esp32s2/lib/libpthread.a b/tools/sdk/esp32s2/lib/libpthread.a index a4de95dc14f725b4489c2de8d161385fc2744436..e45a57d80dcad7c2d2aa5a26561b96054b20132c 100644 GIT binary patch delta 63 zcmZpf$K5iIdx9K`p^<^nMkNzg7DGb|%jtG&7{!_kShp9jGM-un7TRvNhVe!Zm2d7 p+viPT+CFaz^Qjz|kVJb6Bg^&{M%E4TFd?yaKSkE&&)YLfZP(q)D4hu7if>PnV=7t&QT;$cRHFUE38w8IPB0sILc|J0 z`NX$d3$a|B0_L|1EN9s+u$*;G9)x>9lx_O~QT7Z+Fn7AZau)G+=WzDz&fy%csR&CJ z?cq4|2ciVzr1tuqoZIVna!D#f#hL{q+PB={+P>uucY-)XtiYRBV!Oc??kOyAzWDb0 zKe%np!Tfdw1D@>)2E0DfVD9z;Z{7>qVCM7>* zT7dcO4-`bVKTr_k@dk6Zf5;YNaRa-8e>sapJO3uJ?fjd>GtB9hw`j>v8>1UbQU`UQ}2ufNLnCc*g<+owdxtw;bVZ@1qmx7~iHJf|^; vH$C5*S8{vG8+jWY2p44ZZV82r6(DYV{zQfC`4bgSw!=*l-ySTf6rBYCP(k6a delta 736 zcmZ42-o*&Q6XaM7jEyZfDv2pE8yFi+=by+Y*&L#@Jw%DILKY;l{k%P6Y9fd=UEY94 zV!QuB#)Hx<2F6CF(=XUFN^aNP%P5@)=ZkGml4B}b1>rwX5S3{EaDr+3hZD>Oo)EDD zQ9kkQ)%Rs zuw9{9Py*&eP~Zg55^O97OHT)T?Y*GT_V^`r;@jh2h}2qu`RxxBM7KXs5aaO%bGLuU7GrS(Gazlh~epiuvPX5O;h0I+mSg zAl7uSp~g>Hb{2xT+uw(=Y9@eKP>JoVhA}X%)b>VUw#V^c?)|k)QrjDg*>oQQ0QyEl AegFUf delta 190 zcmZ3tQg+=+*$Hwi2FAvg8zlh~epiuvPX5O;h0I+mSg zAl7uSp~g>Hb{2xT+uw(=Y9@eKP>JoVhA}X%)b>VUw#V^c?)|k)QrjDg*>oQQ0OdkM AIRF3v diff --git a/tools/sdk/esp32s2/lib/libspi_flash.a b/tools/sdk/esp32s2/lib/libspi_flash.a index e31ab1aadf18709a13c8c0c0fb000e46caf8fb4a..266a67a2e7a8952ed2d9190c31574f871f711350 100644 GIT binary patch delta 274 zcmaDh#q`+}(+P4chDHX)8r_yX@bTL1IP_u}_Q~?VlJqw|`>f px@HR!H-v~kvgg|V$ew#qK9bnH_1xR%t>-xviV)l0#LD}`1ptN$VBr7& delta 274 zcmaDh#q`+}(+P4c2FAvg8r_yX@bTL1Ly5u}_Q~?VlJqw|`>f px@HR!H-U&hvgg|V$ew#qK9bnH_1xR%t>-xviV)l0#LD}`1ps!(V7&kU diff --git a/tools/sdk/esp32s2/lib/libspiffs.a b/tools/sdk/esp32s2/lib/libspiffs.a index 5a9df34b9a327111d09c4e88be3907282e3fcef0..9dd46aad453ffd160472821974ca5a9d5f063564 100644 GIT binary patch delta 145 zcmeBsrq}mOZ-N|)p^>5SMx`!JFr#?`XZr?D#_bz8ndXRrM2xlvC@_^w0y8IX;1t__ zZxfT-G7#4o#BH~WWZrHU$?Vmz9 T+CPPIwtouc+Wsk&TP79&p$ak| delta 145 zcmeBsrq}mOZ-N|)fw8I4Mx`!J76W4w)8-AF?Hf25w{PHNnj;1l*&d+4R5A(7oVuWp0syW3GDrXb diff --git a/tools/sdk/esp32s2/lib/libtcp_transport.a b/tools/sdk/esp32s2/lib/libtcp_transport.a index 9f4bd39f5e9a9e484d863751fbb07c6da15d58bb..1da266b8ed41a50f2e0f6924088af25712740088 100644 GIT binary patch delta 87 zcmZ2|2T delta 87 zcmZ2IjM diff --git a/tools/sdk/esp32s2/lib/libtcpip_adapter.a b/tools/sdk/esp32s2/lib/libtcpip_adapter.a index af4cc6c3c1633eeda70f10c1edfb533b23681f5e..5f0efec460ab74886522f571e736078695bf4247 100644 GIT binary patch delta 34 qcmdmUi+j&4?g?@%hDHX)86!Xk=hCQE3{O-ngg73e4E-W9`%l0KiEKzW@LL delta 35 kcmeC{WbW%^o*>6!U~FVOQE3{O-ngg73e4E-W9`%l0Km`+$N&HU diff --git a/tools/sdk/esp32s2/lib/libunity.a b/tools/sdk/esp32s2/lib/libunity.a index a56cdfece45f4e2929a15e5a87459fea000a095e..754482403f092e5ae5467f76d0df637cc10b86ee 100644 GIT binary patch delta 57 zcmaDfh40Z6z6o+HhDL_Q8!Hnh<*7g)u#_cJrOlP9OBHK+8nGR$_m_N=iW$gt3 D`>ql^ delta 57 zcmaDfh40Z6z6o+H2F9jF8SqzL#Oq)|!+f!H>x2Lc&orwmEY&S_{I*<)v{y4*w GwHE;WZxT)b diff --git a/tools/sdk/esp32s2/lib/libvfs.a b/tools/sdk/esp32s2/lib/libvfs.a index ebca5dd26b99821d03bc4bdcede42f96f6719c64..c6a971f4115190ee2628a2492d97cab8e71678e4 100644 GIT binary patch delta 73 zcmZ4YP-5Lfi3xHnhDHX)8z4o~OrRXlQBL aE?~;sE?~;CUBHyph6^mTJ;0td?jr#DG!u6K delta 74 zcmZ4YP-5Lfi3xHn2FAvg8TLdW1go6mTDI; YWo{QRW!WxZ%4)*}7TO+Q&l>j;01Q|YrvLx| diff --git a/tools/sdk/esp32s2/lib/libwear_levelling.a b/tools/sdk/esp32s2/lib/libwear_levelling.a index 414a164cf34e4459a4128a58504cc5e12d7665c5..bcebb1ee1fe23f3cc18adb2c04235bf378ebfe59 100644 GIT binary patch delta 113 zcmeBKD$=u5WP%)vp^<_4MkO9D5W{S;U7z@7Pp*&6VBTiCzJN+FYdYU@M)B<{*%=e( zgZSp#`Ia+YSOsQIw(ApX{}ITv{YN14rNtqZ|7UicwrTYX*k)gPpth%Ak+3Afy|d4gMSu}nD)0M^hY A6#xJL diff --git a/tools/sdk/esp32s2/lib/libwifi_provisioning.a b/tools/sdk/esp32s2/lib/libwifi_provisioning.a index bbb6de9af3a07ebedf592654a6a9fcc8e162c352..40a137499f387b57c668664e0b96711b0f252888 100644 GIT binary patch delta 181 zcmaFRVEv%MdV(B_p^>5SMx_#AFk@;RquAyR!l&MVd98JfTkDu6oC9+}QtcY&nc6kZ zGq-D;XKB|s&$?aXJli_BPVx4SkJz?(^b delta 181 zcmaFRVEv%MdV(B_fw8ISMx_#A76W4w)2VfgVw*PzpLzr4wbn6itz(*S4#Y77NwsU7 zXKL3t&)lwYo~2#mJnMFi^K9$jI>p;RK4RPc@ew<3H%JG_F!6TDJdW*>d7P0GK|&Bi vdj4~6@A=R5Ees(vCyaahoG>1(RG5%>`@`Kl+aK=c_3Q)-ZP#<Y-nh?xj*}<0gIubrP=fY@_ORU{d2bW&tX)p2gyzD z&z9JJUYcpICrE)s`-D`c_6e!X?GsX2wogc9ZFm6^Hk&3IA+cS@k8RFJ5Z8S2glzHl z$M)>)kL@|OKep$57zPpssSjt9K~#ME?+GF+tD$^1 zQOWHGc|>Phg8ADM+(iGtm<^(DdLW_!ykb*o!OZCsQklfJ|L+oenuW~&Di-PwvTk~R zDwD+ad{=SaP!M-}{VefJOAu>%Jjf!JE8+rR)4_h;uFor>X$&&P0vrUz4ifFf4wBo8 z9i$}FK$^DqFO!kg+-ykZn-9AkE?@SQ4-Ts60cKZ)96EA{vLkxR;P?pgcB)R?l z7g^OfgoJ*u+(WSMA?ma{M6P1=9=7!b}$!g#s66OjbKlM6iaMB^Gd!0 z9M|U47wDTvZZDKp$PWjr27B~(kwRuV$R-O&xYXZLm{=aUhSsqIuRrUj^*vQuj@W^2XQUi z56J6nKOnEqkpkv|H9T(CZ-3luu>Enf;n{~^;pq+^q$S$Vq#A8MlWKh7Bv@?w0)3MO z;Vgzm1_t1OZ;x&_X^(C-yYp=F*O3L6l^N@1B>n44=j26z(Ug%dKJaD z8|PWc-hdk+(VpXG-JauS)1KpIyFJIvj^`ed+Q};Riq|20aQZ+0+g>#jtQTxNf2u<} zf2!kl{#2*NREV;GW6BcS*PL>?69eIc^W9=~=Y^19pAME!SmGQI3z5H&>M61P45Q1I zHZUKQ(YMd;aC!L)%$+W9K~21UezWWL`OR*Q8W1s1;nV(mwcGaJtKH`ogT*FK$QEng zB=50(lf0*t8(3)jg;dWE?O-Ov-?!g-dV;f!<@5>5q{O$|@AuN&0rm?-zPa4{>oW)+ zY{TR@pY4<5e7{yh#K10De9L$H;#+>X+F&to7-+Nkw`;QnY}aNBeCi7p2FJ{H?U2B! zd0;-+Pqz;R9{mgEf^==)eIV$gI+(kC!;2sTXD}0zMt^GuU+sqQ!D0S-d+@~oFu(l( zN67XA9HDDOAlw4k(Cr1XVH-@rTu6Gc2@czC6C8fvAXsdhXvCC{U>3xW>)9d$kAV3g zN3~0zj@&MNI!aXlECde3sM}H7qi#pD1;K>G+pBeB+N*VAw^!@NeLMvcHf%5W5!YVu vBfh=hM?!nSkHq$ZA4%H_ek6y8gQdX%(0-pkrTspCYWscuwC(r#)5A3ZfZs)Y delta 1614 zcmdn?X$~_8Pmp6VFgCW_sFan>Y+!7(xj*}<0gHjLk=gVE@_ORU{d2bW&tX)p2gyzD z&z9JJUYcpICrE*L`-D`c_6e!X?GsX2wogc9ZFm6^Hk&3IA+cS@k8RFJ5Z8S2glzHl z$M)>)kL@|OKep$57zPpssSD3C|2;uuWi^!V zCMvo8Adl#5OE7$lg>63>K~H$A~kRAM{J6>$L&-x%!c?fSeDn#Q2ewEzb~v4cc=v4iCHVh1V7 zG-d;1UIfd6v~PcXP?pgcB)R?l7g^Of zgoJ*u+(S?RKyB6Tko)QjmYsef)l*`-%{93d?GQdVeE!GEZv^=qtXyLInOE{1pa?fM zpT0ofL~?tfv_gJ3$eQW>sZ0{ve-|larX#rZw-hFpfD8kBX}h++;zwJM>~{HH#lRC_ z2}n@%getX|L-+x_ViMbRdX;uGfcaq0{O46JH34aa*wXK$yb%<{#t>tpCnrj z$_wqYPit+TeOmiy6<7>xRJEJV_G&j>*NJeU?YFP%K6D3j+YiX=Z9gEd&yfP=f;BvD z)^C5@Y_R=tv*Fo?aF4a0Nj2JjCe`@DNwCW83-nDEgoBut;3U}|-EPtz-EP_*-EP(% z-EO`;y4_-G1V|nnUhUiuEVgq$u;lFn8z|qaD6!o*&r0?NNCnsgiS`^f>-HQsoAw+x z+wD1Sc0BhGN++w>D_#e4!7+aRx4mj6SSQ%Q{HYG@{Hc!H`BR-5Q^BhIk10!TUvtXo zP7Fwu1tixkR(D=lgOE;G;v5hQkp?HiGmI`<+CX{82$ajW&+c$}`3uaQE^t9jynTMN z>-PE0ZjKrtF>`Rq)Bbz4+xFk9-RBmA#U@Y47Hi)m@3DQ8yr+~KSZMo&RL>9Xpo};j z?B&~UJv~AB#mHj%gk@6V+wJ#zY3@KsHVeFoBK0Wp7aoX_^jalT){WrYRA9gA=I zZeM)MFIO9^4(xwzHve{Qwt(&0Y=KXG!KQ&jNjoHPY93e>*h9Au1s?qi=7KbB-+dtH zqdJ(oeZz|&17|Q35>UUjgRgcY%z3>%_+kK9y8Qr0$o2yqp=(4S+ydFq?FF)78%)89 zLCL?}COB-nO>p>ugJ2cgL?fnr1WSUwzn(2J@CaA}G<6#Wt^EaVvpyxGLXqz&S!q_jsWkiOoC{IDDWS lvCVpS&Iy1yo8BsTgBg?Fif^~JVDxo`^2D|;s%12J2mpm3D9-=@ delta 119 zcmcb%m-E_Q&IxiX2F9jF8bW+rFrl(c~cjj6x{u