From 16f4b0f5baf4d8fe4c679f478dc259aadbb3b68a Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Sat, 17 Jul 2021 01:57:49 +0300 Subject: [PATCH] IDF master d93887f9f (#5336) * Update toolchain * Update package_esp32_index.template.json * add optional component dependencies after Kconfig options are known (#5404) Until this commit, Kconfig options (e.g. CONFIG_TINYUSB_ENABLED) were used in conditions preceding idf_component_register to determine which components need to be added to `arduino` component requirements. However the Kconfig options aren't known at the early expansion stage, when the component CMakeLists.txt files are expanded the first time and requirements are evaluated. So all the conditions evaluated as if the options were not set. This commit changes the logic to only add these components as dependencies when the Kconfig options are known. Dependencies become "weak", which means that if one of the components isn't included into the build for some reason, it is not added as a dependency. This may happen, for example, if the component is not present in the `components` directory or is excluded by setting `COMPONENTS` variable in the project CMakeLists.txt file. This also ensures that if the component is not present, it will not be added as a dependency, and this will allow the build to proceed. Follow-up to https://github.com/espressif/arduino-esp32/pull/5391. Closes https://github.com/espressif/arduino-esp32/issues/5319. * IDF master d93887f9f * PlatformIO updates for CI (#5387) * Update PlatformIO CI build script - Switch to the latest toolchains 8.4.0 for ESP32, ESP32S2, ESP32C3 - Use PlatformIO from master branch for better robustness * Update package.json for PlatformIO Co-authored-by: Ivan Grokhotkov Co-authored-by: Valerii Koval --- .github/scripts/install-platformio-esp32.sh | 34 +- CMakeLists.txt | 49 +- cores/esp32/esp32-hal-tinyusb.c | 18 +- libraries/WiFi/src/WiFiAP.cpp | 18 +- libraries/WiFi/src/WiFiGeneric.cpp | 1 - libraries/WiFi/src/WiFiSTA.cpp | 22 +- package.json | 18 +- package/package_esp32_index.template.json | 201 +-- platform.txt | 36 +- tools/esptool.py | 346 +++- tools/platformio-build-esp32.py | 15 +- tools/platformio-build-esp32c3.py | 16 +- tools/platformio-build-esp32s2.py | 16 +- tools/sdk/esp32/bin/bootloader_dio_40m.bin | Bin 17152 -> 17008 bytes tools/sdk/esp32/bin/bootloader_dio_80m.bin | Bin 17168 -> 17040 bytes tools/sdk/esp32/bin/bootloader_dout_40m.bin | Bin 17152 -> 17008 bytes tools/sdk/esp32/bin/bootloader_dout_80m.bin | Bin 17168 -> 17040 bytes tools/sdk/esp32/bin/bootloader_qio_40m.bin | Bin 18560 -> 18448 bytes tools/sdk/esp32/bin/bootloader_qio_80m.bin | Bin 18592 -> 18464 bytes tools/sdk/esp32/bin/bootloader_qout_40m.bin | Bin 18560 -> 18448 bytes tools/sdk/esp32/bin/bootloader_qout_80m.bin | Bin 18592 -> 18464 bytes .../include/app_trace/include/esp_app_trace.h | 7 +- .../app_trace/include/esp_app_trace_util.h | 41 +- .../app_trace/include/esp_sysview_trace.h | 4 +- .../include/bootloader_common.h | 2 + .../include/esp_app_format.h | 3 +- .../include/esp_flash_encrypt.h | 34 +- .../include/esp_secure_boot.h | 33 +- .../api/include/api/esp_blufi_api.h | 20 +- .../btc/profile/esp/blufi/include/blufi_int.h | 202 +++ .../btc/profile/esp/blufi/include/esp_blufi.h | 77 + .../btc/profile/esp/include/btc_blufi_prf.h | 111 ++ tools/sdk/esp32/include/config/sdkconfig.h | 32 +- tools/sdk/esp32/include/console/esp_console.h | 38 + .../include/console/linenoise/linenoise.h | 1 + .../driver/include/driver/adc2_wifi_private.h | 2 +- .../driver/include/driver/adc_common.h | 20 +- .../driver/include/driver/dedic_gpio.h | 8 +- .../include/driver/include/driver/gpio.h | 8 +- .../esp32/include/driver/include/driver/i2c.h | 367 ++-- .../include/driver/include/driver/mcpwm.h | 70 +- .../driver/include/driver/sdio_slave.h | 27 +- .../driver/include/driver/spi_common.h | 2 + .../driver/include/driver/usb_serial_jtag.h | 93 ++ .../include/efuse/esp32/include/esp_efuse.h | 68 + .../esp32/include/efuse/include/esp_efuse.h | 170 +- .../modules/common/include/dsp_common.h | 10 +- .../modules/common/include/dsp_tests.h | 8 + .../modules/common/include/dsp_types.h | 39 + .../esp-dsp/modules/common/include/esp_dsp.h | 3 + .../modules/conv/include/dsps_conv_platform.h | 4 + .../modules/dotprod/include/dspi_dotprod.h | 171 ++ .../dotprod/include/dspi_dotprod_platform.h | 16 + .../modules/dotprod/include/dsps_dotprod.h | 15 +- .../dotprod/include/dsps_dotprod_platform.h | 11 + .../esp-dsp/modules/fft/include/dsps_fft2r.h | 20 +- .../modules/fft/include/dsps_fft2r_platform.h | 8 + .../esp-dsp/modules/fft/include/dsps_fft4r.h | 4 + .../modules/fft/include/dsps_fft4r_platform.h | 4 + .../esp-dsp/modules/fir/include/dsps_fir.h | 1 + .../modules/fir/include/dsps_fir_platform.h | 4 + .../esp-dsp/modules/iir/include/dsps_biquad.h | 3 +- .../iir/include/dsps_biquad_platform.h | 8 +- .../math/add/include/dsps_add_platform.h | 4 + .../math/addc/include/dsps_addc_platform.h | 4 + .../math/mul/include/dsps_mul_platform.h | 4 + .../math/mulc/include/dsps_mulc_platform.h | 4 + .../math/sub/include/dsps_sub_platform.h | 4 + .../modules/matrix/include/dspm_mult.h | 82 +- .../matrix/include/dspm_mult_platform.h | 9 +- .../esp32-camera/driver/include/sensor.h | 49 +- .../esp32/include/esp32/dport_access.h | 18 +- .../esp32/include/esp32/include/esp32/himem.h | 18 +- .../esp32/include/esp32/include/esp32/rtc.h | 18 +- .../include/esp32/include/esp32/spiram.h | 18 +- .../include/esp_common/include/esp_err.h | 2 + .../include/esp_eth/include/esp_eth_com.h | 34 +- .../esp_hw_support/include/esp_chip_info.h | 2 + .../include/esp_hw_support/include/esp_mac.h | 3 + .../esp_hw_support/include/soc/esp32h2/clk.h | 16 + .../include/esp_hw_support/include/soc_log.h | 2 + .../esp_netif/include/esp_netif_ip_addr.h | 27 + .../esp_netif/include/esp_netif_slip.h | 3 + .../esp_phy/esp32/include/phy_init_data.h | 2 +- .../esp32/include/esp_pm/include/esp32h2/pm.h | 42 + .../sdk/esp32/include/esp_pm/include/esp_pm.h | 2 + .../esp_rom/include/esp32c3/rom/libc_stubs.h | 15 +- .../include/esp_rom/include/esp32h2/rom/aes.h | 58 + .../include/esp32h2/rom/apb_backup_dma.h | 25 + .../esp_rom/include/esp32h2/rom/bigint.h | 43 + .../esp_rom/include/esp32h2/rom/cache.h | 796 +++++++++ .../include/esp_rom/include/esp32h2/rom/crc.h | 127 ++ .../include/esp32h2/rom/digital_signature.h | 150 ++ .../esp_rom/include/esp32h2/rom/efuse.h | 392 +++++ .../esp_rom/include/esp32h2/rom/esp_flash.h | 54 + .../esp_rom/include/esp32h2/rom/ets_sys.h | 563 +++++++ .../esp_rom/include/esp32h2/rom/gpio.h | 311 ++++ .../esp_rom/include/esp32h2/rom/hmac.h | 63 + .../esp_rom/include/esp32h2/rom/libc_stubs.h | 104 ++ .../esp_rom/include/esp32h2/rom/lldesc.h | 176 ++ .../esp_rom/include/esp32h2/rom/md5_hash.h | 38 + .../esp_rom/include/esp32h2/rom/miniz.h | 760 +++++++++ .../esp_rom/include/esp32h2/rom/newlib.h | 50 + .../esp_rom/include/esp32h2/rom/rom_layout.h | 86 + .../esp_rom/include/esp32h2/rom/rsa_pss.h | 46 + .../include/esp_rom/include/esp32h2/rom/rtc.h | 239 +++ .../esp_rom/include/esp32h2/rom/secure_boot.h | 131 ++ .../include/esp_rom/include/esp32h2/rom/sha.h | 61 + .../esp_rom/include/esp32h2/rom/spi_flash.h | 570 +++++++ .../esp_rom/include/esp32h2/rom/tjpgd.h | 99 ++ .../esp_rom/include/esp32h2/rom/uart.h | 440 +++++ .../esp_rom/include/esp32s3/rom/libc_stubs.h | 14 +- .../esp_rom/include/esp32s3/rom/opi_flash.h | 157 +- .../include/esp_rom/include/esp32s3/rom/rtc.h | 4 +- .../esp_rom/include/esp32s3/rom/spi_flash.h | 62 +- .../include/esp_serial_slave_link/essl.h | 54 +- .../include/esp_serial_slave_link/essl_sdio.h | 26 +- .../include/essl_spi/esp32h2_defs.h | 38 + .../include/esp_private/crosscore_int.h | 2 +- .../port/soc/esp32h2/cache_err_int.h | 2 + .../include/esp_timer/include/esp_timer.h | 19 + .../include/esp_websocket_client.h | 6 +- .../esp32/include/esp_wifi/include/esp_wifi.h | 89 +- .../include/expat/expat/expat/lib/ascii.h | 7 +- .../include/expat/expat/expat/lib/asciitab.h | 66 +- .../include/expat/expat/expat/lib/expat.h | 317 ++-- .../expat/expat/expat/lib/expat_external.h | 97 +- .../include/expat/expat/expat/lib/iasciitab.h | 66 +- .../include/expat/expat/expat/lib/internal.h | 87 +- .../include/expat/expat/expat/lib/latin1tab.h | 66 +- .../include/expat/expat/expat/lib/nametab.h | 246 ++- .../include/expat/expat/expat/lib/siphash.h | 429 ++--- .../include/expat/expat/expat/lib/utf8tab.h | 66 +- .../include/expat/expat/expat/lib/winconfig.h | 26 +- .../include/expat/expat/expat/lib/xmlrole.h | 18 +- .../include/expat/expat/expat/lib/xmltok.h | 218 ++- .../expat/expat/expat/lib/xmltok_impl.h | 75 +- .../xtensa/include/freertos/FreeRTOSConfig.h | 9 + .../include/hal/esp32/include/hal/emac_ll.h | 596 +++++++ .../include/hal/esp32/include/hal/i2c_ll.h | 2 +- .../include/hal/esp32/include/hal/mcpwm_ll.h | 1488 ++++++++++------- .../include/hal/esp32/include/hal/rmt_ll.h | 44 +- .../include/hal/esp32/include/hal/sha_ll.h | 3 +- .../include/hal/esp32/include/hal/spi_ll.h | 10 +- .../include/hal/esp32/include/hal/timer_ll.h | 3 +- .../include/hal/esp32/include/hal/twai_ll.h | 13 +- .../include/hal/esp32/include/hal/uart_ll.h | 2 +- .../esp32/include/hal/include/hal/adc_hal.h | 20 +- .../esp32/include/hal/include/hal/adc_types.h | 14 +- .../esp32/include/hal/include/hal/dac_hal.h | 2 - .../hal/emac.h => include/hal/emac_hal.h} | 207 +-- .../esp32/include/hal/include/hal/eth_types.h | 65 + .../include/hal/include/hal/gpio_types.h | 49 +- .../esp32/include/hal/include/hal/i2c_hal.h | 2 +- .../esp32/include/hal/include/hal/mcpwm_hal.h | 297 +--- .../include/hal/include/hal/mcpwm_types.h | 87 +- .../esp32/include/hal/include/hal/rmt_types.h | 4 +- .../esp32/include/hal/include/hal/rtc_hal.h | 2 +- .../include/hal/include/hal/rtc_io_hal.h | 2 +- .../esp32/include/hal/include/hal/sha_types.h | 3 + .../esp32/include/hal/include/hal/usbh_hal.h | 18 +- .../hal/platform_port/include/hal/assert.h | 43 + .../hal/platform_port/include/hal/check.h | 17 + .../hal/platform_port/include/hal/log.h} | 11 +- .../hal/platform_port/include/hal/misc.h | 18 + .../include/esp32/idf_performance_target.h | 69 +- .../include/esp32c3/idf_performance_target.h | 67 +- .../include/esp32h2/idf_performance_target.h | 70 + .../include/esp32s2/idf_performance_target.h | 67 +- .../include/esp32s3/idf_performance_target.h | 64 +- .../idf_test/include/idf_performance.h | 48 - tools/sdk/esp32/include/log/include/esp_log.h | 12 + .../lwip/port/esp32/include/lwipopts.h | 9 + tools/sdk/esp32/include/mdns/include/mdns.h | 280 ++++ .../mqtt/esp-mqtt/include/mqtt_client.h | 19 +- .../include/mqtt_supported_features.h | 5 + .../include/newlib/platform_include/assert.h | 2 +- .../include/soc/esp32/include/soc/efuse_reg.h | 3 +- .../esp32/include/soc/include/soc/lldesc.h | 2 + .../include/soc/include/soc/rmt_periph.h | 14 +- .../spi_flash/include/esp_flash_spi_init.h | 1 - .../spi_flash/include/spi_flash_chip_driver.h | 13 + .../include/spi_flash_chip_generic.h | 2 +- .../spi_flash/include/spi_flash_private.h | 67 + .../esp32/include/vfs/include/esp_vfs_dev.h | 14 + .../include/wifi_provisioning/manager.h | 13 + .../wpa_supplicant/include/utils/wpa_debug.h | 1 + .../port/include/supplicant_opt.h | 1 + tools/sdk/esp32/ld/esp32.ld | 5 + tools/sdk/esp32/ld/esp32.peripherals.ld | 5 + tools/sdk/esp32/ld/esp32.project.ld | 21 +- tools/sdk/esp32/ld/esp32_out.ld | 5 + tools/sdk/esp32/ld/libbtdm_app.a | Bin 506716 -> 504522 bytes tools/sdk/esp32/lib/libapp_trace.a | Bin 121440 -> 181072 bytes tools/sdk/esp32/lib/libapp_update.a | Bin 142916 -> 144068 bytes tools/sdk/esp32/lib/libasio.a | Bin 2913560 -> 2914700 bytes tools/sdk/esp32/lib/libbootloader_support.a | Bin 704666 -> 718532 bytes tools/sdk/esp32/lib/libbt.a | Bin 21249406 -> 21465138 bytes tools/sdk/esp32/lib/libbutton.a | Bin 108950 -> 110090 bytes tools/sdk/esp32/lib/libcbor.a | Bin 512698 -> 514414 bytes tools/sdk/esp32/lib/libcmock.a | Bin 29084 -> 29328 bytes tools/sdk/esp32/lib/libcoap.a | Bin 1682418 -> 1692338 bytes tools/sdk/esp32/lib/libcoexist.a | Bin 116262 -> 110262 bytes tools/sdk/esp32/lib/libconsole.a | Bin 572048 -> 574348 bytes tools/sdk/esp32/lib/libcore.a | Bin 6498 -> 4556 bytes tools/sdk/esp32/lib/libcxx.a | Bin 61322 -> 62146 bytes tools/sdk/esp32/lib/libdriver.a | Bin 4755820 -> 4963820 bytes tools/sdk/esp32/lib/libefuse.a | Bin 246546 -> 296562 bytes tools/sdk/esp32/lib/libesp-dsp.a | Bin 1160734 -> 1399196 bytes tools/sdk/esp32/lib/libesp-face.a | Bin 989734 -> 992858 bytes tools/sdk/esp32/lib/libesp-tls.a | Bin 309882 -> 314430 bytes tools/sdk/esp32/lib/libesp32-camera.a | Bin 1507454 -> 1792942 bytes tools/sdk/esp32/lib/libesp32.a | Bin 432920 -> 436028 bytes tools/sdk/esp32/lib/libesp_adc_cal.a | Bin 54242 -> 54742 bytes tools/sdk/esp32/lib/libesp_common.a | Bin 78066 -> 55486 bytes tools/sdk/esp32/lib/libesp_eth.a | Bin 1435152 -> 1439282 bytes tools/sdk/esp32/lib/libesp_event.a | Bin 292532 -> 297428 bytes tools/sdk/esp32/lib/libesp_gdbstub.a | Bin 179708 -> 181644 bytes tools/sdk/esp32/lib/libesp_hid.a | Bin 497790 -> 503134 bytes tools/sdk/esp32/lib/libesp_http_client.a | Bin 333708 -> 335952 bytes tools/sdk/esp32/lib/libesp_http_server.a | Bin 487370 -> 544538 bytes tools/sdk/esp32/lib/libesp_https_ota.a | Bin 101256 -> 102156 bytes tools/sdk/esp32/lib/libesp_hw_support.a | Bin 1231628 -> 1241852 bytes tools/sdk/esp32/lib/libesp_ipc.a | Bin 34660 -> 35284 bytes tools/sdk/esp32/lib/libesp_lcd.a | Bin 385758 -> 391518 bytes tools/sdk/esp32/lib/libesp_littlefs.a | Bin 755246 -> 756190 bytes tools/sdk/esp32/lib/libesp_local_ctrl.a | Bin 264888 -> 266912 bytes tools/sdk/esp32/lib/libesp_netif.a | Bin 593570 -> 562592 bytes tools/sdk/esp32/lib/libesp_phy.a | Bin 115592 -> 116880 bytes tools/sdk/esp32/lib/libesp_pm.a | Bin 193612 -> 195672 bytes tools/sdk/esp32/lib/libesp_rainmaker.a | Bin 1471554 -> 1487802 bytes tools/sdk/esp32/lib/libesp_ringbuf.a | Bin 160086 -> 160670 bytes tools/sdk/esp32/lib/libesp_rom.a | Bin 37684 -> 32736 bytes tools/sdk/esp32/lib/libesp_schedule.a | Bin 124434 -> 125570 bytes .../sdk/esp32/lib/libesp_serial_slave_link.a | Bin 251584 -> 253576 bytes tools/sdk/esp32/lib/libesp_system.a | Bin 1291316 -> 1308236 bytes tools/sdk/esp32/lib/libesp_timer.a | Bin 196968 -> 203052 bytes tools/sdk/esp32/lib/libesp_websocket_client.a | Bin 156910 -> 158018 bytes tools/sdk/esp32/lib/libesp_wifi.a | Bin 515312 -> 523292 bytes tools/sdk/esp32/lib/libespcoredump.a | Bin 209636 -> 213444 bytes tools/sdk/esp32/lib/libespnow.a | Bin 49742 -> 49026 bytes tools/sdk/esp32/lib/libexpat.a | Bin 1852110 -> 2200580 bytes tools/sdk/esp32/lib/libfatfs.a | Bin 958408 -> 954596 bytes tools/sdk/esp32/lib/libfb_gfx.a | Bin 44072 -> 44260 bytes tools/sdk/esp32/lib/libfreemodbus.a | Bin 1934936 -> 1956380 bytes tools/sdk/esp32/lib/libfreertos.a | Bin 986828 -> 994352 bytes tools/sdk/esp32/lib/libhal.a | Bin 2045024 -> 1985074 bytes tools/sdk/esp32/lib/libheap.a | Bin 519862 -> 522410 bytes tools/sdk/esp32/lib/libjsmn.a | Bin 28730 -> 28550 bytes tools/sdk/esp32/lib/libjson.a | Bin 416064 -> 410224 bytes tools/sdk/esp32/lib/libjson_generator.a | Bin 60712 -> 60964 bytes tools/sdk/esp32/lib/libjson_parser.a | Bin 122520 -> 118276 bytes tools/sdk/esp32/lib/liblibsodium.a | Bin 4751960 -> 4781360 bytes tools/sdk/esp32/lib/liblog.a | Bin 96746 -> 100520 bytes tools/sdk/esp32/lib/liblwip.a | Bin 6005308 -> 6057776 bytes tools/sdk/esp32/lib/libmbedcrypto.a | Bin 3579620 -> 3603812 bytes tools/sdk/esp32/lib/libmbedtls.a | Bin 1192698 -> 1199634 bytes tools/sdk/esp32/lib/libmbedx509.a | Bin 672528 -> 675168 bytes tools/sdk/esp32/lib/libmdns.a | Bin 935534 -> 996546 bytes tools/sdk/esp32/lib/libmesh.a | Bin 1049200 -> 976112 bytes tools/sdk/esp32/lib/libmqtt.a | Bin 434032 -> 436308 bytes tools/sdk/esp32/lib/libnet80211.a | Bin 1023570 -> 1040838 bytes tools/sdk/esp32/lib/libnewlib.a | Bin 377380 -> 403234 bytes tools/sdk/esp32/lib/libnghttp.a | Bin 2073656 -> 2084000 bytes tools/sdk/esp32/lib/libnvs_flash.a | Bin 1773410 -> 1779190 bytes tools/sdk/esp32/lib/libopenssl.a | Bin 441442 -> 456294 bytes tools/sdk/esp32/lib/libperfmon.a | Bin 69144 -> 70320 bytes tools/sdk/esp32/lib/libpp.a | Bin 530360 -> 523710 bytes tools/sdk/esp32/lib/libprotobuf-c.a | Bin 417720 -> 420468 bytes tools/sdk/esp32/lib/libprotocomm.a | Bin 623750 -> 629894 bytes tools/sdk/esp32/lib/libpthread.a | Bin 195250 -> 197562 bytes tools/sdk/esp32/lib/libqrcode.a | Bin 204154 -> 204694 bytes tools/sdk/esp32/lib/libsdmmc.a | Bin 446618 -> 450262 bytes tools/sdk/esp32/lib/libsmartconfig.a | Bin 198830 -> 186138 bytes tools/sdk/esp32/lib/libsoc.a | Bin 507532 -> 514764 bytes tools/sdk/esp32/lib/libspi_flash.a | Bin 1098490 -> 1124400 bytes tools/sdk/esp32/lib/libspiffs.a | Bin 792874 -> 796502 bytes tools/sdk/esp32/lib/libtcp_transport.a | Bin 385554 -> 380948 bytes tools/sdk/esp32/lib/libtcpip_adapter.a | Bin 173288 -> 174148 bytes tools/sdk/esp32/lib/libulp.a | Bin 95162 -> 96158 bytes tools/sdk/esp32/lib/libunity.a | Bin 263550 -> 264150 bytes tools/sdk/esp32/lib/libvfs.a | Bin 497588 -> 503752 bytes tools/sdk/esp32/lib/libwapi.a | Bin 49130 -> 52690 bytes tools/sdk/esp32/lib/libwear_levelling.a | Bin 344972 -> 347996 bytes tools/sdk/esp32/lib/libwifi_provisioning.a | Bin 810850 -> 823414 bytes tools/sdk/esp32/lib/libwpa_supplicant.a | Bin 5299580 -> 5149398 bytes tools/sdk/esp32/lib/libws2812_led.a | Bin 11354 -> 11662 bytes tools/sdk/esp32/lib/libxtensa.a | Bin 52252 -> 53300 bytes tools/sdk/esp32/sdkconfig | 57 +- tools/sdk/esp32c3/bin/bootloader_dio_40m.bin | Bin 17856 -> 17824 bytes tools/sdk/esp32c3/bin/bootloader_dio_80m.bin | Bin 17856 -> 17824 bytes tools/sdk/esp32c3/bin/bootloader_dout_40m.bin | Bin 17856 -> 17824 bytes tools/sdk/esp32c3/bin/bootloader_dout_80m.bin | Bin 17856 -> 17824 bytes tools/sdk/esp32c3/bin/bootloader_qio_40m.bin | Bin 18864 -> 18848 bytes tools/sdk/esp32c3/bin/bootloader_qio_80m.bin | Bin 18864 -> 18848 bytes tools/sdk/esp32c3/bin/bootloader_qout_40m.bin | Bin 18864 -> 18848 bytes tools/sdk/esp32c3/bin/bootloader_qout_80m.bin | Bin 18864 -> 18848 bytes .../include/app_trace/include/esp_app_trace.h | 7 +- .../app_trace/include/esp_app_trace_util.h | 41 +- .../app_trace/include/esp_sysview_trace.h | 4 +- .../include/bootloader_common.h | 2 + .../include/esp_app_format.h | 3 +- .../include/esp_flash_encrypt.h | 34 +- .../include/esp_secure_boot.h | 33 +- .../api/include/api/esp_blufi_api.h | 20 +- .../btc/profile/esp/blufi/include/blufi_int.h | 202 +++ .../btc/profile/esp/blufi/include/esp_blufi.h | 77 + .../btc/profile/esp/include/btc_blufi_prf.h | 111 ++ .../bt/include/esp32c3/include/esp_bt.h | 19 +- tools/sdk/esp32c3/include/config/sdkconfig.h | 15 +- .../sdk/esp32c3/include/console/esp_console.h | 38 + .../include/console/linenoise/linenoise.h | 1 + .../driver/include/driver/adc2_wifi_private.h | 2 +- .../driver/include/driver/adc_common.h | 20 +- .../driver/include/driver/dedic_gpio.h | 8 +- .../include/driver/include/driver/gpio.h | 8 +- .../include/driver/include/driver/i2c.h | 367 ++-- .../include/driver/include/driver/mcpwm.h | 70 +- .../driver/include/driver/sdio_slave.h | 27 +- .../driver/include/driver/spi_common.h | 2 + .../driver/include/driver/usb_serial_jtag.h | 93 ++ .../include/efuse/esp32c3/include/esp_efuse.h | 17 + .../esp32c3/include/efuse/include/esp_efuse.h | 170 +- .../include/esp_common/include/esp_err.h | 2 + .../include/esp_eth/include/esp_eth_com.h | 34 +- .../esp_hw_support/include/esp_chip_info.h | 2 + .../include/esp_hw_support/include/esp_mac.h | 3 + .../esp_hw_support/include/soc/esp32h2/clk.h | 16 + .../include/esp_hw_support/include/soc_log.h | 2 + .../esp_netif/include/esp_netif_ip_addr.h | 27 + .../esp_netif/include/esp_netif_slip.h | 3 + .../include/esp_pm/include/esp32h2/pm.h | 42 + .../esp32c3/include/esp_pm/include/esp_pm.h | 2 + .../include/esp_rom/esp32c3/esp_rom_caps.h | 11 +- .../esp_rom/include/esp32c3/rom/libc_stubs.h | 15 +- .../include/esp_rom/include/esp32h2/rom/aes.h | 58 + .../include/esp32h2/rom/apb_backup_dma.h | 25 + .../esp_rom/include/esp32h2/rom/bigint.h | 43 + .../esp_rom/include/esp32h2/rom/cache.h | 796 +++++++++ .../include/esp_rom/include/esp32h2/rom/crc.h | 127 ++ .../include/esp32h2/rom/digital_signature.h | 150 ++ .../esp_rom/include/esp32h2/rom/efuse.h | 392 +++++ .../esp_rom/include/esp32h2/rom/esp_flash.h | 54 + .../esp_rom/include/esp32h2/rom/ets_sys.h | 563 +++++++ .../esp_rom/include/esp32h2/rom/gpio.h | 311 ++++ .../esp_rom/include/esp32h2/rom/hmac.h | 63 + .../esp_rom/include/esp32h2/rom/libc_stubs.h | 104 ++ .../esp_rom/include/esp32h2/rom/lldesc.h | 176 ++ .../esp_rom/include/esp32h2/rom/md5_hash.h | 38 + .../esp_rom/include/esp32h2/rom/miniz.h | 760 +++++++++ .../esp_rom/include/esp32h2/rom/newlib.h | 50 + .../esp_rom/include/esp32h2/rom/rom_layout.h | 86 + .../esp_rom/include/esp32h2/rom/rsa_pss.h | 46 + .../include/esp_rom/include/esp32h2/rom/rtc.h | 239 +++ .../esp_rom/include/esp32h2/rom/secure_boot.h | 131 ++ .../include/esp_rom/include/esp32h2/rom/sha.h | 61 + .../esp_rom/include/esp32h2/rom/spi_flash.h | 570 +++++++ .../esp_rom/include/esp32h2/rom/tjpgd.h | 99 ++ .../esp_rom/include/esp32h2/rom/uart.h | 440 +++++ .../esp_rom/include/esp32s3/rom/libc_stubs.h | 14 +- .../esp_rom/include/esp32s3/rom/opi_flash.h | 157 +- .../include/esp_rom/include/esp32s3/rom/rtc.h | 4 +- .../esp_rom/include/esp32s3/rom/spi_flash.h | 62 +- .../include/esp_serial_slave_link/essl.h | 54 +- .../include/esp_serial_slave_link/essl_sdio.h | 26 +- .../include/essl_spi/esp32h2_defs.h | 38 + .../include/esp_private/crosscore_int.h | 2 +- .../port/soc/esp32h2/cache_err_int.h | 2 + .../include/esp_timer/include/esp_timer.h | 19 + .../include/esp_websocket_client.h | 6 +- .../include/esp_wifi/include/esp_wifi.h | 89 +- .../include/expat/expat/expat/lib/ascii.h | 7 +- .../include/expat/expat/expat/lib/asciitab.h | 66 +- .../include/expat/expat/expat/lib/expat.h | 317 ++-- .../expat/expat/expat/lib/expat_external.h | 97 +- .../include/expat/expat/expat/lib/iasciitab.h | 66 +- .../include/expat/expat/expat/lib/internal.h | 87 +- .../include/expat/expat/expat/lib/latin1tab.h | 66 +- .../include/expat/expat/expat/lib/nametab.h | 246 ++- .../include/expat/expat/expat/lib/siphash.h | 429 ++--- .../include/expat/expat/expat/lib/utf8tab.h | 66 +- .../include/expat/expat/expat/lib/winconfig.h | 26 +- .../include/expat/expat/expat/lib/xmlrole.h | 18 +- .../include/expat/expat/expat/lib/xmltok.h | 218 ++- .../expat/expat/expat/lib/xmltok_impl.h | 75 +- .../riscv/include/freertos/FreeRTOSConfig.h | 11 + .../include/hal/esp32c3/include/hal/cpu_ll.h | 7 + .../include/hal/esp32c3/include/hal/i2c_ll.h | 2 +- .../hal/esp32c3/include/hal/memprot_ll.h | 5 +- .../include/hal/esp32c3/include/hal/rmt_ll.h | 35 +- .../include/hal/spi_flash_encrypted_ll.h | 8 +- .../include/hal/esp32c3/include/hal/spi_ll.h | 15 +- .../hal/esp32c3/include/hal/systimer_ll.h | 4 +- .../hal/esp32c3/include/hal/timer_ll.h | 5 +- .../include/hal/esp32c3/include/hal/twai_ll.h | 13 +- .../include/hal/esp32c3/include/hal/uart_ll.h | 2 +- .../esp32c3/include/hal/usb_serial_jtag_ll.h | 17 +- .../esp32c3/include/hal/include/hal/adc_hal.h | 20 +- .../include/hal/include/hal/adc_types.h | 14 +- .../esp32c3/include/hal/include/hal/dac_hal.h | 2 - .../include/hal/include/hal/emac_hal.h | 245 +++ .../include/hal/include/hal/eth_types.h | 65 + .../include/hal/include/hal/gpio_types.h | 49 +- .../esp32c3/include/hal/include/hal/i2c_hal.h | 2 +- .../include/hal/include/hal/mcpwm_hal.h | 297 +--- .../include/hal/include/hal/mcpwm_types.h | 87 +- .../include/hal/include/hal/rmt_types.h | 4 +- .../esp32c3/include/hal/include/hal/rtc_hal.h | 2 +- .../include/hal/include/hal/rtc_io_hal.h | 2 +- .../include/hal/include/hal/sha_types.h | 3 + .../include/hal/include/hal/usbh_hal.h | 18 +- .../hal/platform_port/include/hal/assert.h | 43 + .../hal/platform_port/include/hal/check.h | 17 + .../hal/platform_port/include/hal/log.h} | 11 +- .../hal/platform_port/include/hal/misc.h | 18 + .../include/esp32/idf_performance_target.h | 69 +- .../include/esp32c3/idf_performance_target.h | 67 +- .../include/esp32h2/idf_performance_target.h | 70 + .../include/esp32s2/idf_performance_target.h | 67 +- .../include/esp32s3/idf_performance_target.h | 64 +- .../idf_test/include/idf_performance.h | 48 - .../sdk/esp32c3/include/log/include/esp_log.h | 12 + .../lwip/port/esp32/include/lwipopts.h | 9 + tools/sdk/esp32c3/include/mdns/include/mdns.h | 280 ++++ .../mqtt/esp-mqtt/include/mqtt_client.h | 19 +- .../include/mqtt_supported_features.h | 5 + .../include/newlib/platform_include/assert.h | 2 +- .../include/soc/esp32c3/include/soc/soc.h | 3 +- .../soc/esp32c3/include/soc/soc_caps.h | 5 +- .../esp32c3/include/soc/usb_serial_jtag_reg.h | 40 +- .../include/soc/usb_serial_jtag_struct.h | 3 +- .../esp32c3/include/soc/include/soc/lldesc.h | 2 + .../include/soc/include/soc/rmt_periph.h | 14 +- .../spi_flash/include/esp_flash_spi_init.h | 1 - .../spi_flash/include/spi_flash_chip_driver.h | 13 + .../include/spi_flash_chip_generic.h | 2 +- .../spi_flash/include/spi_flash_private.h | 67 + .../esp32c3/include/vfs/include/esp_vfs_dev.h | 14 + .../include/wifi_provisioning/manager.h | 13 + .../wpa_supplicant/include/utils/wpa_debug.h | 1 + .../port/include/supplicant_opt.h | 1 + tools/sdk/esp32c3/ld/esp32c3.peripherals.ld | 1 - tools/sdk/esp32c3/ld/esp32c3.project.ld | 16 +- tools/sdk/esp32c3/ld/esp32c3.rom.ld | 4 +- tools/sdk/esp32c3/ld/libbtdm_app.a | Bin 287842 -> 306188 bytes tools/sdk/esp32c3/lib/libapp_trace.a | Bin 132604 -> 220256 bytes tools/sdk/esp32c3/lib/libapp_update.a | Bin 188576 -> 189392 bytes tools/sdk/esp32c3/lib/libasio.a | Bin 3066232 -> 3067496 bytes tools/sdk/esp32c3/lib/libbootloader_support.a | Bin 776850 -> 789328 bytes tools/sdk/esp32c3/lib/libbt.a | Bin 21502998 -> 21683418 bytes tools/sdk/esp32c3/lib/libcbor.a | Bin 770078 -> 771050 bytes tools/sdk/esp32c3/lib/libcmock.a | Bin 37064 -> 37224 bytes tools/sdk/esp32c3/lib/libcoap.a | Bin 2241222 -> 2248042 bytes tools/sdk/esp32c3/lib/libcoexist.a | Bin 70996 -> 69384 bytes tools/sdk/esp32c3/lib/libconsole.a | Bin 832056 -> 839676 bytes tools/sdk/esp32c3/lib/libcore.a | Bin 6418 -> 3972 bytes tools/sdk/esp32c3/lib/libcxx.a | Bin 107168 -> 107512 bytes tools/sdk/esp32c3/lib/libdriver.a | Bin 5100620 -> 5226168 bytes tools/sdk/esp32c3/lib/libefuse.a | Bin 466746 -> 488082 bytes tools/sdk/esp32c3/lib/libesp-tls.a | Bin 450188 -> 454252 bytes tools/sdk/esp32c3/lib/libesp32c3.a | Bin 272528 -> 276048 bytes tools/sdk/esp32c3/lib/libesp_adc_cal.a | Bin 139788 -> 140264 bytes tools/sdk/esp32c3/lib/libesp_common.a | Bin 111226 -> 68990 bytes tools/sdk/esp32c3/lib/libesp_eth.a | Bin 233084 -> 234884 bytes tools/sdk/esp32c3/lib/libesp_event.a | Bin 360380 -> 366036 bytes tools/sdk/esp32c3/lib/libesp_gdbstub.a | Bin 218812 -> 219796 bytes tools/sdk/esp32c3/lib/libesp_hid.a | Bin 650998 -> 654590 bytes tools/sdk/esp32c3/lib/libesp_http_client.a | Bin 461508 -> 462928 bytes tools/sdk/esp32c3/lib/libesp_http_server.a | Bin 710310 -> 713662 bytes tools/sdk/esp32c3/lib/libesp_https_ota.a | Bin 138568 -> 139252 bytes tools/sdk/esp32c3/lib/libesp_https_server.a | Bin 100580 -> 101296 bytes tools/sdk/esp32c3/lib/libesp_hw_support.a | Bin 1039000 -> 1046060 bytes tools/sdk/esp32c3/lib/libesp_ipc.a | Bin 33164 -> 33564 bytes tools/sdk/esp32c3/lib/libesp_lcd.a | Bin 534098 -> 537554 bytes tools/sdk/esp32c3/lib/libesp_littlefs.a | Bin 1015786 -> 1016590 bytes tools/sdk/esp32c3/lib/libesp_local_ctrl.a | Bin 413184 -> 415524 bytes tools/sdk/esp32c3/lib/libesp_netif.a | Bin 699238 -> 599636 bytes tools/sdk/esp32c3/lib/libesp_phy.a | Bin 98582 -> 99462 bytes tools/sdk/esp32c3/lib/libesp_pm.a | Bin 173204 -> 175100 bytes tools/sdk/esp32c3/lib/libesp_ringbuf.a | Bin 250402 -> 250718 bytes tools/sdk/esp32c3/lib/libesp_rom.a | Bin 39788 -> 40164 bytes .../esp32c3/lib/libesp_serial_slave_link.a | Bin 269626 -> 270670 bytes tools/sdk/esp32c3/lib/libesp_system.a | Bin 1265108 -> 1283100 bytes tools/sdk/esp32c3/lib/libesp_timer.a | Bin 195728 -> 202104 bytes .../sdk/esp32c3/lib/libesp_websocket_client.a | Bin 225062 -> 225942 bytes tools/sdk/esp32c3/lib/libesp_wifi.a | Bin 598486 -> 605454 bytes tools/sdk/esp32c3/lib/libespcoredump.a | Bin 209192 -> 211440 bytes tools/sdk/esp32c3/lib/libespnow.a | Bin 54446 -> 51638 bytes tools/sdk/esp32c3/lib/libexpat.a | Bin 2118626 -> 2254616 bytes tools/sdk/esp32c3/lib/libfatfs.a | Bin 1130936 -> 1135400 bytes tools/sdk/esp32c3/lib/libfb_gfx.a | Bin 44168 -> 44208 bytes tools/sdk/esp32c3/lib/libfreemodbus.a | Bin 2450066 -> 2463742 bytes tools/sdk/esp32c3/lib/libfreertos.a | Bin 1056222 -> 1059294 bytes tools/sdk/esp32c3/lib/libhal.a | Bin 2408686 -> 2413954 bytes tools/sdk/esp32c3/lib/libheap.a | Bin 621540 -> 622680 bytes tools/sdk/esp32c3/lib/libjsmn.a | Bin 39434 -> 38606 bytes tools/sdk/esp32c3/lib/libjson.a | Bin 554484 -> 552280 bytes tools/sdk/esp32c3/lib/liblibsodium.a | Bin 5096280 -> 5111900 bytes tools/sdk/esp32c3/lib/liblog.a | Bin 121090 -> 125200 bytes tools/sdk/esp32c3/lib/liblwip.a | Bin 5844334 -> 5875726 bytes tools/sdk/esp32c3/lib/libmbedcrypto.a | Bin 4804830 -> 4818150 bytes tools/sdk/esp32c3/lib/libmbedtls.a | Bin 1605786 -> 1608806 bytes tools/sdk/esp32c3/lib/libmbedx509.a | Bin 893860 -> 896184 bytes tools/sdk/esp32c3/lib/libmdns.a | Bin 1346310 -> 1439098 bytes tools/sdk/esp32c3/lib/libmesh.a | Bin 1059472 -> 1004164 bytes tools/sdk/esp32c3/lib/libmqtt.a | Bin 593976 -> 593624 bytes tools/sdk/esp32c3/lib/libnet80211.a | Bin 877914 -> 909670 bytes tools/sdk/esp32c3/lib/libnewlib.a | Bin 489362 -> 492082 bytes tools/sdk/esp32c3/lib/libnghttp.a | Bin 2810668 -> 2819268 bytes tools/sdk/esp32c3/lib/libnvs_flash.a | Bin 1910638 -> 1917430 bytes tools/sdk/esp32c3/lib/libopenssl.a | Bin 686982 -> 664302 bytes tools/sdk/esp32c3/lib/libpp.a | Bin 430828 -> 420606 bytes tools/sdk/esp32c3/lib/libprotobuf-c.a | Bin 666324 -> 683144 bytes tools/sdk/esp32c3/lib/libprotocomm.a | Bin 805374 -> 809278 bytes tools/sdk/esp32c3/lib/libpthread.a | Bin 234346 -> 235634 bytes tools/sdk/esp32c3/lib/libriscv.a | Bin 45160 -> 45516 bytes tools/sdk/esp32c3/lib/libsdmmc.a | Bin 556574 -> 558910 bytes tools/sdk/esp32c3/lib/libsmartconfig.a | Bin 201906 -> 192002 bytes tools/sdk/esp32c3/lib/libsoc.a | Bin 425118 -> 428206 bytes tools/sdk/esp32c3/lib/libspi_flash.a | Bin 1298200 -> 1320974 bytes tools/sdk/esp32c3/lib/libspiffs.a | Bin 1124494 -> 1126766 bytes tools/sdk/esp32c3/lib/libtcp_transport.a | Bin 553730 -> 546550 bytes tools/sdk/esp32c3/lib/libtcpip_adapter.a | Bin 215852 -> 216496 bytes tools/sdk/esp32c3/lib/libunity.a | Bin 310186 -> 311034 bytes tools/sdk/esp32c3/lib/libvfs.a | Bin 622772 -> 618556 bytes tools/sdk/esp32c3/lib/libwapi.a | Bin 43022 -> 46094 bytes tools/sdk/esp32c3/lib/libwear_levelling.a | Bin 469496 -> 471496 bytes tools/sdk/esp32c3/lib/libwifi_provisioning.a | Bin 1099474 -> 1111958 bytes tools/sdk/esp32c3/lib/libwpa_supplicant.a | Bin 7682496 -> 7458498 bytes tools/sdk/esp32c3/sdkconfig | 35 +- tools/sdk/esp32s2/bin/bootloader_dio_40m.bin | Bin 12576 -> 12608 bytes tools/sdk/esp32s2/bin/bootloader_dio_80m.bin | Bin 12576 -> 12608 bytes tools/sdk/esp32s2/bin/bootloader_dout_40m.bin | Bin 12576 -> 12608 bytes tools/sdk/esp32s2/bin/bootloader_dout_80m.bin | Bin 12576 -> 12608 bytes tools/sdk/esp32s2/bin/bootloader_qio_40m.bin | Bin 13632 -> 13648 bytes tools/sdk/esp32s2/bin/bootloader_qio_80m.bin | Bin 13632 -> 13648 bytes tools/sdk/esp32s2/bin/bootloader_qout_40m.bin | Bin 13632 -> 13648 bytes tools/sdk/esp32s2/bin/bootloader_qout_80m.bin | Bin 13632 -> 13648 bytes .../include/app_trace/include/esp_app_trace.h | 7 +- .../app_trace/include/esp_app_trace_util.h | 41 +- .../app_trace/include/esp_sysview_trace.h | 4 +- .../tinyusb/src/class/audio/audio.h | 29 +- .../tinyusb/src/class/cdc/cdc_host.h | 10 +- .../tinyusb/src/class/hid/hid.h | 79 +- .../tinyusb/src/class/hid/hid_device.h | 12 +- .../tinyusb/src/class/hid/hid_host.h | 17 +- .../tinyusb/src/class/msc/msc_host.h | 20 +- .../tinyusb/src/common/tusb_common.h | 26 +- .../tinyusb/src/common/tusb_compiler.h | 16 +- .../tinyusb/src/common/tusb_fifo.h | 4 +- .../tinyusb/src/common/tusb_verify.h | 2 +- .../arduino_tinyusb/tinyusb/src/device/dcd.h | 2 +- .../arduino_tinyusb/tinyusb/src/device/usbd.h | 5 + .../tinyusb/src/device/usbd_pvt.h | 2 +- .../arduino_tinyusb/tinyusb/src/host/hcd.h | 3 - .../arduino_tinyusb/tinyusb/src/host/hub.h | 10 +- .../arduino_tinyusb/tinyusb/src/host/usbh.h | 50 +- .../tinyusb/src/host/usbh_classdriver.h | 83 + .../tinyusb/src/host/usbh_hcd.h | 6 - .../portable/raspberrypi/rp2040/rp2040_usb.h | 63 +- .../arduino_tinyusb/tinyusb/src/tusb_option.h | 6 +- .../include/bootloader_common.h | 2 + .../include/esp_app_format.h | 3 +- .../include/esp_flash_encrypt.h | 34 +- .../include/esp_secure_boot.h | 33 +- tools/sdk/esp32s2/include/config/sdkconfig.h | 24 +- .../sdk/esp32s2/include/console/esp_console.h | 38 + .../include/console/linenoise/linenoise.h | 1 + .../driver/include/driver/adc2_wifi_private.h | 2 +- .../driver/include/driver/adc_common.h | 20 +- .../driver/include/driver/dedic_gpio.h | 8 +- .../include/driver/include/driver/gpio.h | 8 +- .../include/driver/include/driver/i2c.h | 367 ++-- .../include/driver/include/driver/mcpwm.h | 70 +- .../driver/include/driver/sdio_slave.h | 27 +- .../driver/include/driver/spi_common.h | 2 + .../driver/include/driver/usb_serial_jtag.h | 93 ++ .../include/efuse/esp32s2/include/esp_efuse.h | 19 + .../esp32s2/include/efuse/include/esp_efuse.h | 170 +- .../modules/common/include/dsp_common.h | 10 +- .../modules/common/include/dsp_tests.h | 8 + .../modules/common/include/dsp_types.h | 39 + .../esp-dsp/modules/common/include/esp_dsp.h | 3 + .../modules/conv/include/dsps_conv_platform.h | 4 + .../modules/dotprod/include/dspi_dotprod.h | 171 ++ .../dotprod/include/dspi_dotprod_platform.h | 16 + .../modules/dotprod/include/dsps_dotprod.h | 15 +- .../dotprod/include/dsps_dotprod_platform.h | 11 + .../esp-dsp/modules/fft/include/dsps_fft2r.h | 20 +- .../modules/fft/include/dsps_fft2r_platform.h | 8 + .../esp-dsp/modules/fft/include/dsps_fft4r.h | 4 + .../modules/fft/include/dsps_fft4r_platform.h | 4 + .../esp-dsp/modules/fir/include/dsps_fir.h | 1 + .../modules/fir/include/dsps_fir_platform.h | 4 + .../esp-dsp/modules/iir/include/dsps_biquad.h | 3 +- .../iir/include/dsps_biquad_platform.h | 8 +- .../math/add/include/dsps_add_platform.h | 4 + .../math/addc/include/dsps_addc_platform.h | 4 + .../math/mul/include/dsps_mul_platform.h | 4 + .../math/mulc/include/dsps_mulc_platform.h | 4 + .../math/sub/include/dsps_sub_platform.h | 4 + .../modules/matrix/include/dspm_mult.h | 82 +- .../matrix/include/dspm_mult_platform.h | 9 +- .../esp32-camera/driver/include/sensor.h | 49 +- .../include/esp_common/include/esp_err.h | 2 + .../include/esp_eth/include/esp_eth_com.h | 34 +- .../esp_hw_support/include/esp_chip_info.h | 2 + .../include/esp_hw_support/include/esp_mac.h | 3 + .../esp_hw_support/include/soc/esp32h2/clk.h | 16 + .../include/esp_hw_support/include/soc_log.h | 2 + .../esp_netif/include/esp_netif_ip_addr.h | 27 + .../esp_netif/include/esp_netif_slip.h | 3 + .../include/esp_pm/include/esp32h2/pm.h | 42 + .../esp32s2/include/esp_pm/include/esp_pm.h | 2 + .../esp_rom/include/esp32c3/rom/libc_stubs.h | 15 +- .../include/esp_rom/include/esp32h2/rom/aes.h | 58 + .../include/esp32h2/rom/apb_backup_dma.h | 25 + .../esp_rom/include/esp32h2/rom/bigint.h | 43 + .../esp_rom/include/esp32h2/rom/cache.h | 796 +++++++++ .../include/esp_rom/include/esp32h2/rom/crc.h | 127 ++ .../include/esp32h2/rom/digital_signature.h | 150 ++ .../esp_rom/include/esp32h2/rom/efuse.h | 392 +++++ .../esp_rom/include/esp32h2/rom/esp_flash.h | 54 + .../esp_rom/include/esp32h2/rom/ets_sys.h | 563 +++++++ .../esp_rom/include/esp32h2/rom/gpio.h | 311 ++++ .../esp_rom/include/esp32h2/rom/hmac.h | 63 + .../esp_rom/include/esp32h2/rom/libc_stubs.h | 104 ++ .../esp_rom/include/esp32h2/rom/lldesc.h | 176 ++ .../esp_rom/include/esp32h2/rom/md5_hash.h | 38 + .../esp_rom/include/esp32h2/rom/miniz.h | 760 +++++++++ .../esp_rom/include/esp32h2/rom/newlib.h | 50 + .../esp_rom/include/esp32h2/rom/rom_layout.h | 86 + .../esp_rom/include/esp32h2/rom/rsa_pss.h | 46 + .../include/esp_rom/include/esp32h2/rom/rtc.h | 239 +++ .../esp_rom/include/esp32h2/rom/secure_boot.h | 131 ++ .../include/esp_rom/include/esp32h2/rom/sha.h | 61 + .../esp_rom/include/esp32h2/rom/spi_flash.h | 570 +++++++ .../esp_rom/include/esp32h2/rom/tjpgd.h | 99 ++ .../esp_rom/include/esp32h2/rom/uart.h | 440 +++++ .../esp_rom/include/esp32s3/rom/libc_stubs.h | 14 +- .../esp_rom/include/esp32s3/rom/opi_flash.h | 157 +- .../include/esp_rom/include/esp32s3/rom/rtc.h | 4 +- .../esp_rom/include/esp32s3/rom/spi_flash.h | 62 +- .../include/esp_serial_slave_link/essl.h | 54 +- .../include/esp_serial_slave_link/essl_sdio.h | 26 +- .../include/essl_spi/esp32h2_defs.h | 38 + .../include/esp_private/crosscore_int.h | 2 +- .../port/soc/esp32h2/cache_err_int.h | 2 + .../include/esp_timer/include/esp_timer.h | 19 + .../include/esp_websocket_client.h | 6 +- .../include/esp_wifi/include/esp_wifi.h | 89 +- .../include/expat/expat/expat/lib/ascii.h | 7 +- .../include/expat/expat/expat/lib/asciitab.h | 66 +- .../include/expat/expat/expat/lib/expat.h | 317 ++-- .../expat/expat/expat/lib/expat_external.h | 97 +- .../include/expat/expat/expat/lib/iasciitab.h | 66 +- .../include/expat/expat/expat/lib/internal.h | 87 +- .../include/expat/expat/expat/lib/latin1tab.h | 66 +- .../include/expat/expat/expat/lib/nametab.h | 246 ++- .../include/expat/expat/expat/lib/siphash.h | 429 ++--- .../include/expat/expat/expat/lib/utf8tab.h | 66 +- .../include/expat/expat/expat/lib/winconfig.h | 26 +- .../include/expat/expat/expat/lib/xmlrole.h | 18 +- .../include/expat/expat/expat/lib/xmltok.h | 218 ++- .../expat/expat/expat/lib/xmltok_impl.h | 75 +- .../xtensa/include/freertos/FreeRTOSConfig.h | 9 + .../include/hal/esp32s2/include/hal/i2c_ll.h | 2 +- .../hal/esp32s2/include/hal/memprot_ll.h | 32 +- .../hal/esp32s2/include/hal/memprot_peri_ll.h | 8 +- .../include/hal/esp32s2/include/hal/rmt_ll.h | 39 +- .../include/hal/spi_flash_encrypted_ll.h | 8 +- .../include/hal/esp32s2/include/hal/spi_ll.h | 17 +- .../hal/esp32s2/include/hal/systimer_ll.h | 4 +- .../hal/esp32s2/include/hal/timer_ll.h | 5 +- .../include/hal/esp32s2/include/hal/twai_ll.h | 13 +- .../include/hal/esp32s2/include/hal/uart_ll.h | 2 +- .../esp32s2/include/hal/include/hal/adc_hal.h | 20 +- .../include/hal/include/hal/adc_types.h | 14 +- .../esp32s2/include/hal/include/hal/dac_hal.h | 2 - .../include/hal/include/hal/emac_hal.h | 245 +++ .../include/hal/include/hal/eth_types.h | 65 + .../include/hal/include/hal/gpio_types.h | 49 +- .../esp32s2/include/hal/include/hal/i2c_hal.h | 2 +- .../include/hal/include/hal/mcpwm_hal.h | 297 +--- .../include/hal/include/hal/mcpwm_types.h | 87 +- .../include/hal/include/hal/rmt_types.h | 4 +- .../esp32s2/include/hal/include/hal/rtc_hal.h | 2 +- .../include/hal/include/hal/rtc_io_hal.h | 2 +- .../include/hal/include/hal/sha_types.h | 3 + .../include/hal/include/hal/usbh_hal.h | 18 +- .../hal/platform_port/include/hal/assert.h | 43 + .../hal/platform_port/include/hal/check.h | 17 + .../hal/platform_port/include/hal/log.h} | 11 +- .../hal/platform_port/include/hal/misc.h | 18 + .../include/esp32/idf_performance_target.h | 69 +- .../include/esp32c3/idf_performance_target.h | 67 +- .../include/esp32h2/idf_performance_target.h | 70 + .../include/esp32s2/idf_performance_target.h | 67 +- .../include/esp32s3/idf_performance_target.h | 64 +- .../idf_test/include/idf_performance.h | 48 - .../sdk/esp32s2/include/log/include/esp_log.h | 12 + .../lwip/port/esp32/include/lwipopts.h | 9 + tools/sdk/esp32s2/include/mdns/include/mdns.h | 280 ++++ .../mqtt/esp-mqtt/include/mqtt_client.h | 19 +- .../include/mqtt_supported_features.h | 5 + .../include/newlib/platform_include/assert.h | 2 +- .../soc/esp32s2/include/soc/ledc_struct.h | 6 +- .../soc/esp32s2/include/soc/rmt_struct.h | 11 - .../soc/esp32s2/include/soc/soc_caps.h | 2 +- .../esp32s2/include/soc/include/soc/lldesc.h | 2 + .../include/soc/include/soc/rmt_periph.h | 14 +- .../spi_flash/include/esp_flash_spi_init.h | 1 - .../spi_flash/include/spi_flash_chip_driver.h | 13 + .../include/spi_flash_chip_generic.h | 2 +- .../spi_flash/include/spi_flash_private.h | 67 + .../esp32s2/include/vfs/include/esp_vfs_dev.h | 14 + .../include/wifi_provisioning/manager.h | 13 + .../wpa_supplicant/include/utils/wpa_debug.h | 1 + .../port/include/supplicant_opt.h | 1 + tools/sdk/esp32s2/ld/esp32s2.project.ld | 14 +- tools/sdk/esp32s2/lib/libapp_trace.a | Bin 122740 -> 178420 bytes tools/sdk/esp32s2/lib/libapp_update.a | Bin 141284 -> 142436 bytes tools/sdk/esp32s2/lib/libarduino_tinyusb.a | Bin 697312 -> 772356 bytes tools/sdk/esp32s2/lib/libasio.a | Bin 2925132 -> 2926272 bytes tools/sdk/esp32s2/lib/libbootloader_support.a | Bin 636290 -> 649260 bytes tools/sdk/esp32s2/lib/libcbor.a | Bin 510990 -> 512842 bytes tools/sdk/esp32s2/lib/libcmock.a | Bin 29120 -> 29364 bytes tools/sdk/esp32s2/lib/libcoap.a | Bin 1680470 -> 1690534 bytes tools/sdk/esp32s2/lib/libcoexist.a | Bin 70988 -> 67520 bytes tools/sdk/esp32s2/lib/libconsole.a | Bin 570612 -> 573316 bytes tools/sdk/esp32s2/lib/libcore.a | Bin 6466 -> 4540 bytes tools/sdk/esp32s2/lib/libcxx.a | Bin 61258 -> 62082 bytes tools/sdk/esp32s2/lib/libdriver.a | Bin 4591980 -> 4662522 bytes tools/sdk/esp32s2/lib/libefuse.a | Bin 336040 -> 367732 bytes tools/sdk/esp32s2/lib/libesp-dsp.a | Bin 1121014 -> 1360962 bytes tools/sdk/esp32s2/lib/libesp-face.a | Bin 1022262 -> 1024222 bytes tools/sdk/esp32s2/lib/libesp-tls.a | Bin 331368 -> 336144 bytes tools/sdk/esp32s2/lib/libesp32-camera.a | Bin 1594062 -> 1881418 bytes tools/sdk/esp32s2/lib/libesp32s2.a | Bin 491854 -> 474470 bytes tools/sdk/esp32s2/lib/libesp_adc_cal.a | Bin 115788 -> 116452 bytes tools/sdk/esp32s2/lib/libesp_common.a | Bin 99962 -> 55566 bytes tools/sdk/esp32s2/lib/libesp_eth.a | Bin 799748 -> 807220 bytes tools/sdk/esp32s2/lib/libesp_event.a | Bin 291892 -> 297744 bytes tools/sdk/esp32s2/lib/libesp_gdbstub.a | Bin 188616 -> 190452 bytes tools/sdk/esp32s2/lib/libesp_hid.a | Bin 173718 -> 174382 bytes tools/sdk/esp32s2/lib/libesp_http_client.a | Bin 331316 -> 333688 bytes tools/sdk/esp32s2/lib/libesp_http_server.a | Bin 484098 -> 542518 bytes tools/sdk/esp32s2/lib/libesp_https_ota.a | Bin 99300 -> 100200 bytes tools/sdk/esp32s2/lib/libesp_https_server.a | Bin 75768 -> 76708 bytes tools/sdk/esp32s2/lib/libesp_hw_support.a | Bin 982908 -> 994016 bytes tools/sdk/esp32s2/lib/libesp_ipc.a | Bin 31580 -> 32204 bytes tools/sdk/esp32s2/lib/libesp_lcd.a | Bin 381226 -> 387026 bytes tools/sdk/esp32s2/lib/libesp_littlefs.a | Bin 756194 -> 757550 bytes tools/sdk/esp32s2/lib/libesp_local_ctrl.a | Bin 270856 -> 273500 bytes tools/sdk/esp32s2/lib/libesp_netif.a | Bin 591598 -> 561236 bytes tools/sdk/esp32s2/lib/libesp_phy.a | Bin 73786 -> 74958 bytes tools/sdk/esp32s2/lib/libesp_pm.a | Bin 122696 -> 124684 bytes tools/sdk/esp32s2/lib/libesp_ringbuf.a | Bin 159022 -> 159606 bytes tools/sdk/esp32s2/lib/libesp_rom.a | Bin 59096 -> 54448 bytes .../esp32s2/lib/libesp_serial_slave_link.a | Bin 250782 -> 252506 bytes tools/sdk/esp32s2/lib/libesp_system.a | Bin 1236358 -> 1254690 bytes tools/sdk/esp32s2/lib/libesp_timer.a | Bin 166472 -> 172552 bytes .../sdk/esp32s2/lib/libesp_websocket_client.a | Bin 153106 -> 154214 bytes tools/sdk/esp32s2/lib/libesp_wifi.a | Bin 467536 -> 475484 bytes tools/sdk/esp32s2/lib/libespcoredump.a | Bin 198920 -> 202736 bytes tools/sdk/esp32s2/lib/libespnow.a | Bin 49542 -> 48818 bytes tools/sdk/esp32s2/lib/libexpat.a | Bin 1840914 -> 2192596 bytes tools/sdk/esp32s2/lib/libfatfs.a | Bin 1001764 -> 998284 bytes tools/sdk/esp32s2/lib/libfb_gfx.a | Bin 44548 -> 44736 bytes tools/sdk/esp32s2/lib/libfreemodbus.a | Bin 1918604 -> 1939956 bytes tools/sdk/esp32s2/lib/libfreertos.a | Bin 864018 -> 871554 bytes tools/sdk/esp32s2/lib/libhal.a | Bin 2452896 -> 2469200 bytes tools/sdk/esp32s2/lib/libheap.a | Bin 520410 -> 522998 bytes tools/sdk/esp32s2/lib/libjsmn.a | Bin 31566 -> 30378 bytes tools/sdk/esp32s2/lib/libjson.a | Bin 416108 -> 408760 bytes tools/sdk/esp32s2/lib/liblibsodium.a | Bin 4188252 -> 4216872 bytes tools/sdk/esp32s2/lib/liblog.a | Bin 95830 -> 99996 bytes tools/sdk/esp32s2/lib/liblwip.a | Bin 5994048 -> 6045580 bytes tools/sdk/esp32s2/lib/libmbedcrypto.a | Bin 3636296 -> 3661648 bytes tools/sdk/esp32s2/lib/libmbedtls.a | Bin 1194682 -> 1202214 bytes tools/sdk/esp32s2/lib/libmbedx509.a | Bin 672564 -> 675196 bytes tools/sdk/esp32s2/lib/libmdns.a | Bin 933050 -> 992938 bytes tools/sdk/esp32s2/lib/libmesh.a | Bin 1034980 -> 967324 bytes tools/sdk/esp32s2/lib/libmqtt.a | Bin 423680 -> 424780 bytes tools/sdk/esp32s2/lib/libnet80211.a | Bin 1043656 -> 1077156 bytes tools/sdk/esp32s2/lib/libnewlib.a | Bin 418858 -> 444278 bytes tools/sdk/esp32s2/lib/libnghttp.a | Bin 2079908 -> 2086164 bytes tools/sdk/esp32s2/lib/libnvs_flash.a | Bin 1767322 -> 1772986 bytes tools/sdk/esp32s2/lib/libopenssl.a | Bin 440186 -> 455046 bytes tools/sdk/esp32s2/lib/libperfmon.a | Bin 69404 -> 70576 bytes tools/sdk/esp32s2/lib/libpp.a | Bin 531512 -> 525350 bytes tools/sdk/esp32s2/lib/libprotobuf-c.a | Bin 420820 -> 422532 bytes tools/sdk/esp32s2/lib/libprotocomm.a | Bin 444232 -> 448804 bytes tools/sdk/esp32s2/lib/libpthread.a | Bin 195690 -> 198014 bytes tools/sdk/esp32s2/lib/libsdmmc.a | Bin 443838 -> 447486 bytes tools/sdk/esp32s2/lib/libsmartconfig.a | Bin 195898 -> 183662 bytes tools/sdk/esp32s2/lib/libsoc.a | Bin 534860 -> 541636 bytes tools/sdk/esp32s2/lib/libspi_flash.a | Bin 1045828 -> 1066258 bytes tools/sdk/esp32s2/lib/libspiffs.a | Bin 785458 -> 788858 bytes tools/sdk/esp32s2/lib/libtcp_transport.a | Bin 383658 -> 381498 bytes tools/sdk/esp32s2/lib/libtcpip_adapter.a | Bin 173008 -> 173868 bytes tools/sdk/esp32s2/lib/libtouch_element.a | Bin 472474 -> 475346 bytes tools/sdk/esp32s2/lib/libulp.a | Bin 54806 -> 55690 bytes tools/sdk/esp32s2/lib/libunity.a | Bin 266094 -> 267078 bytes tools/sdk/esp32s2/lib/libusb.a | Bin 357506 -> 364908 bytes tools/sdk/esp32s2/lib/libvfs.a | Bin 495956 -> 502156 bytes tools/sdk/esp32s2/lib/libwapi.a | Bin 48470 -> 52382 bytes tools/sdk/esp32s2/lib/libwear_levelling.a | Bin 335208 -> 338232 bytes tools/sdk/esp32s2/lib/libwifi_provisioning.a | Bin 741304 -> 752840 bytes tools/sdk/esp32s2/lib/libwpa_supplicant.a | Bin 5246256 -> 5095946 bytes tools/sdk/esp32s2/lib/libxtensa.a | Bin 48444 -> 49492 bytes tools/sdk/esp32s2/sdkconfig | 52 +- 812 files changed, 29998 insertions(+), 7365 deletions(-) rename tools/sdk/esp32/include/bt/{host/bluedroid => common}/api/include/api/esp_blufi_api.h (97%) create mode 100644 tools/sdk/esp32/include/bt/common/btc/profile/esp/blufi/include/blufi_int.h create mode 100644 tools/sdk/esp32/include/bt/common/btc/profile/esp/blufi/include/esp_blufi.h create mode 100644 tools/sdk/esp32/include/bt/common/btc/profile/esp/include/btc_blufi_prf.h create mode 100644 tools/sdk/esp32/include/driver/include/driver/usb_serial_jtag.h create mode 100644 tools/sdk/esp32/include/esp-dsp/modules/common/include/dsp_types.h create mode 100644 tools/sdk/esp32/include/esp-dsp/modules/dotprod/include/dspi_dotprod.h create mode 100644 tools/sdk/esp32/include/esp-dsp/modules/dotprod/include/dspi_dotprod_platform.h create mode 100644 tools/sdk/esp32/include/esp_hw_support/include/soc/esp32h2/clk.h create mode 100644 tools/sdk/esp32/include/esp_pm/include/esp32h2/pm.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/aes.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/apb_backup_dma.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/bigint.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/cache.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/crc.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/digital_signature.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/efuse.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/esp_flash.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/ets_sys.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/gpio.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/hmac.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/libc_stubs.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/lldesc.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/md5_hash.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/miniz.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/newlib.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/rom_layout.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/rsa_pss.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/rtc.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/secure_boot.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/sha.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/spi_flash.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/tjpgd.h create mode 100644 tools/sdk/esp32/include/esp_rom/include/esp32h2/rom/uart.h create mode 100644 tools/sdk/esp32/include/esp_serial_slave_link/include/essl_spi/esp32h2_defs.h create mode 100644 tools/sdk/esp32/include/esp_system/port/soc/esp32h2/cache_err_int.h create mode 100644 tools/sdk/esp32/include/hal/esp32/include/hal/emac_ll.h rename tools/sdk/esp32/include/hal/{esp32/include/hal/emac.h => include/hal/emac_hal.h} (64%) create mode 100644 tools/sdk/esp32/include/hal/include/hal/eth_types.h create mode 100644 tools/sdk/esp32/include/hal/platform_port/include/hal/assert.h create mode 100644 tools/sdk/esp32/include/hal/platform_port/include/hal/check.h rename tools/sdk/{esp32c3/include/hal/include/hal/hal_defs.h => esp32/include/hal/platform_port/include/hal/log.h} (71%) create mode 100644 tools/sdk/esp32/include/hal/platform_port/include/hal/misc.h create mode 100644 tools/sdk/esp32/include/idf_test/include/esp32h2/idf_performance_target.h create mode 100644 tools/sdk/esp32/include/spi_flash/include/spi_flash_private.h rename tools/sdk/esp32c3/include/bt/{host/bluedroid => common}/api/include/api/esp_blufi_api.h (97%) create mode 100644 tools/sdk/esp32c3/include/bt/common/btc/profile/esp/blufi/include/blufi_int.h create mode 100644 tools/sdk/esp32c3/include/bt/common/btc/profile/esp/blufi/include/esp_blufi.h create mode 100644 tools/sdk/esp32c3/include/bt/common/btc/profile/esp/include/btc_blufi_prf.h create mode 100644 tools/sdk/esp32c3/include/driver/include/driver/usb_serial_jtag.h create mode 100644 tools/sdk/esp32c3/include/esp_hw_support/include/soc/esp32h2/clk.h create mode 100644 tools/sdk/esp32c3/include/esp_pm/include/esp32h2/pm.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/aes.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/apb_backup_dma.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/bigint.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/cache.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/crc.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/digital_signature.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/efuse.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/esp_flash.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/ets_sys.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/gpio.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/hmac.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/libc_stubs.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/lldesc.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/md5_hash.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/miniz.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/newlib.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/rom_layout.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/rsa_pss.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/rtc.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/secure_boot.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/sha.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/spi_flash.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/tjpgd.h create mode 100644 tools/sdk/esp32c3/include/esp_rom/include/esp32h2/rom/uart.h create mode 100644 tools/sdk/esp32c3/include/esp_serial_slave_link/include/essl_spi/esp32h2_defs.h create mode 100644 tools/sdk/esp32c3/include/esp_system/port/soc/esp32h2/cache_err_int.h create mode 100644 tools/sdk/esp32c3/include/hal/include/hal/emac_hal.h create mode 100644 tools/sdk/esp32c3/include/hal/include/hal/eth_types.h create mode 100644 tools/sdk/esp32c3/include/hal/platform_port/include/hal/assert.h create mode 100644 tools/sdk/esp32c3/include/hal/platform_port/include/hal/check.h rename tools/sdk/{esp32s2/include/hal/include/hal/hal_defs.h => esp32c3/include/hal/platform_port/include/hal/log.h} (71%) create mode 100644 tools/sdk/esp32c3/include/hal/platform_port/include/hal/misc.h create mode 100644 tools/sdk/esp32c3/include/idf_test/include/esp32h2/idf_performance_target.h create mode 100644 tools/sdk/esp32c3/include/spi_flash/include/spi_flash_private.h create mode 100644 tools/sdk/esp32s2/include/arduino_tinyusb/tinyusb/src/host/usbh_classdriver.h create mode 100644 tools/sdk/esp32s2/include/driver/include/driver/usb_serial_jtag.h create mode 100644 tools/sdk/esp32s2/include/esp-dsp/modules/common/include/dsp_types.h create mode 100644 tools/sdk/esp32s2/include/esp-dsp/modules/dotprod/include/dspi_dotprod.h create mode 100644 tools/sdk/esp32s2/include/esp-dsp/modules/dotprod/include/dspi_dotprod_platform.h create mode 100644 tools/sdk/esp32s2/include/esp_hw_support/include/soc/esp32h2/clk.h create mode 100644 tools/sdk/esp32s2/include/esp_pm/include/esp32h2/pm.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/aes.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/apb_backup_dma.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/bigint.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/cache.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/crc.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/digital_signature.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/efuse.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/esp_flash.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/ets_sys.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/gpio.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/hmac.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/libc_stubs.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/lldesc.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/md5_hash.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/miniz.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/newlib.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/rom_layout.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/rsa_pss.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/rtc.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/secure_boot.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/sha.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/spi_flash.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/tjpgd.h create mode 100644 tools/sdk/esp32s2/include/esp_rom/include/esp32h2/rom/uart.h create mode 100644 tools/sdk/esp32s2/include/esp_serial_slave_link/include/essl_spi/esp32h2_defs.h create mode 100644 tools/sdk/esp32s2/include/esp_system/port/soc/esp32h2/cache_err_int.h create mode 100644 tools/sdk/esp32s2/include/hal/include/hal/emac_hal.h create mode 100644 tools/sdk/esp32s2/include/hal/include/hal/eth_types.h create mode 100644 tools/sdk/esp32s2/include/hal/platform_port/include/hal/assert.h create mode 100644 tools/sdk/esp32s2/include/hal/platform_port/include/hal/check.h rename tools/sdk/{esp32/include/hal/include/hal/hal_defs.h => esp32s2/include/hal/platform_port/include/hal/log.h} (71%) create mode 100644 tools/sdk/esp32s2/include/hal/platform_port/include/hal/misc.h create mode 100644 tools/sdk/esp32s2/include/idf_test/include/esp32h2/idf_performance_target.h create mode 100644 tools/sdk/esp32s2/include/spi_flash/include/spi_flash_private.h diff --git a/.github/scripts/install-platformio-esp32.sh b/.github/scripts/install-platformio-esp32.sh index b48e6bfa..71e3251b 100755 --- a/.github/scripts/install-platformio-esp32.sh +++ b/.github/scripts/install-platformio-esp32.sh @@ -1,19 +1,43 @@ #!/bin/bash export PLATFORMIO_ESP32_PATH="$HOME/.platformio/packages/framework-arduinoespressif32" -PLATFORMIO_ESP32_URL="https://github.com/platformio/platform-espressif32.git#feature/idf-master" +PLATFORMIO_ESP32_URL="https://github.com/platformio/platform-espressif32.git#feature/arduino-idf-master" + +XTENSA32_TOOLCHAIN_VERSION="8.4.0+2021r1" +XTENSA32S2_TOOLCHAIN_VERSION="8.4.0+2021r1" +RISCV_TOOLCHAIN_VERSION="8.4.0+2021r1" +ESPTOOLPY_VERSION="~1.30100.0" +ESPRESSIF_ORGANIZATION_NAME="espressif" echo "Installing Python Wheel ..." pip install wheel > /dev/null 2>&1 echo "Installing PlatformIO ..." -pip install -U https://github.com/platformio/platformio/archive/develop.zip > /dev/null 2>&1 +pip install -U https://github.com/platformio/platformio/archive/master.zip > /dev/null 2>&1 echo "Installing Platform ESP32 ..." -python -m platformio platform install $PLATFORMIO_ESP32_URL > /dev/null 2>&1 +python -m platformio platform install $PLATFORMIO_ESP32_URL > /dev/null 2>&1 -echo "Replacing the framework version ..." -python -c "import json; import os; fp=open(os.path.expanduser('~/.platformio/platforms/espressif32/platform.json'), 'r+'); data=json.load(fp); data['packages']['framework-arduinoespressif32']['version'] = '*'; fp.seek(0); fp.truncate(); json.dump(data, fp); fp.close()" +echo "Replacing the package versions ..." +replace_script="import json; import os;" +replace_script+="fp=open(os.path.expanduser('~/.platformio/platforms/espressif32/platform.json'), 'r+');" +replace_script+="data=json.load(fp);" +# Use framework sources from the repository +replace_script+="data['packages']['framework-arduinoespressif32']['version'] = '*';" +replace_script+="del data['packages']['framework-arduinoespressif32']['owner'];" +# Use toolchain packages from the "espressif" organization +replace_script+="data['packages']['toolchain-xtensa-esp32']['owner']='$ESPRESSIF_ORGANIZATION_NAME';" +replace_script+="data['packages']['toolchain-xtensa-esp32s2']['owner']='$ESPRESSIF_ORGANIZATION_NAME';" +replace_script+="data['packages']['toolchain-riscv32-esp']['owner']='$ESPRESSIF_ORGANIZATION_NAME';" +# Update versions to use the upstream +replace_script+="data['packages']['toolchain-xtensa-esp32']['version']='$XTENSA32_TOOLCHAIN_VERSION';" +replace_script+="data['packages']['toolchain-xtensa-esp32s2']['version']='$XTENSA32S2_TOOLCHAIN_VERSION';" +replace_script+="data['packages']['toolchain-riscv32-esp']['version']='$RISCV_TOOLCHAIN_VERSION';" +# esptool.py may require an upstream version (for now platformio is the owner) +replace_script+="data['packages']['tool-esptoolpy']['version']='$ESPTOOLPY_VERSION';" +# Save results +replace_script+="fp.seek(0);fp.truncate();json.dump(data, fp, indent=2);fp.close()" +python -c "$replace_script" if [ "$GITHUB_REPOSITORY" == "espressif/arduino-esp32" ]; then echo "Linking Core..." diff --git a/CMakeLists.txt b/CMakeLists.txt index ab08dc74..ab32598c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -163,26 +163,16 @@ set(priv_includes cores/esp32/libb64) set(requires spi_flash mbedtls mdns esp_adc_cal wifi_provisioning nghttp) set(priv_requires fatfs nvs_flash app_update spiffs bootloader_support openssl bt esp_ipc) -if(IDF_TARGET MATCHES "esp32s2|esp32s3" AND CONFIG_TINYUSB_ENABLED) - list(APPEND priv_requires arduino_tinyusb) -endif() -if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_ArduinoOTA) - list(APPEND priv_requires esp_https_ota) -endif() -if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_LITTLEFS) - if(CONFIG_LITTLEFS_PAGE_SIZE) - list(APPEND priv_requires esp_littlefs) - endif() -endif() - idf_component_register(INCLUDE_DIRS ${includedirs} PRIV_INCLUDE_DIRS ${priv_includes} SRCS ${srcs} REQUIRES ${requires} PRIV_REQUIRES ${priv_requires}) -if(IDF_TARGET STREQUAL "esp32") -target_compile_options(${COMPONENT_TARGET} PUBLIC -DARDUINO=10812 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 -DARDUINO_BOARD="ESP32_DEV" -DARDUINO_VARIANT="esp32" -DESP32) -endif() -if(IDF_TARGET STREQUAL "esp32s2") -target_compile_options(${COMPONENT_TARGET} PUBLIC -DARDUINO=10812 -DARDUINO_ESP32S2_DEV -DARDUINO_ARCH_ESP32 -DARDUINO_BOARD="ESP32S2_DEV" -DARDUINO_VARIANT="esp32s2" -DESP32) -endif() +string(TOUPPER ${CONFIG_IDF_TARGET} idf_target_caps) +target_compile_options(${COMPONENT_TARGET} PUBLIC + -DARDUINO=10812 + -DARDUINO_${idf_target_caps}_DEV + -DARDUINO_ARCH_ESP32 + -DARDUINO_BOARD="${idf_target_caps}_DEV" + -DARDUINO_VARIANT="${CONFIG_IDF_TARGET}" + -DESP32) if(CONFIG_AUTOSTART_ARDUINO) # in autostart mode, arduino-esp32 contains app_main() function and needs to @@ -195,3 +185,26 @@ if(CONFIG_AUTOSTART_ARDUINO) # (As they are C++ symbol, we need to add the C++ mangled names.) target_link_libraries(${COMPONENT_LIB} INTERFACE "-u _Z5setupv -u _Z4loopv") endif() + +# This function adds a dependency on the given component if the component is included into the build. +function(maybe_add_component component_name) + idf_build_get_property(components BUILD_COMPONENTS) + if (${component_name} IN_LIST components) + idf_component_get_property(lib_name ${component_name} COMPONENT_LIB) + target_link_libraries(${COMPONENT_LIB} PUBLIC ${lib_name}) + endif() +endfunction() + +if(IDF_TARGET MATCHES "esp32" AND CONFIG_ESP_RMAKER_TASK_STACK) + maybe_add_component(esp_rainmaker) + maybe_add_component(qrcode) +endif() +if(IDF_TARGET MATCHES "esp32s2|esp32s3" AND CONFIG_TINYUSB_ENABLED) + maybe_add_component(arduino_tinyusb) +endif() +if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_ArduinoOTA) + maybe_add_component(esp_https_ota) +endif() +if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_LITTLEFS) + maybe_add_component(esp_littlefs) +endif() diff --git a/cores/esp32/esp32-hal-tinyusb.c b/cores/esp32/esp32-hal-tinyusb.c index cf0bf48f..e0b9735b 100644 --- a/cores/esp32/esp32-hal-tinyusb.c +++ b/cores/esp32/esp32-hal-tinyusb.c @@ -327,7 +327,7 @@ __attribute__ ((weak)) bool tinyusb_vendor_control_complete_cb(uint8_t rhport, t /** * @brief Handle WebUSB and Vendor requests. */ -bool tud_vendor_control_request_cb(uint8_t rhport, tusb_control_request_t const * request) +bool tud_vendor_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb_control_request_t const * request) { if(WEBUSB_ENABLED && (request->bRequest == VENDOR_REQUEST_WEBUSB || (request->bRequest == VENDOR_REQUEST_MICROSOFT && request->wIndex == 7))){ @@ -346,14 +346,14 @@ bool tud_vendor_control_request_cb(uint8_t rhport, tusb_control_request_t const return tinyusb_vendor_control_request_cb(rhport, request); } -bool tud_vendor_control_complete_cb(uint8_t rhport, tusb_control_request_t const * request) -{ - if(!WEBUSB_ENABLED || !(request->bRequest == VENDOR_REQUEST_WEBUSB - || (request->bRequest == VENDOR_REQUEST_MICROSOFT && request->wIndex == 7))){ - return tinyusb_vendor_control_complete_cb(rhport, request); - } - return true; -} +// bool tud_vendor_control_complete_cb(uint8_t rhport, tusb_control_request_t const * request) +// { +// if(!WEBUSB_ENABLED || !(request->bRequest == VENDOR_REQUEST_WEBUSB +// || (request->bRequest == VENDOR_REQUEST_MICROSOFT && request->wIndex == 7))){ +// return tinyusb_vendor_control_complete_cb(rhport, request); +// } +// return true; +// } /* * Required Callbacks diff --git a/libraries/WiFi/src/WiFiAP.cpp b/libraries/WiFi/src/WiFiAP.cpp index 5bdf13a9..2ef68ff5 100644 --- a/libraries/WiFi/src/WiFiAP.cpp +++ b/libraries/WiFi/src/WiFiAP.cpp @@ -50,7 +50,19 @@ esp_netif_t* get_esp_interface_netif(esp_interface_t interface); esp_err_t set_esp_interface_ip(esp_interface_t interface, IPAddress local_ip=IPAddress(), IPAddress gateway=IPAddress(), IPAddress subnet=IPAddress()); static bool softap_config_equal(const wifi_config_t& lhs, const wifi_config_t& rhs); - +static size_t _wifi_strncpy(char * dst, const char * src, size_t dst_len){ + if(!dst || !src || !dst_len){ + return 0; + } + size_t src_len = strlen(src); + if(src_len >= dst_len){ + src_len = dst_len; + } else { + src_len += 1; + } + memcpy(dst, src, src_len); + return src_len; +} /** * compare two AP configurations @@ -98,12 +110,12 @@ void wifi_softap_config(wifi_config_t *wifi_config, const char * ssid=NULL, cons wifi_config->ap.password[0] = 0; wifi_config->ap.ftm_responder = ftm_responder; if(ssid != NULL && ssid[0] != 0){ - strncpy((char*)wifi_config->ap.ssid, ssid, 32); + _wifi_strncpy((char*)wifi_config->ap.ssid, ssid, 32); wifi_config->ap.ssid_len = strlen(ssid); if(password != NULL && password[0] != 0){ wifi_config->ap.authmode = authmode; wifi_config->ap.pairwise_cipher = WIFI_CIPHER_TYPE_CCMP; // Disable by default enabled insecure TKIP and use just CCMP. - strncpy((char*)wifi_config->ap.password, password, 64); + _wifi_strncpy((char*)wifi_config->ap.password, password, 64); } } } diff --git a/libraries/WiFi/src/WiFiGeneric.cpp b/libraries/WiFi/src/WiFiGeneric.cpp index 1ec6cf26..1fea12e6 100644 --- a/libraries/WiFi/src/WiFiGeneric.cpp +++ b/libraries/WiFi/src/WiFiGeneric.cpp @@ -41,7 +41,6 @@ extern "C" { #include "lwip/err.h" #include "lwip/dns.h" #include "dhcpserver/dhcpserver_options.h" -#include "esp_ipc.h" } //extern "C" diff --git a/libraries/WiFi/src/WiFiSTA.cpp b/libraries/WiFi/src/WiFiSTA.cpp index 6bc0aa4e..00096bde 100644 --- a/libraries/WiFi/src/WiFiSTA.cpp +++ b/libraries/WiFi/src/WiFiSTA.cpp @@ -53,6 +53,20 @@ esp_err_t set_esp_interface_dns(esp_interface_t interface, IPAddress main_dns=IP esp_err_t set_esp_interface_ip(esp_interface_t interface, IPAddress local_ip=IPAddress(), IPAddress gateway=IPAddress(), IPAddress subnet=IPAddress()); static bool sta_config_equal(const wifi_config_t& lhs, const wifi_config_t& rhs); +static size_t _wifi_strncpy(char * dst, const char * src, size_t dst_len){ + if(!dst || !src || !dst_len){ + return 0; + } + size_t src_len = strlen(src); + if(src_len >= dst_len){ + src_len = dst_len; + } else { + src_len += 1; + } + memcpy(dst, src, src_len); + return src_len; +} + /** * compare two STA configurations @@ -82,10 +96,10 @@ static void wifi_sta_config(wifi_config_t * wifi_config, const char * ssid=NULL, wifi_config->sta.ssid[0] = 0; wifi_config->sta.password[0] = 0; if(ssid != NULL && ssid[0] != 0){ - strncpy((char*)wifi_config->sta.ssid, ssid, 32); + _wifi_strncpy((char*)wifi_config->sta.ssid, ssid, 32); if(password != NULL && password[0] != 0){ wifi_config->sta.threshold.authmode = WIFI_AUTH_WEP; - strncpy((char*)wifi_config->sta.password, password, 64); + _wifi_strncpy((char*)wifi_config->sta.password, password, 64); } if(bssid != NULL){ wifi_config->sta.bssid_set = 1; @@ -161,11 +175,11 @@ wl_status_t WiFiSTAClass::begin(const char* ssid, const char *passphrase, int32_ wifi_config_t conf; memset(&conf, 0, sizeof(wifi_config_t)); - strncpy(reinterpret_cast(conf.sta.ssid), ssid, 32); + _wifi_strncpy(reinterpret_cast(conf.sta.ssid), ssid, 32); conf.sta.scan_method = WIFI_ALL_CHANNEL_SCAN; //force full scan to be able to choose the nearest / strongest AP if(passphrase) { - strncpy(reinterpret_cast(conf.sta.password), passphrase, 64); + _wifi_strncpy(reinterpret_cast(conf.sta.password), passphrase, 64); } wifi_config_t current_conf; diff --git a/package.json b/package.json index 1a7f443f..8b4729f1 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,16 @@ { - "name": "framework-arduinoespressif32", - "description": "Arduino Wiring-based Framework (ESP32 Core)", - "version": "0.0.0", + "name": "framework-arduinoespressif32", + "version": "0.0.0", + "description": "Arduino Wiring-based Framework for the Espressif ESP32, ESP32-S and ESP32-C series of SoCs", + "keywords": [ + "framework", + "arduino", + "espressif", + "esp32" + ], + "license": "LGPL-2.1-or-later", + "repository": { + "type": "git", "url": "https://github.com/espressif/arduino-esp32" -} \ No newline at end of file + } +} diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index c3fd5655..c67d5c8a 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -33,20 +33,20 @@ } ], "toolsDependencies": [ + { + "packager": "esp32", + "name": "riscv32-esp-elf-gcc", + "version": "gcc8_4_0-esp-2021r1" + }, { "packager": "esp32", "name": "xtensa-esp32-elf-gcc", - "version": "gcc8_4_0-esp-2020r3" + "version": "gcc8_4_0-esp-2021r1" }, { "packager": "esp32", "name": "xtensa-esp32s2-elf-gcc", - "version": "gcc8_4_0-esp-2020r3" - }, - { - "packager": "esp32", - "name": "riscv32-esp-elf-gcc", - "version": "gcc8_4_0-crosstool-ng-1.24.0-123-g64eb9ff" + "version": "gcc8_4_0-esp-2021r1" }, { "packager": "esp32", @@ -73,118 +73,125 @@ ], "tools": [ { - "name": "xtensa-esp32-elf-gcc", - "version": "gcc8_4_0-esp-2020r3", + "name": "riscv32-esp-elf-gcc", + "version": "gcc8_4_0-esp-2021r1", "systems": [ - { - "host": "i686-mingw32", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2020r3/xtensa-esp32-elf-gcc8_4_0-esp-2020r3-win32.zip", - "archiveFileName": "xtensa-esp32-elf-gcc8_4_0-esp-2020r3-win32.zip", - "checksum": "SHA-256:81cecd5493a3fcf2118977f3fd60bd0a13a4aeac8fe6760d912f96d2c34fab66", - "size": "104226379" - }, - { - "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2020r3/xtensa-esp32-elf-gcc8_4_0-esp-2020r3-macos.tar.gz", - "archiveFileName": "xtensa-esp32-elf-gcc8_4_0-esp-2020r3-macos.tar.gz", - "checksum": "SHA-256:6845f786303b26c4a55ede57487ba65bd25737232fe6104be03f25bb62f4631c", - "size": "92424226" - }, { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2020r3/xtensa-esp32-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz", - "archiveFileName": "xtensa-esp32-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz", - "checksum": "SHA-256:674080a12f9c5ebe5a3a5ce51c6deaeffe6dfb06d6416233df86f25b574e9279", - "size": "85731226" - }, - { - "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2020r3/xtensa-esp32-elf-gcc8_4_0-esp-2020r3-linux-i686.tar.gz", - "archiveFileName": "xtensa-esp32-elf-gcc8_4_0-esp-2020r3-linux-i686.tar.gz", - "checksum": "SHA-256:076b7e05304e26aa6ec105c9e0dc74addca079bc2cae6e42ee7575c5ded29877", - "size": "87715092" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r1/riscv32-esp-elf-gcc8_4_0-esp-2021r1-linux-amd64.tar.gz", + "archiveFileName": "riscv32-esp-elf-gcc8_4_0-esp-2021r1-linux-amd64.tar.gz", + "checksum": "SHA-256:3459618f33bbd5f54d7d7783e807cb6eef6472a220f2f1eb3faced735b9d13bb", + "size": "152812483" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2020r3/xtensa-esp32-elf-gcc8_4_0-esp-2020r3-linux-armel.tar.gz", - "archiveFileName": "xtensa-esp32-elf-gcc8_4_0-esp-2020r3-linux-armel.tar.gz", - "checksum": "SHA-256:6771e011dffa2438ef84ff3474538b4a69df8f9d4cfae3b3707ca31c782ed7db", - "size": "83888892" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r1/riscv32-esp-elf-gcc8_4_0-esp-2021r1-linux-armel.tar.gz", + "archiveFileName": "riscv32-esp-elf-gcc8_4_0-esp-2021r1-linux-armel.tar.gz", + "checksum": "SHA-256:24b9e54b348bbd5fb816fc4c52abb47337c702beecdbba840750b7cfb9d38069", + "size": "151726623" + }, + { + "host": "i686-pc-linux-gnu", + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r1/riscv32-esp-elf-gcc8_4_0-esp-2021r1-linux-i686.tar.gz", + "archiveFileName": "riscv32-esp-elf-gcc8_4_0-esp-2021r1-linux-i686.tar.gz", + "checksum": "SHA-256:954d340ebffef12a2ce9be1ea004e6f45a8863f1e6f41f46fd3f04f58499627c", + "size": "155430963" + }, + { + "host": "x86_64-apple-darwin", + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r1/riscv32-esp-elf-gcc8_4_0-esp-2021r1-macos.tar.gz", + "archiveFileName": "riscv32-esp-elf-gcc8_4_0-esp-2021r1-macos.tar.gz", + "checksum": "SHA-256:612fb3a3f84f703222327bd16581df8f80fda8cdf137637fe5d611587d1b664e", + "size": "159836199" + }, + { + "host": "i686-mingw32", + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r1/riscv32-esp-elf-gcc8_4_0-esp-2021r1-win32.zip", + "archiveFileName": "riscv32-esp-elf-gcc8_4_0-esp-2021r1-win32.zip", + "checksum": "SHA-256:5711eb407ffe44adddbd1281b6b575a5645e7193ca78faefa27dc5bc5b662bec", + "size": "191266312" + } + ] + }, + { + "name": "xtensa-esp32-elf-gcc", + "version": "gcc8_4_0-esp-2021r1", + "systems": [ + { + "host": "x86_64-pc-linux-gnu", + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r1/xtensa-esp32-elf-gcc8_4_0-esp-2021r1-linux-amd64.tar.gz", + "archiveFileName": "xtensa-esp32-elf-gcc8_4_0-esp-2021r1-linux-amd64.tar.gz", + "checksum": "SHA-256:44a0b467b9d2b759ab48b2f27aed684581f33c96e2842992781c4e045992c5b0", + "size": "86361217" + }, + { + "host": "arm-linux-gnueabihf", + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r1/xtensa-esp32-elf-gcc8_4_0-esp-2021r1-linux-armel.tar.gz", + "archiveFileName": "xtensa-esp32-elf-gcc8_4_0-esp-2021r1-linux-armel.tar.gz", + "checksum": "SHA-256:fdacdb2a7bbf6293bcafda9b52463a4da8a2f3b7e1df9f83d35ff9d1efa22012", + "size": "84520407" + }, + { + "host": "i686-pc-linux-gnu", + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r1/xtensa-esp32-elf-gcc8_4_0-esp-2021r1-linux-i686.tar.gz", + "archiveFileName": "xtensa-esp32-elf-gcc8_4_0-esp-2021r1-linux-i686.tar.gz", + "checksum": "SHA-256:e2024096492dfaa50fc6ac336cd8faa2e395e8cebb617753eab0b5f16d3dd0dc", + "size": "88375391" + }, + { + "host": "x86_64-apple-darwin", + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r1/xtensa-esp32-elf-gcc8_4_0-esp-2021r1-macos.tar.gz", + "archiveFileName": "xtensa-esp32-elf-gcc8_4_0-esp-2021r1-macos.tar.gz", + "checksum": "SHA-256:7bbc6a2b94f009cd8a3351b9c7acf7a5caa1c4d3700500ead60f84965386a61b", + "size": "93357296" + }, + { + "host": "i686-mingw32", + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r1/xtensa-esp32-elf-gcc8_4_0-esp-2021r1-win32.zip", + "archiveFileName": "xtensa-esp32-elf-gcc8_4_0-esp-2021r1-win32.zip", + "checksum": "SHA-256:e4f9fdda192abfc9807e3e7fcd6e9fea30c1a0cf3f3c5a5c961b5114fc8c9b7e", + "size": "105603626" } ] }, { "name": "xtensa-esp32s2-elf-gcc", - "version": "gcc8_4_0-esp-2020r3", + "version": "gcc8_4_0-esp-2021r1", "systems": [ - { - "host": "i686-mingw32", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2020r3/xtensa-esp32s2-elf-gcc8_4_0-esp-2020r3-win32.zip", - "archiveFileName": "xtensa-esp32s2-elf-gcc8_4_0-esp-2020r3-win32.zip", - "checksum": "SHA-256:d078d614ae864ae4a37fcb5b83323af0a5cfdbd8243607664becdd0f977a1e33", - "size": "104659541" - }, - { - "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2020r3/xtensa-esp32s2-elf-gcc8_4_0-esp-2020r3-macos.tar.gz", - "archiveFileName": "xtensa-esp32s2-elf-gcc8_4_0-esp-2020r3-macos.tar.gz", - "checksum": "SHA-256:fe19b0c873879d8d89ec040f4db04a3ab27d769d3fd5f55fe59a28b6b111d09c", - "size": "92817351" - }, { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2020r3/xtensa-esp32s2-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz", - "archiveFileName": "xtensa-esp32s2-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz", - "checksum": "SHA-256:40fafa47045167feda0cd07827db5207ebfeb4a3b6b24475957a921bc92805ed", - "size": "86069526" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r1/xtensa-esp32s2-elf-gcc8_4_0-esp-2021r1-linux-amd64.tar.gz", + "archiveFileName": "xtensa-esp32s2-elf-gcc8_4_0-esp-2021r1-linux-amd64.tar.gz", + "checksum": "SHA-256:b127baccfe6949ee7eaf3d0782ea772750a9b8e2732b16ce6bcc9dcd91f7209a", + "size": "86687290" + }, + { + "host": "arm-linux-gnueabihf", + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r1/xtensa-esp32s2-elf-gcc8_4_0-esp-2021r1-linux-armel.tar.gz", + "archiveFileName": "xtensa-esp32s2-elf-gcc8_4_0-esp-2021r1-linux-armel.tar.gz", + "checksum": "SHA-256:7ca0d240f11e1c53c01a56257b0c968f876ab405142d1068d8c9b456d939554c", + "size": "84916701" }, { "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2020r3/xtensa-esp32s2-elf-gcc8_4_0-esp-2020r3-linux-i686.tar.gz", - "archiveFileName": "xtensa-esp32s2-elf-gcc8_4_0-esp-2020r3-linux-i686.tar.gz", - "checksum": "SHA-256:bd3a91166206a1a7ff7c572e15389e1938c3cdce588032a5e915be677a945638", - "size": "88053499" - }, - { - "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2020r3/xtensa-esp32s2-elf-gcc8_4_0-esp-2020r3-linux-armel.tar.gz", - "archiveFileName": "xtensa-esp32s2-elf-gcc8_4_0-esp-2020r3-linux-armel.tar.gz", - "checksum": "SHA-256:6c1efec4c7829202279388ccb388e8a17a34464bc351d677c4f04d95ea4b4ce0", - "size": "84254468" - } - ] - }, - { - "name": "riscv32-esp-elf-gcc", - "version": "gcc8_4_0-crosstool-ng-1.24.0-123-g64eb9ff", - "systems": [ - { - "host": "i686-mingw32", - "url": "https://github.com/espressif/arduino-esp32/releases/download/1.0.6/riscv32-esp-elf-gcc8_4_0-crosstool-ng-1.24.0-123-g64eb9ff-win32.zip", - "archiveFileName": "riscv32-esp-elf-gcc8_4_0-crosstool-ng-1.24.0-123-g64eb9ff-win32.zip", - "checksum": "SHA-256:4f576b08620f57c270ac677cc94dce2767fff72d27a539e348d448f63b480d1f", - "size": "190014086" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r1/xtensa-esp32s2-elf-gcc8_4_0-esp-2021r1-linux-i686.tar.gz", + "archiveFileName": "xtensa-esp32s2-elf-gcc8_4_0-esp-2021r1-linux-i686.tar.gz", + "checksum": "SHA-256:9941f993ff84d1c606b45ffbeeb7bcdc5a72cf24e787bb9230390510fe3511c6", + "size": "88699953" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/arduino-esp32/releases/download/1.0.6/riscv32-esp-elf-gcc8_4_0-crosstool-ng-1.24.0-123-g64eb9ff-macos.tar.gz", - "archiveFileName": "riscv32-esp-elf-gcc8_4_0-crosstool-ng-1.24.0-123-g64eb9ff-macos.tar.gz", - "checksum": "SHA-256:35b1aef85b7e6b4268774f627e8e835d087bcf8b9972cfb6436614aa2e40d4a9", - "size": "158594401" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r1/xtensa-esp32s2-elf-gcc8_4_0-esp-2021r1-macos.tar.gz", + "archiveFileName": "xtensa-esp32s2-elf-gcc8_4_0-esp-2021r1-macos.tar.gz", + "checksum": "SHA-256:4b55b1a9ca7fc945be6fc3513802b6cece9264bee4cbca76013569cec2695973", + "size": "93757895" }, { - "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/arduino-esp32/releases/download/1.0.6/riscv32-esp-elf-gcc8_4_0-crosstool-ng-1.24.0-123-g64eb9ff-linux-amd64.tar.gz", - "archiveFileName": "riscv32-esp-elf-gcc8_4_0-crosstool-ng-1.24.0-123-g64eb9ff-linux-amd64.tar.gz", - "checksum": "SHA-256:425454c5c4e2cde5dd2dd3a1d398befc70addf71547840fb6d0ec4b307b08894", - "size": "152042971" - }, - { - "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/arduino-esp32/releases/download/1.0.6/riscv32-esp-elf-gcc8_4_0-crosstool-ng-1.24.0-123-g64eb9ff-linux-armel.tar.gz", - "archiveFileName": "riscv32-esp-elf-gcc8_4_0-crosstool-ng-1.24.0-123-g64eb9ff-linux-armel.tar.gz", - "checksum": "SHA-256:8ae098751b5196ca8a80d832cc9930bc4d639762a6cb22be3cfe0a8d71b2f230", - "size": "150801079" + "host": "i686-mingw32", + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-2021r1/xtensa-esp32s2-elf-gcc8_4_0-esp-2021r1-win32.zip", + "archiveFileName": "xtensa-esp32s2-elf-gcc8_4_0-esp-2021r1-win32.zip", + "checksum": "SHA-256:c94ec1e45c81b7e4944d216bab4aa41d46849768d7761fd691661dab1a3df828", + "size": "106013515" } ] }, diff --git a/platform.txt b/platform.txt index 8f828b7e..3630b270 100644 --- a/platform.txt +++ b/platform.txt @@ -23,12 +23,12 @@ compiler.prefix={build.tarch}-{build.target}-elf- # # ESP32 Support Start # -compiler.cpreprocessor.flags.esp32=-DHAVE_CONFIG_H -DMBEDTLS_CONFIG_FILE="mbedtls/esp_config.h" -DUNITY_INCLUDE_CONFIG_H -DWITH_POSIX -D_GNU_SOURCE -DIDF_VER="v4.4-dev-1594-g1d7068e4b" -DESP_PLATFORM "-I{compiler.sdk.path}/include/config" "-I{compiler.sdk.path}/include/newlib/platform_include" "-I{compiler.sdk.path}/include/freertos/include" "-I{compiler.sdk.path}/include/freertos/port/xtensa/include" "-I{compiler.sdk.path}/include/esp_hw_support/include" "-I{compiler.sdk.path}/include/esp_hw_support/include/soc" "-I{compiler.sdk.path}/include/esp_hw_support/port/esp32" "-I{compiler.sdk.path}/include/heap/include" "-I{compiler.sdk.path}/include/log/include" "-I{compiler.sdk.path}/include/lwip/include/apps" "-I{compiler.sdk.path}/include/lwip/include/apps/sntp" "-I{compiler.sdk.path}/include/lwip/lwip/src/include" "-I{compiler.sdk.path}/include/lwip/port/esp32/include" "-I{compiler.sdk.path}/include/lwip/port/esp32/include/arch" "-I{compiler.sdk.path}/include/soc/include" "-I{compiler.sdk.path}/include/soc/esp32" "-I{compiler.sdk.path}/include/soc/esp32/include" "-I{compiler.sdk.path}/include/hal/esp32/include" "-I{compiler.sdk.path}/include/hal/include" "-I{compiler.sdk.path}/include/esp_rom/include" "-I{compiler.sdk.path}/include/esp_rom/esp32" "-I{compiler.sdk.path}/include/esp_common/include" "-I{compiler.sdk.path}/include/esp_system/include" "-I{compiler.sdk.path}/include/esp_system/port/soc" "-I{compiler.sdk.path}/include/esp_system/port/public_compat" "-I{compiler.sdk.path}/include/esp32/include" "-I{compiler.sdk.path}/include/driver/include" "-I{compiler.sdk.path}/include/driver/esp32/include" "-I{compiler.sdk.path}/include/esp_pm/include" "-I{compiler.sdk.path}/include/esp_ringbuf/include" "-I{compiler.sdk.path}/include/efuse/include" "-I{compiler.sdk.path}/include/efuse/esp32/include" "-I{compiler.sdk.path}/include/xtensa/include" "-I{compiler.sdk.path}/include/xtensa/esp32/include" "-I{compiler.sdk.path}/include/vfs/include" "-I{compiler.sdk.path}/include/esp_wifi/include" "-I{compiler.sdk.path}/include/esp_event/include" "-I{compiler.sdk.path}/include/esp_netif/include" "-I{compiler.sdk.path}/include/esp_eth/include" "-I{compiler.sdk.path}/include/tcpip_adapter/include" "-I{compiler.sdk.path}/include/esp_phy/include" "-I{compiler.sdk.path}/include/esp_phy/esp32/include" "-I{compiler.sdk.path}/include/app_trace/include" "-I{compiler.sdk.path}/include/esp_timer/include" "-I{compiler.sdk.path}/include/mbedtls/port/include" "-I{compiler.sdk.path}/include/mbedtls/mbedtls/include" "-I{compiler.sdk.path}/include/mbedtls/esp_crt_bundle/include" "-I{compiler.sdk.path}/include/app_update/include" "-I{compiler.sdk.path}/include/spi_flash/include" "-I{compiler.sdk.path}/include/bootloader_support/include" "-I{compiler.sdk.path}/include/esp_ipc/include" "-I{compiler.sdk.path}/include/nvs_flash/include" "-I{compiler.sdk.path}/include/pthread/include" "-I{compiler.sdk.path}/include/esp_gdbstub/include" "-I{compiler.sdk.path}/include/esp_gdbstub/xtensa" "-I{compiler.sdk.path}/include/esp_gdbstub/esp32" "-I{compiler.sdk.path}/include/espcoredump/include" "-I{compiler.sdk.path}/include/espcoredump/include/port/xtensa" "-I{compiler.sdk.path}/include/wpa_supplicant/include" "-I{compiler.sdk.path}/include/wpa_supplicant/port/include" "-I{compiler.sdk.path}/include/wpa_supplicant/include/esp_supplicant" "-I{compiler.sdk.path}/include/perfmon/include" "-I{compiler.sdk.path}/include/asio/asio/asio/include" "-I{compiler.sdk.path}/include/asio/port/include" "-I{compiler.sdk.path}/include/bt/common/osi/include" "-I{compiler.sdk.path}/include/bt/include/esp32/include" "-I{compiler.sdk.path}/include/bt/host/bluedroid/api/include/api" "-I{compiler.sdk.path}/include/cbor/port/include" "-I{compiler.sdk.path}/include/unity/include" "-I{compiler.sdk.path}/include/unity/unity/src" "-I{compiler.sdk.path}/include/cmock/CMock/src" "-I{compiler.sdk.path}/include/coap/port/include" "-I{compiler.sdk.path}/include/coap/port/include/coap" "-I{compiler.sdk.path}/include/coap/libcoap/include" "-I{compiler.sdk.path}/include/coap/libcoap/include/coap2" "-I{compiler.sdk.path}/include/console" "-I{compiler.sdk.path}/include/nghttp/port/include" "-I{compiler.sdk.path}/include/nghttp/nghttp2/lib/includes" "-I{compiler.sdk.path}/include/esp-tls" "-I{compiler.sdk.path}/include/esp-tls/esp-tls-crypto" "-I{compiler.sdk.path}/include/esp_adc_cal/include" "-I{compiler.sdk.path}/include/esp_hid/include" "-I{compiler.sdk.path}/include/tcp_transport/include" "-I{compiler.sdk.path}/include/esp_http_client/include" "-I{compiler.sdk.path}/include/esp_http_server/include" "-I{compiler.sdk.path}/include/esp_https_ota/include" "-I{compiler.sdk.path}/include/esp_lcd/include" "-I{compiler.sdk.path}/include/esp_lcd/interface" "-I{compiler.sdk.path}/include/protobuf-c/protobuf-c" "-I{compiler.sdk.path}/include/protocomm/include/common" "-I{compiler.sdk.path}/include/protocomm/include/security" "-I{compiler.sdk.path}/include/protocomm/include/transports" "-I{compiler.sdk.path}/include/mdns/include" "-I{compiler.sdk.path}/include/esp_local_ctrl/include" "-I{compiler.sdk.path}/include/sdmmc/include" "-I{compiler.sdk.path}/include/esp_serial_slave_link/include" "-I{compiler.sdk.path}/include/esp_websocket_client/include" "-I{compiler.sdk.path}/include/expat/expat/expat/lib" "-I{compiler.sdk.path}/include/expat/port/include" "-I{compiler.sdk.path}/include/wear_levelling/include" "-I{compiler.sdk.path}/include/fatfs/diskio" "-I{compiler.sdk.path}/include/fatfs/vfs" "-I{compiler.sdk.path}/include/fatfs/src" "-I{compiler.sdk.path}/include/freemodbus/common/include" "-I{compiler.sdk.path}/include/idf_test/include" "-I{compiler.sdk.path}/include/idf_test/include/esp32" "-I{compiler.sdk.path}/include/jsmn/include" "-I{compiler.sdk.path}/include/json/cJSON" "-I{compiler.sdk.path}/include/libsodium/libsodium/src/libsodium/include" "-I{compiler.sdk.path}/include/libsodium/port_include" "-I{compiler.sdk.path}/include/mqtt/esp-mqtt/include" "-I{compiler.sdk.path}/include/openssl/include" "-I{compiler.sdk.path}/include/spiffs/include" "-I{compiler.sdk.path}/include/ulp/include" "-I{compiler.sdk.path}/include/wifi_provisioning/include" "-I{compiler.sdk.path}/include/button/button/include" "-I{compiler.sdk.path}/include/json_parser" "-I{compiler.sdk.path}/include/json_parser/jsmn/include" "-I{compiler.sdk.path}/include/json_generator" "-I{compiler.sdk.path}/include/esp_schedule/include" "-I{compiler.sdk.path}/include/esp_rainmaker/include" "-I{compiler.sdk.path}/include/qrcode/include" "-I{compiler.sdk.path}/include/ws2812_led" "-I{compiler.sdk.path}/include/esp_littlefs/src" "-I{compiler.sdk.path}/include/esp_littlefs/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/dotprod/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/support/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/hann/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/blackman/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/blackman_harris/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/blackman_nuttall/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/nuttall/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/flat_top/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/iir/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/fir/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/add/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/sub/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/mul/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/addc/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/mulc/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/sqrt/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/matrix/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/fft/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/dct/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/conv/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/common/include" "-I{compiler.sdk.path}/include/esp-face/face_detection/include" "-I{compiler.sdk.path}/include/esp-face/face_recognition/include" "-I{compiler.sdk.path}/include/esp-face/object_detection/include" "-I{compiler.sdk.path}/include/esp-face/image_util/include" "-I{compiler.sdk.path}/include/esp-face/pose_estimation/include" "-I{compiler.sdk.path}/include/esp-face/lib/include" "-I{compiler.sdk.path}/include/esp32-camera/driver/include" "-I{compiler.sdk.path}/include/esp32-camera/conversions/include" "-I{compiler.sdk.path}/include/fb_gfx/include" -compiler.c.elf.libs.esp32=-lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lasio -lbt -lcbor -lunity -lcmock -lcoap -lconsole -lnghttp -lesp-tls -lesp_adc_cal -lesp_hid -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lesp_lcd -lprotobuf-c -lprotocomm -lmdns -lesp_local_ctrl -lsdmmc -lesp_serial_slave_link -lesp_websocket_client -lexpat -lwear_levelling -lfatfs -lfreemodbus -ljsmn -ljson -llibsodium -lmqtt -lopenssl -lspiffs -lulp -lwifi_provisioning -lbutton -ljson_parser -ljson_generator -lesp_schedule -lesp_rainmaker -lqrcode -lws2812_led -lesp_littlefs -lesp-dsp -lesp-face -lesp32-camera -lfb_gfx -lasio -lcbor -lcmock -lunity -lcoap -lesp_hid -lesp_lcd -lesp_local_ctrl -lesp_websocket_client -lexpat -lfreemodbus -ljsmn -llibsodium -lbutton -lesp_rainmaker -lmqtt -lwifi_provisioning -lprotocomm -lprotobuf-c -ljson -ljson_parser -ljson_generator -lesp_schedule -lqrcode -lws2812_led -lesp-dsp -lesp-face -lpe -lfd -lfr -ldetection_cat_face -ldetection -ldl -lesp32-camera -lfb_gfx -lbt -lbtdm_app -lesp_adc_cal -lmdns -lconsole -lfatfs -lwear_levelling -lopenssl -lspiffs -lesp_littlefs -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lphy -lesp_phy -lphy -lesp_phy -lphy -lrtc -lxt_hal -lm -lnewlib -lstdc++ -lpthread -lgcc -lcxx -lapp_trace -lgcov -lapp_trace -lgcov -lc -compiler.c.flags.esp32=-mlongcalls -Wno-frame-address -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -O2 -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -std=gnu99 -Wno-old-style-declaration -MMD -c -compiler.cpp.flags.esp32=-mlongcalls -Wno-frame-address -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -O2 -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -std=gnu++11 -fexceptions -fno-rtti -MMD -c -compiler.S.flags.esp32=-ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -O2 -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -x assembler-with-cpp -MMD -c -compiler.c.elf.flags.esp32=-T esp32.rom.redefined.ld -T esp32.rom.ld -T esp32.rom.api.ld -T esp32.rom.libgcc.ld -T esp32.rom.newlib-data.ld -T esp32.rom.syscalls.ld -T esp32_out.ld -T esp32.project.ld -T esp32.peripherals.ld -mlongcalls -Wno-frame-address -Wl,--cref -Wl,--gc-sections -fno-rtti -fno-lto -Wl,--wrap=mbedtls_mpi_exp_mod -u esp_app_desc -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u ld_include_panic_highint_hdl -u start_app -u start_app_other_cores -u __ubsan_include -Wl,--wrap=longjmp -u vfs_include_syscalls_impl -u call_user_start_cpu0 -Wl,--undefined=uxTopUsedPriority -u app_main -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -u __cxa_guard_dummy +compiler.cpreprocessor.flags.esp32=-DHAVE_CONFIG_H -DMBEDTLS_CONFIG_FILE="mbedtls/esp_config.h" -DUNITY_INCLUDE_CONFIG_H -DWITH_POSIX -D_GNU_SOURCE -DIDF_VER="v4.4-dev-2030-gd93887f9f-dirty" -DESP_PLATFORM "-I{compiler.sdk.path}/include/config" "-I{compiler.sdk.path}/include/newlib/platform_include" "-I{compiler.sdk.path}/include/freertos/include" "-I{compiler.sdk.path}/include/freertos/port/xtensa/include" "-I{compiler.sdk.path}/include/esp_hw_support/include" "-I{compiler.sdk.path}/include/esp_hw_support/include/soc" "-I{compiler.sdk.path}/include/esp_hw_support/port/esp32" "-I{compiler.sdk.path}/include/heap/include" "-I{compiler.sdk.path}/include/log/include" "-I{compiler.sdk.path}/include/lwip/include/apps" "-I{compiler.sdk.path}/include/lwip/include/apps/sntp" "-I{compiler.sdk.path}/include/lwip/lwip/src/include" "-I{compiler.sdk.path}/include/lwip/port/esp32/include" "-I{compiler.sdk.path}/include/lwip/port/esp32/include/arch" "-I{compiler.sdk.path}/include/soc/include" "-I{compiler.sdk.path}/include/soc/esp32" "-I{compiler.sdk.path}/include/soc/esp32/include" "-I{compiler.sdk.path}/include/hal/esp32/include" "-I{compiler.sdk.path}/include/hal/include" "-I{compiler.sdk.path}/include/hal/platform_port/include" "-I{compiler.sdk.path}/include/esp_rom/include" "-I{compiler.sdk.path}/include/esp_rom/esp32" "-I{compiler.sdk.path}/include/esp_rom/include/esp32" "-I{compiler.sdk.path}/include/esp_common/include" "-I{compiler.sdk.path}/include/esp_system/include" "-I{compiler.sdk.path}/include/esp_system/port/soc" "-I{compiler.sdk.path}/include/esp_system/port/public_compat" "-I{compiler.sdk.path}/include/esp32/include" "-I{compiler.sdk.path}/include/driver/include" "-I{compiler.sdk.path}/include/driver/esp32/include" "-I{compiler.sdk.path}/include/esp_pm/include" "-I{compiler.sdk.path}/include/esp_ringbuf/include" "-I{compiler.sdk.path}/include/efuse/include" "-I{compiler.sdk.path}/include/efuse/esp32/include" "-I{compiler.sdk.path}/include/xtensa/include" "-I{compiler.sdk.path}/include/xtensa/esp32/include" "-I{compiler.sdk.path}/include/vfs/include" "-I{compiler.sdk.path}/include/esp_wifi/include" "-I{compiler.sdk.path}/include/esp_event/include" "-I{compiler.sdk.path}/include/esp_netif/include" "-I{compiler.sdk.path}/include/esp_eth/include" "-I{compiler.sdk.path}/include/tcpip_adapter/include" "-I{compiler.sdk.path}/include/esp_phy/include" "-I{compiler.sdk.path}/include/esp_phy/esp32/include" "-I{compiler.sdk.path}/include/app_trace/include" "-I{compiler.sdk.path}/include/esp_timer/include" "-I{compiler.sdk.path}/include/mbedtls/port/include" "-I{compiler.sdk.path}/include/mbedtls/mbedtls/include" "-I{compiler.sdk.path}/include/mbedtls/esp_crt_bundle/include" "-I{compiler.sdk.path}/include/app_update/include" "-I{compiler.sdk.path}/include/spi_flash/include" "-I{compiler.sdk.path}/include/bootloader_support/include" "-I{compiler.sdk.path}/include/esp_ipc/include" "-I{compiler.sdk.path}/include/nvs_flash/include" "-I{compiler.sdk.path}/include/pthread/include" "-I{compiler.sdk.path}/include/esp_gdbstub/include" "-I{compiler.sdk.path}/include/esp_gdbstub/xtensa" "-I{compiler.sdk.path}/include/esp_gdbstub/esp32" "-I{compiler.sdk.path}/include/espcoredump/include" "-I{compiler.sdk.path}/include/espcoredump/include/port/xtensa" "-I{compiler.sdk.path}/include/wpa_supplicant/include" "-I{compiler.sdk.path}/include/wpa_supplicant/port/include" "-I{compiler.sdk.path}/include/wpa_supplicant/include/esp_supplicant" "-I{compiler.sdk.path}/include/perfmon/include" "-I{compiler.sdk.path}/include/asio/asio/asio/include" "-I{compiler.sdk.path}/include/asio/port/include" "-I{compiler.sdk.path}/include/bt/common/osi/include" "-I{compiler.sdk.path}/include/bt/include/esp32/include" "-I{compiler.sdk.path}/include/bt/common/api/include/api" "-I{compiler.sdk.path}/include/bt/common/btc/profile/esp/blufi/include" "-I{compiler.sdk.path}/include/bt/common/btc/profile/esp/include" "-I{compiler.sdk.path}/include/bt/host/bluedroid/api/include/api" "-I{compiler.sdk.path}/include/cbor/port/include" "-I{compiler.sdk.path}/include/unity/include" "-I{compiler.sdk.path}/include/unity/unity/src" "-I{compiler.sdk.path}/include/cmock/CMock/src" "-I{compiler.sdk.path}/include/coap/port/include" "-I{compiler.sdk.path}/include/coap/port/include/coap" "-I{compiler.sdk.path}/include/coap/libcoap/include" "-I{compiler.sdk.path}/include/coap/libcoap/include/coap2" "-I{compiler.sdk.path}/include/console" "-I{compiler.sdk.path}/include/nghttp/port/include" "-I{compiler.sdk.path}/include/nghttp/nghttp2/lib/includes" "-I{compiler.sdk.path}/include/esp-tls" "-I{compiler.sdk.path}/include/esp-tls/esp-tls-crypto" "-I{compiler.sdk.path}/include/esp_adc_cal/include" "-I{compiler.sdk.path}/include/esp_hid/include" "-I{compiler.sdk.path}/include/tcp_transport/include" "-I{compiler.sdk.path}/include/esp_http_client/include" "-I{compiler.sdk.path}/include/esp_http_server/include" "-I{compiler.sdk.path}/include/esp_https_ota/include" "-I{compiler.sdk.path}/include/esp_lcd/include" "-I{compiler.sdk.path}/include/esp_lcd/interface" "-I{compiler.sdk.path}/include/protobuf-c/protobuf-c" "-I{compiler.sdk.path}/include/protocomm/include/common" "-I{compiler.sdk.path}/include/protocomm/include/security" "-I{compiler.sdk.path}/include/protocomm/include/transports" "-I{compiler.sdk.path}/include/mdns/include" "-I{compiler.sdk.path}/include/esp_local_ctrl/include" "-I{compiler.sdk.path}/include/sdmmc/include" "-I{compiler.sdk.path}/include/esp_serial_slave_link/include" "-I{compiler.sdk.path}/include/esp_websocket_client/include" "-I{compiler.sdk.path}/include/expat/expat/expat/lib" "-I{compiler.sdk.path}/include/expat/port/include" "-I{compiler.sdk.path}/include/wear_levelling/include" "-I{compiler.sdk.path}/include/fatfs/diskio" "-I{compiler.sdk.path}/include/fatfs/vfs" "-I{compiler.sdk.path}/include/fatfs/src" "-I{compiler.sdk.path}/include/freemodbus/common/include" "-I{compiler.sdk.path}/include/idf_test/include" "-I{compiler.sdk.path}/include/idf_test/include/esp32" "-I{compiler.sdk.path}/include/jsmn/include" "-I{compiler.sdk.path}/include/json/cJSON" "-I{compiler.sdk.path}/include/libsodium/libsodium/src/libsodium/include" "-I{compiler.sdk.path}/include/libsodium/port_include" "-I{compiler.sdk.path}/include/mqtt/esp-mqtt/include" "-I{compiler.sdk.path}/include/openssl/include" "-I{compiler.sdk.path}/include/spiffs/include" "-I{compiler.sdk.path}/include/ulp/include" "-I{compiler.sdk.path}/include/wifi_provisioning/include" "-I{compiler.sdk.path}/include/button/button/include" "-I{compiler.sdk.path}/include/json_parser" "-I{compiler.sdk.path}/include/json_parser/jsmn/include" "-I{compiler.sdk.path}/include/json_generator" "-I{compiler.sdk.path}/include/esp_schedule/include" "-I{compiler.sdk.path}/include/esp_rainmaker/include" "-I{compiler.sdk.path}/include/qrcode/include" "-I{compiler.sdk.path}/include/ws2812_led" "-I{compiler.sdk.path}/include/esp_littlefs/src" "-I{compiler.sdk.path}/include/esp_littlefs/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/dotprod/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/support/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/hann/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/blackman/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/blackman_harris/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/blackman_nuttall/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/nuttall/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/flat_top/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/iir/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/fir/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/add/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/sub/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/mul/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/addc/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/mulc/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/sqrt/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/matrix/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/fft/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/dct/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/conv/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/common/include" "-I{compiler.sdk.path}/include/esp-face/face_detection/include" "-I{compiler.sdk.path}/include/esp-face/face_recognition/include" "-I{compiler.sdk.path}/include/esp-face/object_detection/include" "-I{compiler.sdk.path}/include/esp-face/image_util/include" "-I{compiler.sdk.path}/include/esp-face/pose_estimation/include" "-I{compiler.sdk.path}/include/esp-face/lib/include" "-I{compiler.sdk.path}/include/esp32-camera/driver/include" "-I{compiler.sdk.path}/include/esp32-camera/conversions/include" "-I{compiler.sdk.path}/include/fb_gfx/include" +compiler.c.elf.libs.esp32=-lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lasio -lbt -lcbor -lunity -lcmock -lcoap -lconsole -lnghttp -lesp-tls -lesp_adc_cal -lesp_hid -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lesp_lcd -lprotobuf-c -lprotocomm -lmdns -lesp_local_ctrl -lsdmmc -lesp_serial_slave_link -lesp_websocket_client -lexpat -lwear_levelling -lfatfs -lfreemodbus -ljsmn -ljson -llibsodium -lmqtt -lopenssl -lspiffs -lulp -lwifi_provisioning -lbutton -ljson_parser -ljson_generator -lesp_schedule -lesp_rainmaker -lqrcode -lws2812_led -lesp-dsp -lesp-face -lesp32-camera -lesp_littlefs -lfb_gfx -lasio -lcbor -lcmock -lunity -lcoap -lesp_hid -lesp_lcd -lesp_local_ctrl -lesp_websocket_client -lexpat -lfreemodbus -ljsmn -llibsodium -lesp_adc_cal -lfatfs -lwear_levelling -lopenssl -lspiffs -lesp_rainmaker -lmqtt -lwifi_provisioning -lprotocomm -lbt -lbtdm_app -lprotobuf-c -lmdns -lconsole -ljson -ljson_parser -ljson_generator -lesp_schedule -lqrcode -lpe -lfd -lfr -ldetection_cat_face -ldetection -ldl -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lphy -lesp_phy -lphy -lesp_phy -lphy -lrtc -lxt_hal -lm -lnewlib -lstdc++ -lpthread -lgcc -lcxx -lapp_trace -lgcov -lapp_trace -lgcov -lc +compiler.c.flags.esp32=-mlongcalls -Wno-frame-address -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -O2 -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu99 -Wno-old-style-declaration -MMD -c +compiler.cpp.flags.esp32=-mlongcalls -Wno-frame-address -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -O2 -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu++11 -fexceptions -fno-rtti -MMD -c +compiler.S.flags.esp32=-ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -O2 -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -x assembler-with-cpp -MMD -c +compiler.c.elf.flags.esp32=-T esp32.rom.redefined.ld -T esp32.rom.ld -T esp32.rom.api.ld -T esp32.rom.libgcc.ld -T esp32.rom.newlib-data.ld -T esp32.rom.syscalls.ld -T esp32_out.ld -T esp32.project.ld -T esp32.peripherals.ld -mlongcalls -Wno-frame-address -Wl,--cref -Wl,--gc-sections -fno-rtti -fno-lto -u _Z5setupv -u _Z4loopv -Wl,--wrap=mbedtls_mpi_exp_mod -u esp_app_desc -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u ld_include_panic_highint_hdl -u start_app -u start_app_other_cores -u __ubsan_include -Wl,--wrap=longjmp -u __assert_func -u vfs_include_syscalls_impl -u call_user_start_cpu0 -Wl,--undefined=uxTopUsedPriority -u app_main -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -u __cxa_guard_dummy compiler.ar.flags.esp32=cru build.extra_flags.esp32=-DARDUINO_SERIAL_PORT=0 # @@ -38,12 +38,12 @@ build.extra_flags.esp32=-DARDUINO_SERIAL_PORT=0 # # ESP32S2 Support Start # -compiler.cpreprocessor.flags.esp32s2=-DHAVE_CONFIG_H -DMBEDTLS_CONFIG_FILE="mbedtls/esp_config.h" -DUNITY_INCLUDE_CONFIG_H -DWITH_POSIX -D_GNU_SOURCE -DIDF_VER="v4.4-dev-1594-g1d7068e4b" -DESP_PLATFORM "-I{compiler.sdk.path}/include/config" "-I{compiler.sdk.path}/include/newlib/platform_include" "-I{compiler.sdk.path}/include/freertos/include" "-I{compiler.sdk.path}/include/freertos/port/xtensa/include" "-I{compiler.sdk.path}/include/esp_hw_support/include" "-I{compiler.sdk.path}/include/esp_hw_support/include/soc" "-I{compiler.sdk.path}/include/esp_hw_support/port/esp32s2" "-I{compiler.sdk.path}/include/esp_hw_support/port/esp32s2/private_include" "-I{compiler.sdk.path}/include/heap/include" "-I{compiler.sdk.path}/include/log/include" "-I{compiler.sdk.path}/include/lwip/include/apps" "-I{compiler.sdk.path}/include/lwip/include/apps/sntp" "-I{compiler.sdk.path}/include/lwip/lwip/src/include" "-I{compiler.sdk.path}/include/lwip/port/esp32/include" "-I{compiler.sdk.path}/include/lwip/port/esp32/include/arch" "-I{compiler.sdk.path}/include/soc/include" "-I{compiler.sdk.path}/include/soc/esp32s2" "-I{compiler.sdk.path}/include/soc/esp32s2/include" "-I{compiler.sdk.path}/include/hal/esp32s2/include" "-I{compiler.sdk.path}/include/hal/include" "-I{compiler.sdk.path}/include/esp_rom/include" "-I{compiler.sdk.path}/include/esp_rom/esp32s2" "-I{compiler.sdk.path}/include/esp_common/include" "-I{compiler.sdk.path}/include/esp_system/include" "-I{compiler.sdk.path}/include/esp_system/port/soc" "-I{compiler.sdk.path}/include/esp_system/port/public_compat" "-I{compiler.sdk.path}/include/esp32s2/include" "-I{compiler.sdk.path}/include/driver/include" "-I{compiler.sdk.path}/include/driver/esp32s2/include" "-I{compiler.sdk.path}/include/esp_pm/include" "-I{compiler.sdk.path}/include/esp_ringbuf/include" "-I{compiler.sdk.path}/include/efuse/include" "-I{compiler.sdk.path}/include/efuse/esp32s2/include" "-I{compiler.sdk.path}/include/xtensa/include" "-I{compiler.sdk.path}/include/xtensa/esp32s2/include" "-I{compiler.sdk.path}/include/vfs/include" "-I{compiler.sdk.path}/include/esp_wifi/include" "-I{compiler.sdk.path}/include/esp_event/include" "-I{compiler.sdk.path}/include/esp_netif/include" "-I{compiler.sdk.path}/include/esp_eth/include" "-I{compiler.sdk.path}/include/tcpip_adapter/include" "-I{compiler.sdk.path}/include/esp_phy/include" "-I{compiler.sdk.path}/include/esp_phy/esp32s2/include" "-I{compiler.sdk.path}/include/app_trace/include" "-I{compiler.sdk.path}/include/esp_timer/include" "-I{compiler.sdk.path}/include/mbedtls/port/include" "-I{compiler.sdk.path}/include/mbedtls/mbedtls/include" "-I{compiler.sdk.path}/include/mbedtls/esp_crt_bundle/include" "-I{compiler.sdk.path}/include/app_update/include" "-I{compiler.sdk.path}/include/spi_flash/include" "-I{compiler.sdk.path}/include/bootloader_support/include" "-I{compiler.sdk.path}/include/esp_ipc/include" "-I{compiler.sdk.path}/include/nvs_flash/include" "-I{compiler.sdk.path}/include/pthread/include" "-I{compiler.sdk.path}/include/esp_gdbstub/include" "-I{compiler.sdk.path}/include/esp_gdbstub/xtensa" "-I{compiler.sdk.path}/include/esp_gdbstub/esp32s2" "-I{compiler.sdk.path}/include/espcoredump/include" "-I{compiler.sdk.path}/include/espcoredump/include/port/xtensa" "-I{compiler.sdk.path}/include/wpa_supplicant/include" "-I{compiler.sdk.path}/include/wpa_supplicant/port/include" "-I{compiler.sdk.path}/include/wpa_supplicant/include/esp_supplicant" "-I{compiler.sdk.path}/include/asio/asio/asio/include" "-I{compiler.sdk.path}/include/asio/port/include" "-I{compiler.sdk.path}/include/cbor/port/include" "-I{compiler.sdk.path}/include/unity/include" "-I{compiler.sdk.path}/include/unity/unity/src" "-I{compiler.sdk.path}/include/cmock/CMock/src" "-I{compiler.sdk.path}/include/coap/port/include" "-I{compiler.sdk.path}/include/coap/port/include/coap" "-I{compiler.sdk.path}/include/coap/libcoap/include" "-I{compiler.sdk.path}/include/coap/libcoap/include/coap2" "-I{compiler.sdk.path}/include/console" "-I{compiler.sdk.path}/include/nghttp/port/include" "-I{compiler.sdk.path}/include/nghttp/nghttp2/lib/includes" "-I{compiler.sdk.path}/include/esp-tls" "-I{compiler.sdk.path}/include/esp-tls/esp-tls-crypto" "-I{compiler.sdk.path}/include/esp_adc_cal/include" "-I{compiler.sdk.path}/include/esp_hid/include" "-I{compiler.sdk.path}/include/tcp_transport/include" "-I{compiler.sdk.path}/include/esp_http_client/include" "-I{compiler.sdk.path}/include/esp_http_server/include" "-I{compiler.sdk.path}/include/esp_https_ota/include" "-I{compiler.sdk.path}/include/esp_https_server/include" "-I{compiler.sdk.path}/include/esp_lcd/include" "-I{compiler.sdk.path}/include/esp_lcd/interface" "-I{compiler.sdk.path}/include/protobuf-c/protobuf-c" "-I{compiler.sdk.path}/include/protocomm/include/common" "-I{compiler.sdk.path}/include/protocomm/include/security" "-I{compiler.sdk.path}/include/protocomm/include/transports" "-I{compiler.sdk.path}/include/mdns/include" "-I{compiler.sdk.path}/include/esp_local_ctrl/include" "-I{compiler.sdk.path}/include/sdmmc/include" "-I{compiler.sdk.path}/include/esp_serial_slave_link/include" "-I{compiler.sdk.path}/include/esp_websocket_client/include" "-I{compiler.sdk.path}/include/expat/expat/expat/lib" "-I{compiler.sdk.path}/include/expat/port/include" "-I{compiler.sdk.path}/include/wear_levelling/include" "-I{compiler.sdk.path}/include/fatfs/diskio" "-I{compiler.sdk.path}/include/fatfs/vfs" "-I{compiler.sdk.path}/include/fatfs/src" "-I{compiler.sdk.path}/include/freemodbus/common/include" "-I{compiler.sdk.path}/include/idf_test/include" "-I{compiler.sdk.path}/include/idf_test/include/esp32s2" "-I{compiler.sdk.path}/include/jsmn/include" "-I{compiler.sdk.path}/include/json/cJSON" "-I{compiler.sdk.path}/include/libsodium/libsodium/src/libsodium/include" "-I{compiler.sdk.path}/include/libsodium/port_include" "-I{compiler.sdk.path}/include/mqtt/esp-mqtt/include" "-I{compiler.sdk.path}/include/openssl/include" "-I{compiler.sdk.path}/include/perfmon/include" "-I{compiler.sdk.path}/include/spiffs/include" "-I{compiler.sdk.path}/include/touch_element/include" "-I{compiler.sdk.path}/include/ulp/include" "-I{compiler.sdk.path}/include/wifi_provisioning/include" "-I{compiler.sdk.path}/include/esp_littlefs/src" "-I{compiler.sdk.path}/include/esp_littlefs/include" "-I{compiler.sdk.path}/include/freertos/include/freertos" "-I{compiler.sdk.path}/include/arduino_tinyusb/tinyusb/src" "-I{compiler.sdk.path}/include/arduino_tinyusb/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/dotprod/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/support/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/hann/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/blackman/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/blackman_harris/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/blackman_nuttall/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/nuttall/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/flat_top/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/iir/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/fir/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/add/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/sub/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/mul/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/addc/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/mulc/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/sqrt/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/matrix/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/fft/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/dct/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/conv/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/common/include" "-I{compiler.sdk.path}/include/esp-face/face_detection/include" "-I{compiler.sdk.path}/include/esp-face/face_recognition/include" "-I{compiler.sdk.path}/include/esp-face/object_detection/include" "-I{compiler.sdk.path}/include/esp-face/image_util/include" "-I{compiler.sdk.path}/include/esp-face/pose_estimation/include" "-I{compiler.sdk.path}/include/esp-face/lib/include" "-I{compiler.sdk.path}/include/esp32-camera/driver/include" "-I{compiler.sdk.path}/include/esp32-camera/conversions/include" "-I{compiler.sdk.path}/include/fb_gfx/include" -compiler.c.elf.libs.esp32s2=-lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lasio -lcbor -lunity -lcmock -lcoap -lconsole -lnghttp -lesp-tls -lesp_adc_cal -lesp_hid -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lesp_https_server -lesp_lcd -lprotobuf-c -lprotocomm -lmdns -lesp_local_ctrl -lsdmmc -lesp_serial_slave_link -lesp_websocket_client -lexpat -lwear_levelling -lfatfs -lfreemodbus -ljsmn -ljson -llibsodium -lmqtt -lopenssl -lperfmon -lspiffs -ltouch_element -lulp -lusb -lwifi_provisioning -lesp_littlefs -lesp-dsp -lesp-face -lesp32-camera -lfb_gfx -lasio -lcbor -lcmock -lunity -lcoap -lesp_hid -lesp_lcd -lesp_local_ctrl -lesp_https_server -lesp_websocket_client -lexpat -lfreemodbus -ljsmn -llibsodium -lmqtt -lperfmon -ltouch_element -lusb -lwifi_provisioning -lprotocomm -lprotobuf-c -ljson -larduino_tinyusb -lesp-dsp -lesp-face -lpe -lfd -lfr -ldetection_cat_face -ldetection -ldl -lesp32-camera -lfb_gfx -lesp_adc_cal -lmdns -lconsole -lfatfs -lwear_levelling -lopenssl -lspiffs -lesp_littlefs -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lphy -lesp_phy -lphy -lesp_phy -lphy -lxt_hal -lm -lnewlib -lstdc++ -lpthread -lgcc -lcxx -lapp_trace -lgcov -lapp_trace -lgcov -lc -compiler.c.flags.esp32s2=-mlongcalls -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -O2 -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -std=gnu99 -Wno-old-style-declaration -MMD -c -compiler.cpp.flags.esp32s2=-mlongcalls -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -O2 -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -std=gnu++11 -fexceptions -fno-rtti -MMD -c -compiler.S.flags.esp32s2=-ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -O2 -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -x assembler-with-cpp -MMD -c -compiler.c.elf.flags.esp32s2=-T esp32s2.rom.ld -T esp32s2.rom.api.ld -T esp32s2.rom.libgcc.ld -T esp32s2.rom.newlib-funcs.ld -T esp32s2.rom.newlib-data.ld -T esp32s2.rom.spiflash.ld -T esp32s2_out.ld -T esp32s2.project.ld -T esp32s2.peripherals.ld -mlongcalls -Wl,--cref -Wl,--gc-sections -fno-rtti -fno-lto -u esp_app_desc -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u ld_include_panic_highint_hdl -u start_app -u __ubsan_include -Wl,--wrap=longjmp -u vfs_include_syscalls_impl -u call_user_start_cpu0 -Wl,--undefined=uxTopUsedPriority -u app_main -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -u __cxa_guard_dummy +compiler.cpreprocessor.flags.esp32s2=-DHAVE_CONFIG_H -DMBEDTLS_CONFIG_FILE="mbedtls/esp_config.h" -DUNITY_INCLUDE_CONFIG_H -DWITH_POSIX -D_GNU_SOURCE -DIDF_VER="v4.4-dev-2030-gd93887f9f-dirty" -DESP_PLATFORM "-I{compiler.sdk.path}/include/config" "-I{compiler.sdk.path}/include/newlib/platform_include" "-I{compiler.sdk.path}/include/freertos/include" "-I{compiler.sdk.path}/include/freertos/port/xtensa/include" "-I{compiler.sdk.path}/include/esp_hw_support/include" "-I{compiler.sdk.path}/include/esp_hw_support/include/soc" "-I{compiler.sdk.path}/include/esp_hw_support/port/esp32s2" "-I{compiler.sdk.path}/include/esp_hw_support/port/esp32s2/private_include" "-I{compiler.sdk.path}/include/heap/include" "-I{compiler.sdk.path}/include/log/include" "-I{compiler.sdk.path}/include/lwip/include/apps" "-I{compiler.sdk.path}/include/lwip/include/apps/sntp" "-I{compiler.sdk.path}/include/lwip/lwip/src/include" "-I{compiler.sdk.path}/include/lwip/port/esp32/include" "-I{compiler.sdk.path}/include/lwip/port/esp32/include/arch" "-I{compiler.sdk.path}/include/soc/include" "-I{compiler.sdk.path}/include/soc/esp32s2" "-I{compiler.sdk.path}/include/soc/esp32s2/include" "-I{compiler.sdk.path}/include/hal/esp32s2/include" "-I{compiler.sdk.path}/include/hal/include" "-I{compiler.sdk.path}/include/hal/platform_port/include" "-I{compiler.sdk.path}/include/esp_rom/include" "-I{compiler.sdk.path}/include/esp_rom/esp32s2" "-I{compiler.sdk.path}/include/esp_rom/include/esp32s2" "-I{compiler.sdk.path}/include/esp_common/include" "-I{compiler.sdk.path}/include/esp_system/include" "-I{compiler.sdk.path}/include/esp_system/port/soc" "-I{compiler.sdk.path}/include/esp_system/port/public_compat" "-I{compiler.sdk.path}/include/esp32s2/include" "-I{compiler.sdk.path}/include/driver/include" "-I{compiler.sdk.path}/include/driver/esp32s2/include" "-I{compiler.sdk.path}/include/esp_pm/include" "-I{compiler.sdk.path}/include/esp_ringbuf/include" "-I{compiler.sdk.path}/include/efuse/include" "-I{compiler.sdk.path}/include/efuse/esp32s2/include" "-I{compiler.sdk.path}/include/xtensa/include" "-I{compiler.sdk.path}/include/xtensa/esp32s2/include" "-I{compiler.sdk.path}/include/vfs/include" "-I{compiler.sdk.path}/include/esp_wifi/include" "-I{compiler.sdk.path}/include/esp_event/include" "-I{compiler.sdk.path}/include/esp_netif/include" "-I{compiler.sdk.path}/include/esp_eth/include" "-I{compiler.sdk.path}/include/tcpip_adapter/include" "-I{compiler.sdk.path}/include/esp_phy/include" "-I{compiler.sdk.path}/include/esp_phy/esp32s2/include" "-I{compiler.sdk.path}/include/app_trace/include" "-I{compiler.sdk.path}/include/esp_timer/include" "-I{compiler.sdk.path}/include/mbedtls/port/include" "-I{compiler.sdk.path}/include/mbedtls/mbedtls/include" "-I{compiler.sdk.path}/include/mbedtls/esp_crt_bundle/include" "-I{compiler.sdk.path}/include/app_update/include" "-I{compiler.sdk.path}/include/spi_flash/include" "-I{compiler.sdk.path}/include/bootloader_support/include" "-I{compiler.sdk.path}/include/esp_ipc/include" "-I{compiler.sdk.path}/include/nvs_flash/include" "-I{compiler.sdk.path}/include/pthread/include" "-I{compiler.sdk.path}/include/esp_gdbstub/include" "-I{compiler.sdk.path}/include/esp_gdbstub/xtensa" "-I{compiler.sdk.path}/include/esp_gdbstub/esp32s2" "-I{compiler.sdk.path}/include/espcoredump/include" "-I{compiler.sdk.path}/include/espcoredump/include/port/xtensa" "-I{compiler.sdk.path}/include/wpa_supplicant/include" "-I{compiler.sdk.path}/include/wpa_supplicant/port/include" "-I{compiler.sdk.path}/include/wpa_supplicant/include/esp_supplicant" "-I{compiler.sdk.path}/include/asio/asio/asio/include" "-I{compiler.sdk.path}/include/asio/port/include" "-I{compiler.sdk.path}/include/cbor/port/include" "-I{compiler.sdk.path}/include/unity/include" "-I{compiler.sdk.path}/include/unity/unity/src" "-I{compiler.sdk.path}/include/cmock/CMock/src" "-I{compiler.sdk.path}/include/coap/port/include" "-I{compiler.sdk.path}/include/coap/port/include/coap" "-I{compiler.sdk.path}/include/coap/libcoap/include" "-I{compiler.sdk.path}/include/coap/libcoap/include/coap2" "-I{compiler.sdk.path}/include/console" "-I{compiler.sdk.path}/include/nghttp/port/include" "-I{compiler.sdk.path}/include/nghttp/nghttp2/lib/includes" "-I{compiler.sdk.path}/include/esp-tls" "-I{compiler.sdk.path}/include/esp-tls/esp-tls-crypto" "-I{compiler.sdk.path}/include/esp_adc_cal/include" "-I{compiler.sdk.path}/include/esp_hid/include" "-I{compiler.sdk.path}/include/tcp_transport/include" "-I{compiler.sdk.path}/include/esp_http_client/include" "-I{compiler.sdk.path}/include/esp_http_server/include" "-I{compiler.sdk.path}/include/esp_https_ota/include" "-I{compiler.sdk.path}/include/esp_https_server/include" "-I{compiler.sdk.path}/include/esp_lcd/include" "-I{compiler.sdk.path}/include/esp_lcd/interface" "-I{compiler.sdk.path}/include/protobuf-c/protobuf-c" "-I{compiler.sdk.path}/include/protocomm/include/common" "-I{compiler.sdk.path}/include/protocomm/include/security" "-I{compiler.sdk.path}/include/protocomm/include/transports" "-I{compiler.sdk.path}/include/mdns/include" "-I{compiler.sdk.path}/include/esp_local_ctrl/include" "-I{compiler.sdk.path}/include/sdmmc/include" "-I{compiler.sdk.path}/include/esp_serial_slave_link/include" "-I{compiler.sdk.path}/include/esp_websocket_client/include" "-I{compiler.sdk.path}/include/expat/expat/expat/lib" "-I{compiler.sdk.path}/include/expat/port/include" "-I{compiler.sdk.path}/include/wear_levelling/include" "-I{compiler.sdk.path}/include/fatfs/diskio" "-I{compiler.sdk.path}/include/fatfs/vfs" "-I{compiler.sdk.path}/include/fatfs/src" "-I{compiler.sdk.path}/include/freemodbus/common/include" "-I{compiler.sdk.path}/include/idf_test/include" "-I{compiler.sdk.path}/include/idf_test/include/esp32s2" "-I{compiler.sdk.path}/include/jsmn/include" "-I{compiler.sdk.path}/include/json/cJSON" "-I{compiler.sdk.path}/include/libsodium/libsodium/src/libsodium/include" "-I{compiler.sdk.path}/include/libsodium/port_include" "-I{compiler.sdk.path}/include/mqtt/esp-mqtt/include" "-I{compiler.sdk.path}/include/openssl/include" "-I{compiler.sdk.path}/include/perfmon/include" "-I{compiler.sdk.path}/include/spiffs/include" "-I{compiler.sdk.path}/include/touch_element/include" "-I{compiler.sdk.path}/include/ulp/include" "-I{compiler.sdk.path}/include/wifi_provisioning/include" "-I{compiler.sdk.path}/include/freertos/include/freertos" "-I{compiler.sdk.path}/include/arduino_tinyusb/tinyusb/src" "-I{compiler.sdk.path}/include/arduino_tinyusb/include" "-I{compiler.sdk.path}/include/esp_littlefs/src" "-I{compiler.sdk.path}/include/esp_littlefs/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/dotprod/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/support/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/hann/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/blackman/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/blackman_harris/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/blackman_nuttall/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/nuttall/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/windows/flat_top/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/iir/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/fir/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/add/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/sub/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/mul/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/addc/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/mulc/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/math/sqrt/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/matrix/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/fft/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/dct/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/conv/include" "-I{compiler.sdk.path}/include/esp-dsp/modules/common/include" "-I{compiler.sdk.path}/include/esp-face/face_detection/include" "-I{compiler.sdk.path}/include/esp-face/face_recognition/include" "-I{compiler.sdk.path}/include/esp-face/object_detection/include" "-I{compiler.sdk.path}/include/esp-face/image_util/include" "-I{compiler.sdk.path}/include/esp-face/pose_estimation/include" "-I{compiler.sdk.path}/include/esp-face/lib/include" "-I{compiler.sdk.path}/include/esp32-camera/driver/include" "-I{compiler.sdk.path}/include/esp32-camera/conversions/include" "-I{compiler.sdk.path}/include/fb_gfx/include" +compiler.c.elf.libs.esp32s2=-lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lasio -lcbor -lunity -lcmock -lcoap -lconsole -lnghttp -lesp-tls -lesp_adc_cal -lesp_hid -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lesp_https_server -lesp_lcd -lprotobuf-c -lprotocomm -lmdns -lesp_local_ctrl -lsdmmc -lesp_serial_slave_link -lesp_websocket_client -lexpat -lwear_levelling -lfatfs -lfreemodbus -ljsmn -ljson -llibsodium -lmqtt -lopenssl -lperfmon -lspiffs -ltouch_element -lulp -lusb -lwifi_provisioning -lesp-dsp -lesp-face -lesp32-camera -lesp_littlefs -lfb_gfx -lasio -lcbor -lcmock -lunity -lcoap -lesp_hid -lesp_lcd -lesp_local_ctrl -lesp_https_server -lesp_websocket_client -lexpat -lfreemodbus -ljsmn -llibsodium -lmqtt -lperfmon -ltouch_element -lusb -lesp_adc_cal -lfatfs -lwear_levelling -lopenssl -lspiffs -lwifi_provisioning -lprotocomm -lprotobuf-c -lmdns -lconsole -ljson -larduino_tinyusb -lpe -lfd -lfr -ldetection_cat_face -ldetection -ldl -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lxtensa -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lphy -lesp_phy -lphy -lesp_phy -lphy -lxt_hal -lm -lnewlib -lstdc++ -lpthread -lgcc -lcxx -lapp_trace -lgcov -lapp_trace -lgcov -lc +compiler.c.flags.esp32s2=-mlongcalls -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -O2 -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu99 -Wno-old-style-declaration -MMD -c +compiler.cpp.flags.esp32s2=-mlongcalls -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -O2 -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu++11 -fexceptions -fno-rtti -MMD -c +compiler.S.flags.esp32s2=-ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -O2 -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -x assembler-with-cpp -MMD -c +compiler.c.elf.flags.esp32s2=-T esp32s2.rom.ld -T esp32s2.rom.api.ld -T esp32s2.rom.libgcc.ld -T esp32s2.rom.newlib-funcs.ld -T esp32s2.rom.newlib-data.ld -T esp32s2.rom.spiflash.ld -T esp32s2_out.ld -T esp32s2.project.ld -T esp32s2.peripherals.ld -mlongcalls -Wl,--cref -Wl,--gc-sections -fno-rtti -fno-lto -u _Z5setupv -u _Z4loopv -u esp_app_desc -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u ld_include_panic_highint_hdl -u start_app -u __ubsan_include -Wl,--wrap=longjmp -u __assert_func -u vfs_include_syscalls_impl -u call_user_start_cpu0 -Wl,--undefined=uxTopUsedPriority -u app_main -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -u __cxa_guard_dummy compiler.ar.flags.esp32s2=cru build.extra_flags.esp32s2=-DARDUINO_SERIAL_PORT={build.serial} # @@ -53,12 +53,12 @@ build.extra_flags.esp32s2=-DARDUINO_SERIAL_PORT={build.serial} # # ESP32C3 Support Start # -compiler.cpreprocessor.flags.esp32c3=-DHAVE_CONFIG_H -DMBEDTLS_CONFIG_FILE="mbedtls/esp_config.h" -DUNITY_INCLUDE_CONFIG_H -DWITH_POSIX -D_GNU_SOURCE -DIDF_VER="v4.4-dev-1594-g1d7068e4b" -DESP_PLATFORM "-I{compiler.sdk.path}/include/config" "-I{compiler.sdk.path}/include/newlib/platform_include" "-I{compiler.sdk.path}/include/freertos/include" "-I{compiler.sdk.path}/include/freertos/port/riscv/include" "-I{compiler.sdk.path}/include/esp_hw_support/include" "-I{compiler.sdk.path}/include/esp_hw_support/include/soc" "-I{compiler.sdk.path}/include/esp_hw_support/port/esp32c3" "-I{compiler.sdk.path}/include/esp_hw_support/port/esp32c3/private_include" "-I{compiler.sdk.path}/include/heap/include" "-I{compiler.sdk.path}/include/log/include" "-I{compiler.sdk.path}/include/lwip/include/apps" "-I{compiler.sdk.path}/include/lwip/include/apps/sntp" "-I{compiler.sdk.path}/include/lwip/lwip/src/include" "-I{compiler.sdk.path}/include/lwip/port/esp32/include" "-I{compiler.sdk.path}/include/lwip/port/esp32/include/arch" "-I{compiler.sdk.path}/include/soc/include" "-I{compiler.sdk.path}/include/soc/esp32c3" "-I{compiler.sdk.path}/include/soc/esp32c3/include" "-I{compiler.sdk.path}/include/hal/esp32c3/include" "-I{compiler.sdk.path}/include/hal/include" "-I{compiler.sdk.path}/include/esp_rom/include" "-I{compiler.sdk.path}/include/esp_rom/esp32c3" "-I{compiler.sdk.path}/include/esp_common/include" "-I{compiler.sdk.path}/include/esp_system/include" "-I{compiler.sdk.path}/include/esp_system/port/soc" "-I{compiler.sdk.path}/include/esp_system/port/public_compat" "-I{compiler.sdk.path}/include/esp32c3/include" "-I{compiler.sdk.path}/include/driver/include" "-I{compiler.sdk.path}/include/driver/esp32c3/include" "-I{compiler.sdk.path}/include/esp_pm/include" "-I{compiler.sdk.path}/include/esp_ringbuf/include" "-I{compiler.sdk.path}/include/efuse/include" "-I{compiler.sdk.path}/include/efuse/esp32c3/include" "-I{compiler.sdk.path}/include/riscv/include" "-I{compiler.sdk.path}/include/vfs/include" "-I{compiler.sdk.path}/include/esp_wifi/include" "-I{compiler.sdk.path}/include/esp_event/include" "-I{compiler.sdk.path}/include/esp_netif/include" "-I{compiler.sdk.path}/include/esp_eth/include" "-I{compiler.sdk.path}/include/tcpip_adapter/include" "-I{compiler.sdk.path}/include/esp_phy/include" "-I{compiler.sdk.path}/include/esp_phy/esp32c3/include" "-I{compiler.sdk.path}/include/esp_timer/include" "-I{compiler.sdk.path}/include/mbedtls/port/include" "-I{compiler.sdk.path}/include/mbedtls/mbedtls/include" "-I{compiler.sdk.path}/include/mbedtls/esp_crt_bundle/include" "-I{compiler.sdk.path}/include/app_update/include" "-I{compiler.sdk.path}/include/spi_flash/include" "-I{compiler.sdk.path}/include/bootloader_support/include" "-I{compiler.sdk.path}/include/esp_ipc/include" "-I{compiler.sdk.path}/include/nvs_flash/include" "-I{compiler.sdk.path}/include/pthread/include" "-I{compiler.sdk.path}/include/esp_gdbstub/include" "-I{compiler.sdk.path}/include/esp_gdbstub/riscv" "-I{compiler.sdk.path}/include/esp_gdbstub/esp32c3" "-I{compiler.sdk.path}/include/espcoredump/include" "-I{compiler.sdk.path}/include/espcoredump/include/port/riscv" "-I{compiler.sdk.path}/include/wpa_supplicant/include" "-I{compiler.sdk.path}/include/wpa_supplicant/port/include" "-I{compiler.sdk.path}/include/wpa_supplicant/include/esp_supplicant" "-I{compiler.sdk.path}/include/app_trace/include" "-I{compiler.sdk.path}/include/asio/asio/asio/include" "-I{compiler.sdk.path}/include/asio/port/include" "-I{compiler.sdk.path}/include/bt/common/osi/include" "-I{compiler.sdk.path}/include/bt/include/esp32c3/include" "-I{compiler.sdk.path}/include/bt/host/bluedroid/api/include/api" "-I{compiler.sdk.path}/include/cbor/port/include" "-I{compiler.sdk.path}/include/unity/include" "-I{compiler.sdk.path}/include/unity/unity/src" "-I{compiler.sdk.path}/include/cmock/CMock/src" "-I{compiler.sdk.path}/include/coap/port/include" "-I{compiler.sdk.path}/include/coap/port/include/coap" "-I{compiler.sdk.path}/include/coap/libcoap/include" "-I{compiler.sdk.path}/include/coap/libcoap/include/coap2" "-I{compiler.sdk.path}/include/console" "-I{compiler.sdk.path}/include/nghttp/port/include" "-I{compiler.sdk.path}/include/nghttp/nghttp2/lib/includes" "-I{compiler.sdk.path}/include/esp-tls" "-I{compiler.sdk.path}/include/esp-tls/esp-tls-crypto" "-I{compiler.sdk.path}/include/esp_adc_cal/include" "-I{compiler.sdk.path}/include/esp_hid/include" "-I{compiler.sdk.path}/include/tcp_transport/include" "-I{compiler.sdk.path}/include/esp_http_client/include" "-I{compiler.sdk.path}/include/esp_http_server/include" "-I{compiler.sdk.path}/include/esp_https_ota/include" "-I{compiler.sdk.path}/include/esp_https_server/include" "-I{compiler.sdk.path}/include/esp_lcd/include" "-I{compiler.sdk.path}/include/esp_lcd/interface" "-I{compiler.sdk.path}/include/protobuf-c/protobuf-c" "-I{compiler.sdk.path}/include/protocomm/include/common" "-I{compiler.sdk.path}/include/protocomm/include/security" "-I{compiler.sdk.path}/include/protocomm/include/transports" "-I{compiler.sdk.path}/include/mdns/include" "-I{compiler.sdk.path}/include/esp_local_ctrl/include" "-I{compiler.sdk.path}/include/sdmmc/include" "-I{compiler.sdk.path}/include/esp_serial_slave_link/include" "-I{compiler.sdk.path}/include/esp_websocket_client/include" "-I{compiler.sdk.path}/include/expat/expat/expat/lib" "-I{compiler.sdk.path}/include/expat/port/include" "-I{compiler.sdk.path}/include/wear_levelling/include" "-I{compiler.sdk.path}/include/fatfs/diskio" "-I{compiler.sdk.path}/include/fatfs/vfs" "-I{compiler.sdk.path}/include/fatfs/src" "-I{compiler.sdk.path}/include/freemodbus/common/include" "-I{compiler.sdk.path}/include/idf_test/include" "-I{compiler.sdk.path}/include/idf_test/include/esp32c3" "-I{compiler.sdk.path}/include/jsmn/include" "-I{compiler.sdk.path}/include/json/cJSON" "-I{compiler.sdk.path}/include/libsodium/libsodium/src/libsodium/include" "-I{compiler.sdk.path}/include/libsodium/port_include" "-I{compiler.sdk.path}/include/mqtt/esp-mqtt/include" "-I{compiler.sdk.path}/include/openssl/include" "-I{compiler.sdk.path}/include/spiffs/include" "-I{compiler.sdk.path}/include/wifi_provisioning/include" "-I{compiler.sdk.path}/include/esp_littlefs/src" "-I{compiler.sdk.path}/include/esp_littlefs/include" "-I{compiler.sdk.path}/include/fb_gfx/include" -compiler.c.elf.libs.esp32c3=-lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lriscv -lesp32c3 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lasio -lbt -lcbor -lunity -lcmock -lcoap -lconsole -lnghttp -lesp-tls -lesp_adc_cal -lesp_hid -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lesp_https_server -lesp_lcd -lprotobuf-c -lprotocomm -lmdns -lesp_local_ctrl -lsdmmc -lesp_serial_slave_link -lesp_websocket_client -lexpat -lwear_levelling -lfatfs -lfreemodbus -ljsmn -ljson -llibsodium -lmqtt -lopenssl -lspiffs -lwifi_provisioning -lesp_littlefs -lfb_gfx -lasio -lcbor -lcmock -lunity -lcoap -lesp_hid -lesp_lcd -lesp_local_ctrl -lesp_https_server -lesp_websocket_client -lexpat -lfreemodbus -ljsmn -llibsodium -lmqtt -lwifi_provisioning -lprotocomm -lprotobuf-c -ljson -lfb_gfx -lbt -lbtdm_app -lesp_adc_cal -lmdns -lconsole -lfatfs -lwear_levelling -lopenssl -lspiffs -lesp_littlefs -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lriscv -lesp32c3 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lriscv -lesp32c3 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lriscv -lesp32c3 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lriscv -lesp32c3 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lriscv -lesp32c3 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lriscv -lesp32c3 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lphy -lesp_phy -lphy -lesp_phy -lphy -lbtbb -lm -lnewlib -lstdc++ -lpthread -lgcc -lcxx -lapp_trace -lgcov -lapp_trace -lgcov -lc -compiler.c.flags.esp32c3=-march=rv32imc -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -Wno-error=format= -nostartfiles -Wno-format -Og -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -std=gnu99 -Wno-old-style-declaration -MMD -c -compiler.cpp.flags.esp32c3=-march=rv32imc -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -Wno-error=format= -nostartfiles -Wno-format -Og -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -std=gnu++11 -fno-exceptions -fno-rtti -MMD -c -compiler.S.flags.esp32c3=-ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -Wno-error=format= -nostartfiles -Wno-format -Og -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -x assembler-with-cpp -MMD -c -compiler.c.elf.flags.esp32c3=-T esp32c3.rom.ld -T esp32c3.rom.api.ld -T esp32c3.rom.libgcc.ld -T esp32c3.rom.newlib.ld -T esp32c3.rom.version.ld -T esp32c3_out.ld -T esp32c3.project.ld -T esp32c3.peripherals.ld -nostartfiles -march=rv32imc --specs=nosys.specs -Wl,--cref -Wl,--gc-sections -fno-rtti -fno-lto -Wl,--wrap=mbedtls_mpi_exp_mod -u esp_app_desc -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u start_app -u __ubsan_include -u vfs_include_syscalls_impl -u call_user_start_cpu0 -Wl,--undefined=uxTopUsedPriority -u app_main -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -Wl,--wrap=_Unwind_SetEnableExceptionFdeSorting -Wl,--wrap=__register_frame_info_bases -Wl,--wrap=__register_frame_info -Wl,--wrap=__register_frame -Wl,--wrap=__register_frame_info_table_bases -Wl,--wrap=__register_frame_info_table -Wl,--wrap=__register_frame_table -Wl,--wrap=__deregister_frame_info_bases -Wl,--wrap=__deregister_frame_info -Wl,--wrap=_Unwind_Find_FDE -Wl,--wrap=_Unwind_GetGR -Wl,--wrap=_Unwind_GetCFA -Wl,--wrap=_Unwind_GetIP -Wl,--wrap=_Unwind_GetIPInfo -Wl,--wrap=_Unwind_GetRegionStart -Wl,--wrap=_Unwind_GetDataRelBase -Wl,--wrap=_Unwind_GetTextRelBase -Wl,--wrap=_Unwind_SetIP -Wl,--wrap=_Unwind_SetGR -Wl,--wrap=_Unwind_GetLanguageSpecificData -Wl,--wrap=_Unwind_FindEnclosingFunction -Wl,--wrap=_Unwind_Resume -Wl,--wrap=_Unwind_RaiseException -Wl,--wrap=_Unwind_DeleteException -Wl,--wrap=_Unwind_ForcedUnwind -Wl,--wrap=_Unwind_Resume_or_Rethrow -Wl,--wrap=_Unwind_Backtrace -Wl,--wrap=__cxa_call_unexpected -Wl,--wrap=__gxx_personality_v0 -u __cxa_guard_dummy -u __cxx_fatal_exception +compiler.cpreprocessor.flags.esp32c3=-DHAVE_CONFIG_H -DMBEDTLS_CONFIG_FILE="mbedtls/esp_config.h" -DUNITY_INCLUDE_CONFIG_H -DWITH_POSIX -D_GNU_SOURCE -DIDF_VER="v4.4-dev-2030-gd93887f9f-dirty" -DESP_PLATFORM "-I{compiler.sdk.path}/include/config" "-I{compiler.sdk.path}/include/newlib/platform_include" "-I{compiler.sdk.path}/include/freertos/include" "-I{compiler.sdk.path}/include/freertos/port/riscv/include" "-I{compiler.sdk.path}/include/esp_hw_support/include" "-I{compiler.sdk.path}/include/esp_hw_support/include/soc" "-I{compiler.sdk.path}/include/esp_hw_support/port/esp32c3" "-I{compiler.sdk.path}/include/esp_hw_support/port/esp32c3/private_include" "-I{compiler.sdk.path}/include/heap/include" "-I{compiler.sdk.path}/include/log/include" "-I{compiler.sdk.path}/include/lwip/include/apps" "-I{compiler.sdk.path}/include/lwip/include/apps/sntp" "-I{compiler.sdk.path}/include/lwip/lwip/src/include" "-I{compiler.sdk.path}/include/lwip/port/esp32/include" "-I{compiler.sdk.path}/include/lwip/port/esp32/include/arch" "-I{compiler.sdk.path}/include/soc/include" "-I{compiler.sdk.path}/include/soc/esp32c3" "-I{compiler.sdk.path}/include/soc/esp32c3/include" "-I{compiler.sdk.path}/include/hal/esp32c3/include" "-I{compiler.sdk.path}/include/hal/include" "-I{compiler.sdk.path}/include/hal/platform_port/include" "-I{compiler.sdk.path}/include/esp_rom/include" "-I{compiler.sdk.path}/include/esp_rom/esp32c3" "-I{compiler.sdk.path}/include/esp_rom/include/esp32c3" "-I{compiler.sdk.path}/include/esp_common/include" "-I{compiler.sdk.path}/include/esp_system/include" "-I{compiler.sdk.path}/include/esp_system/port/soc" "-I{compiler.sdk.path}/include/esp_system/port/public_compat" "-I{compiler.sdk.path}/include/esp32c3/include" "-I{compiler.sdk.path}/include/driver/include" "-I{compiler.sdk.path}/include/driver/esp32c3/include" "-I{compiler.sdk.path}/include/esp_pm/include" "-I{compiler.sdk.path}/include/esp_ringbuf/include" "-I{compiler.sdk.path}/include/efuse/include" "-I{compiler.sdk.path}/include/efuse/esp32c3/include" "-I{compiler.sdk.path}/include/riscv/include" "-I{compiler.sdk.path}/include/vfs/include" "-I{compiler.sdk.path}/include/esp_wifi/include" "-I{compiler.sdk.path}/include/esp_event/include" "-I{compiler.sdk.path}/include/esp_netif/include" "-I{compiler.sdk.path}/include/esp_eth/include" "-I{compiler.sdk.path}/include/tcpip_adapter/include" "-I{compiler.sdk.path}/include/esp_phy/include" "-I{compiler.sdk.path}/include/esp_phy/esp32c3/include" "-I{compiler.sdk.path}/include/app_trace/include" "-I{compiler.sdk.path}/include/esp_timer/include" "-I{compiler.sdk.path}/include/mbedtls/port/include" "-I{compiler.sdk.path}/include/mbedtls/mbedtls/include" "-I{compiler.sdk.path}/include/mbedtls/esp_crt_bundle/include" "-I{compiler.sdk.path}/include/app_update/include" "-I{compiler.sdk.path}/include/spi_flash/include" "-I{compiler.sdk.path}/include/bootloader_support/include" "-I{compiler.sdk.path}/include/esp_ipc/include" "-I{compiler.sdk.path}/include/nvs_flash/include" "-I{compiler.sdk.path}/include/pthread/include" "-I{compiler.sdk.path}/include/esp_gdbstub/include" "-I{compiler.sdk.path}/include/esp_gdbstub/riscv" "-I{compiler.sdk.path}/include/esp_gdbstub/esp32c3" "-I{compiler.sdk.path}/include/espcoredump/include" "-I{compiler.sdk.path}/include/espcoredump/include/port/riscv" "-I{compiler.sdk.path}/include/wpa_supplicant/include" "-I{compiler.sdk.path}/include/wpa_supplicant/port/include" "-I{compiler.sdk.path}/include/wpa_supplicant/include/esp_supplicant" "-I{compiler.sdk.path}/include/asio/asio/asio/include" "-I{compiler.sdk.path}/include/asio/port/include" "-I{compiler.sdk.path}/include/bt/common/osi/include" "-I{compiler.sdk.path}/include/bt/include/esp32c3/include" "-I{compiler.sdk.path}/include/bt/common/api/include/api" "-I{compiler.sdk.path}/include/bt/common/btc/profile/esp/blufi/include" "-I{compiler.sdk.path}/include/bt/common/btc/profile/esp/include" "-I{compiler.sdk.path}/include/bt/host/bluedroid/api/include/api" "-I{compiler.sdk.path}/include/cbor/port/include" "-I{compiler.sdk.path}/include/unity/include" "-I{compiler.sdk.path}/include/unity/unity/src" "-I{compiler.sdk.path}/include/cmock/CMock/src" "-I{compiler.sdk.path}/include/coap/port/include" "-I{compiler.sdk.path}/include/coap/port/include/coap" "-I{compiler.sdk.path}/include/coap/libcoap/include" "-I{compiler.sdk.path}/include/coap/libcoap/include/coap2" "-I{compiler.sdk.path}/include/console" "-I{compiler.sdk.path}/include/nghttp/port/include" "-I{compiler.sdk.path}/include/nghttp/nghttp2/lib/includes" "-I{compiler.sdk.path}/include/esp-tls" "-I{compiler.sdk.path}/include/esp-tls/esp-tls-crypto" "-I{compiler.sdk.path}/include/esp_adc_cal/include" "-I{compiler.sdk.path}/include/esp_hid/include" "-I{compiler.sdk.path}/include/tcp_transport/include" "-I{compiler.sdk.path}/include/esp_http_client/include" "-I{compiler.sdk.path}/include/esp_http_server/include" "-I{compiler.sdk.path}/include/esp_https_ota/include" "-I{compiler.sdk.path}/include/esp_https_server/include" "-I{compiler.sdk.path}/include/esp_lcd/include" "-I{compiler.sdk.path}/include/esp_lcd/interface" "-I{compiler.sdk.path}/include/protobuf-c/protobuf-c" "-I{compiler.sdk.path}/include/protocomm/include/common" "-I{compiler.sdk.path}/include/protocomm/include/security" "-I{compiler.sdk.path}/include/protocomm/include/transports" "-I{compiler.sdk.path}/include/mdns/include" "-I{compiler.sdk.path}/include/esp_local_ctrl/include" "-I{compiler.sdk.path}/include/sdmmc/include" "-I{compiler.sdk.path}/include/esp_serial_slave_link/include" "-I{compiler.sdk.path}/include/esp_websocket_client/include" "-I{compiler.sdk.path}/include/expat/expat/expat/lib" "-I{compiler.sdk.path}/include/expat/port/include" "-I{compiler.sdk.path}/include/wear_levelling/include" "-I{compiler.sdk.path}/include/fatfs/diskio" "-I{compiler.sdk.path}/include/fatfs/vfs" "-I{compiler.sdk.path}/include/fatfs/src" "-I{compiler.sdk.path}/include/freemodbus/common/include" "-I{compiler.sdk.path}/include/idf_test/include" "-I{compiler.sdk.path}/include/idf_test/include/esp32c3" "-I{compiler.sdk.path}/include/jsmn/include" "-I{compiler.sdk.path}/include/json/cJSON" "-I{compiler.sdk.path}/include/libsodium/libsodium/src/libsodium/include" "-I{compiler.sdk.path}/include/libsodium/port_include" "-I{compiler.sdk.path}/include/mqtt/esp-mqtt/include" "-I{compiler.sdk.path}/include/openssl/include" "-I{compiler.sdk.path}/include/spiffs/include" "-I{compiler.sdk.path}/include/wifi_provisioning/include" "-I{compiler.sdk.path}/include/esp_littlefs/src" "-I{compiler.sdk.path}/include/esp_littlefs/include" "-I{compiler.sdk.path}/include/fb_gfx/include" +compiler.c.elf.libs.esp32c3=-lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lriscv -lesp32c3 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lasio -lbt -lcbor -lunity -lcmock -lcoap -lconsole -lnghttp -lesp-tls -lesp_adc_cal -lesp_hid -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lesp_https_server -lesp_lcd -lprotobuf-c -lprotocomm -lmdns -lesp_local_ctrl -lsdmmc -lesp_serial_slave_link -lesp_websocket_client -lexpat -lwear_levelling -lfatfs -lfreemodbus -ljsmn -ljson -llibsodium -lmqtt -lopenssl -lspiffs -lwifi_provisioning -lesp_littlefs -lfb_gfx -lasio -lcbor -lcmock -lunity -lcoap -lesp_hid -lesp_lcd -lesp_local_ctrl -lesp_https_server -lesp_websocket_client -lexpat -lfreemodbus -ljsmn -llibsodium -lmqtt -lesp_adc_cal -lfatfs -lwear_levelling -lopenssl -lspiffs -lwifi_provisioning -lprotocomm -lbt -lbtdm_app -lprotobuf-c -lmdns -lconsole -ljson -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lriscv -lesp32c3 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lriscv -lesp32c3 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lriscv -lesp32c3 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lriscv -lesp32c3 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lriscv -lesp32c3 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lmbedtls -lefuse -lapp_update -lbootloader_support -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_gdbstub -lespcoredump -lesp_phy -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_pm -lesp_ringbuf -ldriver -lriscv -lesp32c3 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lsmartconfig -lwapi -lphy -lesp_phy -lphy -lesp_phy -lphy -lbtbb -lm -lnewlib -lstdc++ -lpthread -lgcc -lcxx -lapp_trace -lgcov -lapp_trace -lgcov -lc +compiler.c.flags.esp32c3=-march=rv32imc -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -Wno-error=format= -nostartfiles -Wno-format -Og -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu99 -Wno-old-style-declaration -MMD -c +compiler.cpp.flags.esp32c3=-march=rv32imc -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -Wno-error=format= -nostartfiles -Wno-format -Og -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu++11 -fno-exceptions -fno-rtti -MMD -c +compiler.S.flags.esp32c3=-ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -Wno-error=format= -nostartfiles -Wno-format -Og -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -x assembler-with-cpp -MMD -c +compiler.c.elf.flags.esp32c3=-T esp32c3.rom.ld -T esp32c3.rom.api.ld -T esp32c3.rom.libgcc.ld -T esp32c3.rom.newlib.ld -T esp32c3.rom.version.ld -T esp32c3_out.ld -T esp32c3.project.ld -T esp32c3.peripherals.ld -nostartfiles -march=rv32imc --specs=nosys.specs -Wl,--cref -Wl,--gc-sections -fno-rtti -fno-lto -u _Z5setupv -u _Z4loopv -Wl,--wrap=mbedtls_mpi_exp_mod -u esp_app_desc -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u start_app -u __ubsan_include -u __assert_func -u vfs_include_syscalls_impl -u call_user_start_cpu0 -Wl,--undefined=uxTopUsedPriority -u app_main -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -Wl,--wrap=_Unwind_SetEnableExceptionFdeSorting -Wl,--wrap=__register_frame_info_bases -Wl,--wrap=__register_frame_info -Wl,--wrap=__register_frame -Wl,--wrap=__register_frame_info_table_bases -Wl,--wrap=__register_frame_info_table -Wl,--wrap=__register_frame_table -Wl,--wrap=__deregister_frame_info_bases -Wl,--wrap=__deregister_frame_info -Wl,--wrap=_Unwind_Find_FDE -Wl,--wrap=_Unwind_GetGR -Wl,--wrap=_Unwind_GetCFA -Wl,--wrap=_Unwind_GetIP -Wl,--wrap=_Unwind_GetIPInfo -Wl,--wrap=_Unwind_GetRegionStart -Wl,--wrap=_Unwind_GetDataRelBase -Wl,--wrap=_Unwind_GetTextRelBase -Wl,--wrap=_Unwind_SetIP -Wl,--wrap=_Unwind_SetGR -Wl,--wrap=_Unwind_GetLanguageSpecificData -Wl,--wrap=_Unwind_FindEnclosingFunction -Wl,--wrap=_Unwind_Resume -Wl,--wrap=_Unwind_RaiseException -Wl,--wrap=_Unwind_DeleteException -Wl,--wrap=_Unwind_ForcedUnwind -Wl,--wrap=_Unwind_Resume_or_Rethrow -Wl,--wrap=_Unwind_Backtrace -Wl,--wrap=__cxa_call_unexpected -Wl,--wrap=__gxx_personality_v0 -u __cxa_guard_dummy -u __cxx_fatal_exception compiler.ar.flags.esp32c3=cr build.extra_flags.esp32c3=-DARDUINO_SERIAL_PORT=0 # diff --git a/tools/esptool.py b/tools/esptool.py index a35265e6..24ce8d9c 100755 --- a/tools/esptool.py +++ b/tools/esptool.py @@ -68,7 +68,7 @@ except Exception: raise -__version__ = "3.1-dev" +__version__ = "3.2-dev" MAX_UINT32 = 0xffffffff MAX_UINT24 = 0xffffff @@ -100,9 +100,10 @@ def _chip_to_rom_loader(chip): 'esp32': ESP32ROM, 'esp32s2': ESP32S2ROM, 'esp32s3beta2': ESP32S3BETA2ROM, - 'esp32s3beta3': ESP32S3BETA3ROM, + 'esp32s3': ESP32S3ROM, 'esp32c3': ESP32C3ROM, 'esp32c6beta': ESP32C6BETAROM, + 'esp32h2': ESP32H2ROM, }[chip] @@ -162,6 +163,11 @@ def stub_and_esp32_function_only(func): return check_supported_function(func, lambda o: o.IS_STUB or isinstance(o, ESP32ROM)) +def esp32s3_or_newer_function_only(func): + """ Attribute for a function only supported by ESP32S3/32C3 ROM """ + return check_supported_function(func, lambda o: isinstance(o, ESP32S3ROM) or isinstance(o, ESP32C3ROM)) + + PYTHON2 = sys.version_info[0] < 3 # True if on pre-Python 3 # Function to return nth byte of a bitstring @@ -295,6 +301,9 @@ class ESPLoader(object): # Device PIDs USB_JTAG_SERIAL_PID = 0x1001 + # Chip IDs that are no longer supported by esptool + UNSUPPORTED_CHIPS = {6: "ESP32-S3(beta 3)"} + def __init__(self, port=DEFAULT_PORT, baud=ESP_ROM_BAUD, trace_enabled=False): """Base constructor for ESPLoader bootloader interaction @@ -308,6 +317,7 @@ class ESPLoader(object): """ self.secure_download_mode = False # flag is set to True if esptool detects the ROM is in Secure Download Mode + self.stub_is_disabled = False # flag is set to True if esptool detects conditions which requires the stub to be disabled if isinstance(port, basestring): self._port = serial.serial_for_url(port) @@ -358,11 +368,13 @@ class ESPLoader(object): sys.stdout.flush() chip_magic_value = detect_port.read_reg(ESPLoader.CHIP_DETECT_MAGIC_REG_ADDR) - for cls in [ESP8266ROM, ESP32ROM, ESP32S2ROM, ESP32S3BETA2ROM, ESP32S3BETA3ROM, ESP32C3ROM, ESP32C6BETAROM]: + for cls in [ESP8266ROM, ESP32ROM, ESP32S2ROM, ESP32S3BETA2ROM, ESP32S3ROM, ESP32C3ROM, ESP32C6BETAROM, ESP32H2ROM]: if chip_magic_value in cls.CHIP_DETECT_MAGIC_VALUE: # don't connect a second time inst = cls(detect_port._port, baud, trace_enabled=trace_enabled) inst._post_connect() + inst.check_chip_id() + print(' %s' % inst.CHIP_NAME, end='') if detect_port.sync_stub_detected: inst = inst.STUB_CLASS(inst) @@ -644,7 +656,7 @@ class ESPLoader(object): chip_magic_value = self.read_reg(ESPLoader.CHIP_DETECT_MAGIC_REG_ADDR) if chip_magic_value not in self.CHIP_DETECT_MAGIC_VALUE: actually = None - for cls in [ESP8266ROM, ESP32ROM, ESP32S2ROM, ESP32S3BETA2ROM, ESP32S3BETA3ROM, ESP32C3ROM]: + for cls in [ESP8266ROM, ESP32ROM, ESP32S2ROM, ESP32S3BETA2ROM, ESP32S3ROM, ESP32C3ROM, ESP32H2ROM]: if chip_magic_value in cls.CHIP_DETECT_MAGIC_VALUE: actually = cls break @@ -656,6 +668,7 @@ class ESPLoader(object): except UnsupportedCommandError: self.secure_download_mode = True self._post_connect() + self.check_chip_id() def _post_connect(self): """ @@ -751,7 +764,7 @@ class ESPLoader(object): timeout = timeout_per_mb(ERASE_REGION_TIMEOUT_PER_MB, size) # ROM performs the erase up front params = struct.pack('> 21) & 0x0F + return pkg_version + + def get_chip_revision(self): + # reads WAFER_VERSION field from EFUSE_RD_MAC_SPI_SYS_3_REG + block1_addr = self.EFUSE_BASE + 0x044 + num_word = 3 + pos = 18 + return (self.read_reg(block1_addr + (4 * num_word)) & (0x7 << pos)) >> pos + + def get_chip_description(self): + chip_name = { + 0: "ESP32-H2", + }.get(self.get_pkg_version(), "unknown ESP32-H2") + chip_revision = self.get_chip_revision() + + return "%s (revision %d)" % (chip_name, chip_revision) + + def get_chip_features(self): + return ["BLE/802.15.4"] + + def get_crystal_freq(self): + return 40 + + def override_vddsdio(self, new_voltage): + raise NotImplementedInROMError("VDD_SDIO overrides are not supported for ESP32-H2") + + def read_mac(self): + mac0 = self.read_reg(self.MAC_EFUSE_REG) + mac1 = self.read_reg(self.MAC_EFUSE_REG + 4) # only bottom 16 bits are MAC + bitstring = struct.pack(">II", mac1, mac0)[2:] + try: + return tuple(ord(b) for b in bitstring) + except TypeError: # Python 3, bitstring elements are already bytes + return tuple(bitstring) + + def get_flash_crypt_config(self): + return None # doesn't exist on ESP32-H2 + + def get_key_block_purpose(self, key_block): + if key_block < 0 or key_block > 5: + raise FatalError("Valid key block numbers must be in range 0-5") + + reg, shift = [(self.EFUSE_PURPOSE_KEY0_REG, self.EFUSE_PURPOSE_KEY0_SHIFT), + (self.EFUSE_PURPOSE_KEY1_REG, self.EFUSE_PURPOSE_KEY1_SHIFT), + (self.EFUSE_PURPOSE_KEY2_REG, self.EFUSE_PURPOSE_KEY2_SHIFT), + (self.EFUSE_PURPOSE_KEY3_REG, self.EFUSE_PURPOSE_KEY3_SHIFT), + (self.EFUSE_PURPOSE_KEY4_REG, self.EFUSE_PURPOSE_KEY4_SHIFT), + (self.EFUSE_PURPOSE_KEY5_REG, self.EFUSE_PURPOSE_KEY5_SHIFT)][key_block] + return (self.read_reg(reg) >> shift) & 0xF + + def is_flash_encryption_key_valid(self): + # Need to see an AES-128 key + purposes = [self.get_key_block_purpose(b) for b in range(6)] + + return any(p == self.PURPOSE_VAL_XTS_AES128_KEY for p in purposes) + + class ESP32C6BETAROM(ESP32C3ROM): - CHIP_NAME = "ESP32-C6 BETA" + CHIP_NAME = "ESP32-C6(beta)" IMAGE_CHIP_ID = 7 CHIP_DETECT_MAGIC_VALUE = [0x0da1806f] @@ -2165,7 +2307,7 @@ class ESP32S3BETA2StubLoader(ESP32S3BETA2ROM): ESP32S3BETA2ROM.STUB_CLASS = ESP32S3BETA2StubLoader -class ESP32S3BETA3StubLoader(ESP32S3BETA3ROM): +class ESP32S3StubLoader(ESP32S3ROM): """ Access class for ESP32S3 stub loader, runs on top of ROM. (Basically the same as ESP32StubLoader, but different base class. @@ -2182,7 +2324,7 @@ class ESP32S3BETA3StubLoader(ESP32S3BETA3ROM): self.flush_input() # resets _slip_reader -ESP32S3BETA3ROM.STUB_CLASS = ESP32S3BETA3StubLoader +ESP32S3ROM.STUB_CLASS = ESP32S3StubLoader class ESP32C3StubLoader(ESP32C3ROM): @@ -2205,6 +2347,26 @@ class ESP32C3StubLoader(ESP32C3ROM): ESP32C3ROM.STUB_CLASS = ESP32C3StubLoader +class ESP32H2StubLoader(ESP32H2ROM): + """ Access class for ESP32H2 stub loader, runs on top of ROM. + + (Basically the same as ESP32StubLoader, but different base class. + Can possibly be made into a mixin.) + """ + FLASH_WRITE_SIZE = 0x4000 # matches MAX_WRITE_BLOCK in stub_loader.c + STATUS_BYTES_LENGTH = 2 # same as ESP8266, different to ESP32 ROM + IS_STUB = True + + def __init__(self, rom_loader): + self.secure_download_mode = rom_loader.secure_download_mode + self._port = rom_loader._port + self._trace_enabled = rom_loader._trace_enabled + self.flush_input() # resets _slip_reader + + +ESP32H2ROM.STUB_CLASS = ESP32H2StubLoader + + class ESPBOOTLOADER(object): """ These are constants related to software ESP8266 bootloader, working with 'v2' image files """ @@ -2231,12 +2393,14 @@ def LoadFirmwareImage(chip, filename): return ESP32S2FirmwareImage(f) elif chip == "esp32s3beta2": return ESP32S3BETA2FirmwareImage(f) - elif chip == "esp32s3beta3": - return ESP32S3BETA3FirmwareImage(f) + elif chip == "esp32s3": + return ESP32S3FirmwareImage(f) elif chip == 'esp32c3': return ESP32C3FirmwareImage(f) elif chip == 'esp32c6beta': return ESP32C6BETAFirmwareImage(f) + elif chip == 'esp32h2': + return ESP32H2FirmwareImage(f) else: # Otherwise, ESP8266 so look at magic to determine the image type magic = ord(f.read(1)) f.seek(0) @@ -2861,12 +3025,12 @@ class ESP32S3BETA2FirmwareImage(ESP32FirmwareImage): ESP32S3BETA2ROM.BOOTLOADER_IMAGE = ESP32S3BETA2FirmwareImage -class ESP32S3BETA3FirmwareImage(ESP32FirmwareImage): +class ESP32S3FirmwareImage(ESP32FirmwareImage): """ ESP32S3 Firmware Image almost exactly the same as ESP32FirmwareImage """ - ROM_LOADER = ESP32S3BETA3ROM + ROM_LOADER = ESP32S3ROM -ESP32S3BETA3ROM.BOOTLOADER_IMAGE = ESP32S3BETA3FirmwareImage +ESP32S3ROM.BOOTLOADER_IMAGE = ESP32S3FirmwareImage class ESP32C3FirmwareImage(ESP32FirmwareImage): @@ -2885,6 +3049,14 @@ class ESP32C6BETAFirmwareImage(ESP32FirmwareImage): ESP32C6BETAROM.BOOTLOADER_IMAGE = ESP32C6BETAFirmwareImage +class ESP32H2FirmwareImage(ESP32FirmwareImage): + """ ESP32H2 Firmware Image almost exactly the same as ESP32FirmwareImage """ + ROM_LOADER = ESP32H2ROM + + +ESP32H2ROM.BOOTLOADER_IMAGE = ESP32H2FirmwareImage + + class ELFFile(object): SEC_TYPE_PROGBITS = 0x01 SEC_TYPE_STRTAB = 0x03 @@ -3556,8 +3728,8 @@ def elf2image(args): image = ESP32S3BETA2FirmwareImage() if args.secure_pad_v2: image.secure_pad = '2' - elif args.chip == 'esp32s3beta3': - image = ESP32S3BETA3FirmwareImage() + elif args.chip == 'esp32s3': + image = ESP32S3FirmwareImage() if args.secure_pad_v2: image.secure_pad = '2' elif args.chip == 'esp32c3': @@ -3568,6 +3740,10 @@ def elf2image(args): image = ESP32C6BETAFirmwareImage() if args.secure_pad_v2: image.secure_pad = '2' + elif args.chip == 'esp32h2': + image = ESP32H2FirmwareImage() + if args.secure_pad_v2: + image.secure_pad = '2' elif args.version == '1': # ESP8266 image = ESP8266ROMFirmwareImage() else: @@ -3777,7 +3953,7 @@ def main(argv=None, esp=None): parser.add_argument('--chip', '-c', help='Target chip type', type=lambda c: c.lower().replace('-', ''), # support ESP32-S2, etc. - choices=['auto', 'esp8266', 'esp32', 'esp32s2', 'esp32s3beta2', 'esp32s3beta3', 'esp32c3', 'esp32c6beta'], + choices=['auto', 'esp8266', 'esp32', 'esp32s2', 'esp32s3beta2', 'esp32s3', 'esp32c3', 'esp32c6beta', 'esp32h2'], default=os.environ.get('ESPTOOL_CHIP', 'auto')) parser.add_argument( @@ -4074,6 +4250,7 @@ def main(argv=None, esp=None): esp = esp or get_default_connected_device(ser_list, port=args.port, connect_attempts=args.connect_attempts, initial_baud=initial_baud, chip=args.chip, trace=args.trace, before=args.before) + if esp is None: raise FatalError("Could not connect to an Espressif device on any of the %d available serial ports." % len(ser_list)) @@ -4089,6 +4266,9 @@ def main(argv=None, esp=None): if esp.secure_download_mode: print("WARNING: Stub loader is not supported in Secure Download Mode, setting --no-stub") args.no_stub = True + elif esp.stub_is_disabled: + print("WARNING: Stub loader has been disabled for compatibility, setting --no-stub") + args.no_stub = True else: esp = esp.run_stub() @@ -4461,43 +4641,43 @@ cnkzhBvw/MrJd2ggRbfkhSoJnzuOLC1/09oUe9xxwq5wQWWQyknHG78iFidT2hfzBAndl/ThGKpiwUqI cPJ7OMuubzAHryUnhogWpdP/ElO+hW9ilE8hyS6bU8nRDZyzy+IXOIalLJGbwoZifpv8P4COs2CNBr89ZqNel6mnX38o+KCN9gUi3FgW7uQbjnKlsY91h53YiSYq8UX5ei7ZNmzXyGfvwmXRe3UcqSKx7eyP8H9b\ /O3TorqC/3OhVVnmpVVl5p+0HxZXn2XQKDtRfrCpFtXgP2e46tEOP0kX8uGhndrst/8CeNOGkA==\ """))) -ESP32S3BETA3ROM.STUB_CODE = eval(zlib.decompress(base64.b64decode(b""" -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\ +ESP32S3ROM.STUB_CODE = eval(zlib.decompress(base64.b64decode(b""" +eNqVW3l33LYR/yqrlXXZynsAuUsCalJLcbqWczSSj7XsqK8mQTJ266qyvHmWFaWfvZgLALlUk/6xMgmCwMxg5jcX/evOqr1e7RxM6p3za2X8T8Hvzfm1dskNXfBNNXtwfu3qh35OHC6O4J+N8+uu8r/OT1ATGIEl\ +M/+ss73hXf9nNvGXduZ/fqs28yOF/83T3eDFOb1otP+36C3iSYHl/QrGEPUVjKmVX04l7NTTDqjwo6WfCmvMYB0gVvcWtDRNN3400PAcH715nvLpaYY3mwE5ngy/t4ErdW95TE9xZvVHZvb3hd/+JBzAZO0ogEMh\ +pwUpOeGqpvWUIyHEXZlBJKlO5GoH5NnsLV3EEZTw8vM6H37FWz+aAStTBWcKJ7LOC/wOid5WiPXz/HHYKpLSNonU3JAsO2CoT9VwT8v/oq7CeyBvVz0UwceZZpbeHx7K1THsxe+ApvJqIvUaiDSw+UT0zp9D0/H2\ +nrW2IpVOtdcm10FhLXNjUqHX2V6ibTm/zmLvzbSgtiayDT/Qcu1P2VnmgsfCSy474zc8lbZO7Sp7Mjz/ZAM8pypSI5uJVPG6hONa8ORZ5Lxle67g2vB4RcxHytA86uRVXM/rg4Y1QYeVuqUF4In2C7R6AS+lCpcq\ +/kUqV3u+Csv0xy/6b62I6CYhFFXewZNEOCzIoQa2RmDokMQSbur4pCAh4TvuOzJbYMgkVhrxbN//KQkr9Z1vmeFbl88fRTzAqf79Bkif0zpgdyAPY4/gj4bT27D0DGFDw8YMKqYB/7DPO1fwavGuenfKp90Nd+9N\ +7OtPnPQ6fz09+YbUtAXuvLjqkqleQ+X/JbQ2XycA3VnBP9fzaGuiqfqiIY5tT0h+SmVPQUgorg0SEsxuhsJyjkk0/LRPGrEMzEe2XXMX2wlkjYwpzZAooNd18YcTZsGNODIWgrpVAs7BXU03GcqBqgzmVHOiXIC7\ +rhhXDYsQHIkQDnZZwb1He5Ntsudh8NIMKRVTbZRHOpNPJquWYgGECABTNoDabDJ+IDuebFOzdpZguA8IHmDNrvY3NcKnXyMHir4XTTnkJwzePa2p79CabEFMBCnjcumbZkzhQWgLwBMB8AYpX06TkTbBQj10rQhG\ +Rnf/pxOkg4XtzYTU0uZfhHOakPwdbvAIbjbv7+5tRj3z+ndB2lBxBNYgZWezk5xxw4JM6zOY+/rZyfn5EUVVJJ8tCa/eesWuCnpDzd7e+5kOFAIF9JKzYQBwDQv6K1fCnXoJWuH/1MW/+CgV6WMqertm6pcnK1Yt\ +hIeTd8Cs37vOWWxgW/66ZltGUGJARZMF63AFxDF1Nrn0E8rJU08uuy2LZn7wgpggTT05O0oQJAliQdudBZFnVTw8UFq0JD5xdCjgqJuCjAGuxcMbDA7AYvQ/gJY3JAsvGQNcA605cLgVLXOAh7+uK6cZBNp3yQQR\ +a7b+fohajDuY0q2b7T3fhQM8mO7BP7szWMipjJfuw9gli67CwKwf2nLwVTvWQ4wGUpXcgvMBopLIVaNBT4CufMJOcM3D/IDLoGH6YUf4RdJnlcniuQlKkfNrIQhMwrcsGq5cD2L7Cq8ma+FEzftVLJi7PGal7gEi\ +rjsAPOIu+MGjGJMZ0dEEWG12DBOAKXckgX2WZiU4ovcMCh2ysWp6P1dfikpne2f2uJWY4gvEJNQtOfj5kMRjNgJxKKD+PFcx3+weMKjUJHd4DmA/HvUkc9yCYWDoENNFeHEEvSTcHl2w4Tkjik6MERsHGemd0vF9\ +iSB1PeXIFinn3bvZ3e47ps5n6c35uWTehxNW+rdhZBWuio0NIgCwWau7FJ4tPfiu0zQJeY3Q9cgdkOgQA2aMARrymWwizpXQAPhz4o0SQYQD0DGhHkWLzt0f7rPORdsOV/h2eogQt9yklBC9ZclhQfI2wF0lLtmO\ +0JGkEyjHOr6DZ1eQhqNZqjUGUd/d2ImKmleJmgMRrrxLo+TN9+nZv01vLtOb6/Rm1dMXTF3BYXiteBMMjyCMh4ujjUqQch+USgN8GPUKptciv6eMGepplyQSaxx8ECB8zNE51m0esgCSAN+NnEDEug8EwJ3sZW4I\ +kkJwU3yB3vsjg4behsmXq562llGLUE+r85XoLeoqAzPKJIsSCwik6f079dW619GvmwyDld/oziYRG3rJJjIDPJiK9K1CzPdWeJXGR4jTlyDACZMDDkZSIoySWE+FT/ZvUH0r2L/Vakj6zfTmBchhTqiMdKEMrraJ\ +Ms3+jspll7+wqpYlYTqAhZxK8CEYqC/eE8uuie4W2USt34un69bkufREAGMtRdyWAQTRs3hPNNU1cW04SgK1A2loiO6KxxEc3DzVGWHkhiKkULTQ9aeFQNEtYYEtKcp0ChRXGZJIKTr8iaRmWzo1y5pTsz6nyGLn\ +Qw7bKDV42bRjENNGfcHYrw7WiGdpfg8psAj14/HREyh6Sv0VS5+6PKSs0Si4isntG3PIgVUvBRzki2tjM1aGnrM6XJ8YFx15iBUz8dJ4449wJ1lxlhSUO9UnMWHQJCvUaTkPyStx9+uAdACNQlEr8eNJiCNtzHm7\ +JP01YQJSJAhameTGoyzNfx/es5I27yZlHZuu0MQV/F+nuULeVKE8ezHFDPrraGsIkW6oDRuSgGjKEgKs4ZpfI/ffTcuMTWceU0sqvABi6smWRPNb8vzoJ7DMDfwL5oWD9++FoPUJIWUdLNsTAlAF1oyKhr/XNgJq\ +swYAwRc85ZxM97oAuTeCk2mMk/ckLP5l3H80xYhwXLbWXcio8gIhPliiy8GBa/iDk6XWA9kC1AhMztxwCOpGQnKQfs2haaO/5C2TwTq5bkMKSifNy1Yj1NeWjxbz4Pb+N+CU8wexlJL0UrAe87HH7XWSFuc9Oc6g\ +86LR95WsLG4XxwCnstPz1d7pNufz4GSclFNzOmZUMaRSlsjJ/Sr2/AZTO6zf5JPuEVwbMPOE4NyeLvpIo90mbM31HRV7FVDRIVUlxG/ngvh/ZHuGZ9a/WIsuCV511g/QcHEVnRGMQ+xZJeM4BxdcSPkm5hpRpFTW\ +QxdjmLCCKMe5pV12byVSYtuBDYrrScfzIZy2hYxDAmW6XVnqVoAJRlR3zCWpCp1ldxZXxtKjWtyLFSg7oAv2QadGdGEoeB0fNbSktHVgcynIF+SQIsZ3suqCS5y8Zd3bckECFWDVVlRgQJgq2kDV/Y6zZKTqKlTi\ +VkyzAE9n/8a5bE/yrxKKVSzj6bUdb4I69oZj3wiTpzr2PzBbzIYSfdETZzJT0UxtfkoGtQy+4yRqkMmGifmQr38ndQpFSN6f8E9YgUXS8izSXNSs/ePBM4r9yNqDCuWIHacS/ZUSUMMpYruro5EtuYW4ru1dJNU6\ +0zdoVectVeK6bskdrWbxp0H4AIc1Xz6TqG+sFqCeAWIv/jwMPLYZyAUOGcPI9Z6d75gS6/qT2LeqZ0uuyrdb0NpG0m7ISl1y/uR+9uDBiZ/njl4yrFAScrFWFt6lNdaS8ZzhFCTdKa4sarWQR/DujyPRYBHjaIzT\ +m35I5wT9If3C8RNpzC1fUd7sktYHBPPaCjcwbf6SbBdkRgy5pOZapbV6TWwP2Ruqs9WZdM1AmaEnQncveG4m/D4c59cm/DYuJFs7WGKBJHF+MF8kJqqB6vR8LLcpxs4H4KTPQTiCcChMZz6sc+hxetsq6o1r0/Mp\ +KW9w+PCSe4PBDEVr2XGYJjFkPDBe09Ss42hBsF7hmF46m47L3DWa4A6RXtFVxr6Nus5PaUtsaM05aZ8l9tfyLoILJosRmEJHaB4P4SQrI26b4j9cxjUvMZTeIW9qTXT3oGkVC8Ib880IDBjkaN88Jo1VSP/ovlZo\ +/UWaImVvc4uQkVE9t9Vb5G8poG7oUw5weq3ec2icD15tcg03S0RlOGkNwSiw04gbyqI6BOKwAfKEO9TmDHfZyahq38kXFC4BfseBC2atuTTqpLgJ1RMzqGdgM7LEg76gJj1gJrh+qkGrco+q1FailrlccNOeuhJ4\ +MZFHhSigxFiImHl4XnL4hT7Jh1+BFeFDMx858WGK55INqERoqFj5mNCOOatF4csTs8R2AEKdyR5Jl/0ZEPxDGmLCi4kJga6lvs4VT+TdnyEb+ARn+RLWhroWti5RbYzUedqR9l77NxB4VGFY9usRLW63H8muD8N3\ +Szux3RI0abhJwS5McQnfqNmaD19ytNaq50cEEbb8Cta4JdRPa09JDQz7gpaOCYKxhoEd3dKADvw0Q5PgcZ7Zo/QYPEgTuh04AvDk37tK+h4t3mJAjoF32lyB16q0SVJZmKwBe0BdHQZVL3PaXIVeYfco4iVhyppg\ +0ji4h2eu2GBNxBJaCyu8JMPkAmQOlbuOnY8lBZXev0oiYYiAqjqmw2B7SGcdLJwyEpWxGG3OFp6xVYj1DQM3VyyZmPkpA3ebPLVcXZjja+VX37MwwWLS+A6p6qii0xj2Z4NKEFTdKJJ89x0djcXWMxLOqRRw73hu\ +5cD5wojmkL7hKqi1RCa2/WvCMKrmfk5hv+PGVinltJa/lMm5t5RyarggQJ5bc+eKNbRCu9sLJ3QhUgzfAWLjFb4vnN9ivwPH29uY3xmpU2egFW5JBbw6H2R4XUiNj4B7PYsa+CumQ27oLLfzmFi5IkYGuhOM2uVG\ +VZiIvquU0gQrVDpFFV/FUNKpmEz2GmCZkPpjMjiTwY8LbK72XiVHBKinP8GTM8Q+S9iHrcU1WNAcP1ks1LT9nF+cqVphNh08CFwoTCqM5PJUjT8h83SIhjfrEFTxpxz4wRfRuI6VwRSZo4YiH2oF7HDbKcZFaO9Y\ +ds44UaqS9LwONYdewYEKPOgs63pC01xNlo6pTkmn1s5fxTIdBtjtHy1ivBtyd4p5Ugop0On10uTvMZAbBkI958/pcvbYTr7O0PELBKfb7zkYZ2ivsi0O9LncjddmiyMLS/bezvfXv9qkVzFYzkUgLASDTcZ2GCl/\ +CxdX8t3A5xdQwJ0ffPoM/1zPQS5OWWxgPB+J0SFOlUMyiUzt4JzQx2hp5sM3HIGsjGC6E4CEljKZpf4KFv9AfQFsNoo+2w9A8Ceg7XN1vS2A9Cl29BU2p9hoKhTz1l9YRijmD0UCjzpiXqUZBOsmqCvlzI4CN7w2\ +FKnSdxmHI+kXZjm12YbtPogFkpTrmuCittsSFfKAkABJWWW4zwHTAb8rx57dTTjEznkAhDW/jAtD+gkKAVqKDfgknANWoRgCPRDDEA+96vCVCYvMeay+AiV7wuXNEG7A8ysnH6eBFN01L1RJ+NxxZGn5a9em2OP2\ +E/aKCyqDVE764Ph9sTiZ0r5YJEjovqSvyVAVC1ZCtDRO5EKVPqxg7NniVBTzlBvQ4an16/9VnnrcWXJQnLYitRuBPR1rhjhnNlJVCKl8z1AWYTvQ+iInx9nbcPZ7OMuubzAHryUnhogWpdP/OlO+km9ilE8hyS6b\ +U8nRDZyzy+JnOaaQvk74/gTeuE3+h0DHWbBGg9+eslGPZerpJyEKvnKjfYEIN5WFO/mwo1xr92PdYSe2pYlKfFE+qUu2Dds18kG8cFn0Xp1GqkhsO/sT/H8Yf/+4qq7gf2NoVZZ5aVWZ+SftxerqswwaZWfKDzbV\ +qhr8tw1XPdzhJ+lCPjy0c5v99l8IC47W\ """))) ESP32C3ROM.STUB_CODE = eval(zlib.decompress(base64.b64decode(b""" eNqVWn1/E8cR/iqObezAL7S70r2tSYxEJGQZTGkKIVDRcLd750ISNRgRTFt99+4zM3t7ki2Z/mFLutvbnZ155pmXvf8cLurLxeHRTnU4nF1qvTu7tMmB/9ebXarMf/q/Ks/9j+QN7k9ml67wl6s8kWtVPvK/i/uz\ @@ -4568,6 +4748,40 @@ HcSG6Bmd/lByDmzph2JEhHBK+So5MLWBo2cIBpQHUPGkjzgSKftN760HEYoeZ1R4H0Gfd9MbIEqliEl1 3kOKJG0jtmskBhVbpRimX+ggufbWXPyQtyrTxwfolqeoZFL0y9NZg355enYCl0/vH6CiTh/gMjrm0cu61zEnKjCHf96h1yt/ebcsLvCSpTVZFlubxyZcqRfLi0/t4GAQ5WGwKpaFvo0JXAWHOpTh/irGprEz8ep/\ TB3fMw==\ """))) +ESP32H2ROM.STUB_CODE = eval(zlib.decompress(base64.b64decode(b""" +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\ +AE/V398=\ +"""))) def _main(): diff --git a/tools/platformio-build-esp32.py b/tools/platformio-build-esp32.py index e61903cb..fb72f8db 100644 --- a/tools/platformio-build-esp32.py +++ b/tools/platformio-build-esp32.py @@ -64,9 +64,12 @@ env.Append( "-Wno-sign-compare", "-ggdb", "-O2", + "-Wwrite-strings", "-fstack-protector", "-fstrict-volatile-bitfields", "-Wno-error=unused-but-set-variable", + "-fno-jump-tables", + "-fno-tree-switch-conversion", "-MMD" ], @@ -89,6 +92,8 @@ env.Append( "-T", "esp32_out.ld", "-T", "esp32.project.ld", "-T", "esp32.peripherals.ld", + "-u", "_Z5setupv", + "-u", "_Z4loopv", "-u", "esp_app_desc", "-u", "pthread_include_pthread_impl", "-u", "pthread_include_pthread_cond_impl", @@ -97,6 +102,7 @@ env.Append( "-u", "start_app", "-u", "start_app_other_cores", "-u", "__ubsan_include", + "-u", "__assert_func", "-u", "vfs_include_syscalls_impl", "-u", "call_user_start_cpu0", "-u", "app_main", @@ -127,8 +133,10 @@ env.Append( join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "soc", "esp32", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "hal", "esp32", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "hal", "include"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "hal", "platform_port", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp_rom", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp_rom", "esp32"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp_rom", "include", "esp32"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp_common", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp_system", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp_system", "port", "soc"), @@ -174,6 +182,9 @@ env.Append( join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "asio", "port", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "bt", "common", "osi", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "bt", "include", "esp32", "include"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "bt", "common", "api", "include", "api"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "bt", "common", "btc", "profile", "esp", "blufi", "include"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "bt", "common", "btc", "profile", "esp", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "bt", "host", "bluedroid", "api", "include", "api"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "cbor", "port", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "unity", "include"), @@ -274,7 +285,7 @@ env.Append( ], LIBS=[ - "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lasio", "-lbt", "-lcbor", "-lunity", "-lcmock", "-lcoap", "-lconsole", "-lnghttp", "-lesp-tls", "-lesp_adc_cal", "-lesp_hid", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lesp_lcd", "-lprotobuf-c", "-lprotocomm", "-lmdns", "-lesp_local_ctrl", "-lsdmmc", "-lesp_serial_slave_link", "-lesp_websocket_client", "-lexpat", "-lwear_levelling", "-lfatfs", "-lfreemodbus", "-ljsmn", "-ljson", "-llibsodium", "-lmqtt", "-lopenssl", "-lspiffs", "-lulp", "-lwifi_provisioning", "-lbutton", "-ljson_parser", "-ljson_generator", "-lesp_schedule", "-lesp_rainmaker", "-lqrcode", "-lws2812_led", "-lesp_littlefs", "-lesp-dsp", "-lesp-face", "-lesp32-camera", "-lfb_gfx", "-lasio", "-lcbor", "-lcmock", "-lunity", "-lcoap", "-lesp_hid", "-lesp_lcd", "-lesp_local_ctrl", "-lesp_websocket_client", "-lexpat", "-lfreemodbus", "-ljsmn", "-llibsodium", "-lbutton", "-lesp_rainmaker", "-lmqtt", "-lwifi_provisioning", "-lprotocomm", "-lprotobuf-c", "-ljson", "-ljson_parser", "-ljson_generator", "-lesp_schedule", "-lqrcode", "-lws2812_led", "-lesp-dsp", "-lesp-face", "-lpe", "-lfd", "-lfr", "-ldetection_cat_face", "-ldetection", "-ldl", "-lesp32-camera", "-lfb_gfx", "-lbt", "-lbtdm_app", "-lesp_adc_cal", "-lmdns", "-lconsole", "-lfatfs", "-lwear_levelling", "-lopenssl", "-lspiffs", "-lesp_littlefs", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lphy", "-lesp_phy", "-lphy", "-lesp_phy", "-lphy", "-lrtc", "-lxt_hal", "-lm", "-lnewlib", "-lstdc++", "-lpthread", "-lgcc", "-lcxx", "-lapp_trace", "-lgcov", "-lapp_trace", "-lgcov", "-lc" + "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lasio", "-lbt", "-lcbor", "-lunity", "-lcmock", "-lcoap", "-lconsole", "-lnghttp", "-lesp-tls", "-lesp_adc_cal", "-lesp_hid", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lesp_lcd", "-lprotobuf-c", "-lprotocomm", "-lmdns", "-lesp_local_ctrl", "-lsdmmc", "-lesp_serial_slave_link", "-lesp_websocket_client", "-lexpat", "-lwear_levelling", "-lfatfs", "-lfreemodbus", "-ljsmn", "-ljson", "-llibsodium", "-lmqtt", "-lopenssl", "-lspiffs", "-lulp", "-lwifi_provisioning", "-lbutton", "-ljson_parser", "-ljson_generator", "-lesp_schedule", "-lesp_rainmaker", "-lqrcode", "-lws2812_led", "-lesp-dsp", "-lesp-face", "-lesp32-camera", "-lesp_littlefs", "-lfb_gfx", "-lasio", "-lcbor", "-lcmock", "-lunity", "-lcoap", "-lesp_hid", "-lesp_lcd", "-lesp_local_ctrl", "-lesp_websocket_client", "-lexpat", "-lfreemodbus", "-ljsmn", "-llibsodium", "-lesp_adc_cal", "-lfatfs", "-lwear_levelling", "-lopenssl", "-lspiffs", "-lesp_rainmaker", "-lmqtt", "-lwifi_provisioning", "-lprotocomm", "-lbt", "-lbtdm_app", "-lprotobuf-c", "-lmdns", "-lconsole", "-ljson", "-ljson_parser", "-ljson_generator", "-lesp_schedule", "-lqrcode", "-lpe", "-lfd", "-lfr", "-ldetection_cat_face", "-ldetection", "-ldl", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lphy", "-lesp_phy", "-lphy", "-lesp_phy", "-lphy", "-lrtc", "-lxt_hal", "-lm", "-lnewlib", "-lstdc++", "-lpthread", "-lgcc", "-lcxx", "-lapp_trace", "-lgcov", "-lapp_trace", "-lgcov", "-lc" ], CPPDEFINES=[ @@ -283,7 +294,7 @@ env.Append( "UNITY_INCLUDE_CONFIG_H", "WITH_POSIX", "_GNU_SOURCE", - ("IDF_VER", '\\"v4.4-dev-1594-g1d7068e4b\\"'), + ("IDF_VER", '\\"v4.4-dev-2030-gd93887f9f-dirty\\"'), "ESP_PLATFORM", "ARDUINO_ARCH_ESP32", "ESP32", diff --git a/tools/platformio-build-esp32c3.py b/tools/platformio-build-esp32c3.py index 3ec16e21..312646fd 100644 --- a/tools/platformio-build-esp32c3.py +++ b/tools/platformio-build-esp32c3.py @@ -67,6 +67,8 @@ env.Append( "-Og", "-fstrict-volatile-bitfields", "-Wno-error=unused-but-set-variable", + "-fno-jump-tables", + "-fno-tree-switch-conversion", "-MMD" ], @@ -117,12 +119,15 @@ env.Append( "-T", "esp32c3_out.ld", "-T", "esp32c3.project.ld", "-T", "esp32c3.peripherals.ld", + "-u", "_Z5setupv", + "-u", "_Z4loopv", "-u", "esp_app_desc", "-u", "pthread_include_pthread_impl", "-u", "pthread_include_pthread_cond_impl", "-u", "pthread_include_pthread_local_storage_impl", "-u", "start_app", "-u", "__ubsan_include", + "-u", "__assert_func", "-u", "vfs_include_syscalls_impl", "-u", "call_user_start_cpu0", "-u", "app_main", @@ -155,8 +160,10 @@ env.Append( join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "soc", "esp32c3", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "hal", "esp32c3", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "hal", "include"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "hal", "platform_port", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_rom", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_rom", "esp32c3"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_rom", "include", "esp32c3"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_common", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_system", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_system", "port", "soc"), @@ -177,6 +184,7 @@ env.Append( join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "tcpip_adapter", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_phy", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_phy", "esp32c3", "include"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "app_trace", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "esp_timer", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "mbedtls", "port", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "mbedtls", "mbedtls", "include"), @@ -195,11 +203,13 @@ env.Append( join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "wpa_supplicant", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "wpa_supplicant", "port", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "wpa_supplicant", "include", "esp_supplicant"), - join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "app_trace", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "asio", "asio", "asio", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "asio", "port", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "bt", "common", "osi", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "bt", "include", "esp32c3", "include"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "bt", "common", "api", "include", "api"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "bt", "common", "btc", "profile", "esp", "blufi", "include"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "bt", "common", "btc", "profile", "esp", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "bt", "host", "bluedroid", "api", "include", "api"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "cbor", "port", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32c3", "include", "unity", "include"), @@ -261,7 +271,7 @@ env.Append( ], LIBS=[ - "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lriscv", "-lesp32c3", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lasio", "-lbt", "-lcbor", "-lunity", "-lcmock", "-lcoap", "-lconsole", "-lnghttp", "-lesp-tls", "-lesp_adc_cal", "-lesp_hid", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lesp_https_server", "-lesp_lcd", "-lprotobuf-c", "-lprotocomm", "-lmdns", "-lesp_local_ctrl", "-lsdmmc", "-lesp_serial_slave_link", "-lesp_websocket_client", "-lexpat", "-lwear_levelling", "-lfatfs", "-lfreemodbus", "-ljsmn", "-ljson", "-llibsodium", "-lmqtt", "-lopenssl", "-lspiffs", "-lwifi_provisioning", "-lesp_littlefs", "-lfb_gfx", "-lasio", "-lcbor", "-lcmock", "-lunity", "-lcoap", "-lesp_hid", "-lesp_lcd", "-lesp_local_ctrl", "-lesp_https_server", "-lesp_websocket_client", "-lexpat", "-lfreemodbus", "-ljsmn", "-llibsodium", "-lmqtt", "-lwifi_provisioning", "-lprotocomm", "-lprotobuf-c", "-ljson", "-lfb_gfx", "-lbt", "-lbtdm_app", "-lesp_adc_cal", "-lmdns", "-lconsole", "-lfatfs", "-lwear_levelling", "-lopenssl", "-lspiffs", "-lesp_littlefs", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lriscv", "-lesp32c3", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lriscv", "-lesp32c3", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lriscv", "-lesp32c3", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lriscv", "-lesp32c3", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lriscv", "-lesp32c3", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lriscv", "-lesp32c3", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lphy", "-lesp_phy", "-lphy", "-lesp_phy", "-lphy", "-lbtbb", "-lm", "-lnewlib", "-lstdc++", "-lpthread", "-lgcc", "-lcxx", "-lapp_trace", "-lgcov", "-lapp_trace", "-lgcov", "-lc" + "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lriscv", "-lesp32c3", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lasio", "-lbt", "-lcbor", "-lunity", "-lcmock", "-lcoap", "-lconsole", "-lnghttp", "-lesp-tls", "-lesp_adc_cal", "-lesp_hid", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lesp_https_server", "-lesp_lcd", "-lprotobuf-c", "-lprotocomm", "-lmdns", "-lesp_local_ctrl", "-lsdmmc", "-lesp_serial_slave_link", "-lesp_websocket_client", "-lexpat", "-lwear_levelling", "-lfatfs", "-lfreemodbus", "-ljsmn", "-ljson", "-llibsodium", "-lmqtt", "-lopenssl", "-lspiffs", "-lwifi_provisioning", "-lesp_littlefs", "-lfb_gfx", "-lasio", "-lcbor", "-lcmock", "-lunity", "-lcoap", "-lesp_hid", "-lesp_lcd", "-lesp_local_ctrl", "-lesp_https_server", "-lesp_websocket_client", "-lexpat", "-lfreemodbus", "-ljsmn", "-llibsodium", "-lmqtt", "-lesp_adc_cal", "-lfatfs", "-lwear_levelling", "-lopenssl", "-lspiffs", "-lwifi_provisioning", "-lprotocomm", "-lbt", "-lbtdm_app", "-lprotobuf-c", "-lmdns", "-lconsole", "-ljson", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lriscv", "-lesp32c3", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lriscv", "-lesp32c3", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lriscv", "-lesp32c3", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lriscv", "-lesp32c3", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lriscv", "-lesp32c3", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lriscv", "-lesp32c3", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lphy", "-lesp_phy", "-lphy", "-lesp_phy", "-lphy", "-lbtbb", "-lm", "-lnewlib", "-lstdc++", "-lpthread", "-lgcc", "-lcxx", "-lapp_trace", "-lgcov", "-lapp_trace", "-lgcov", "-lc" ], CPPDEFINES=[ @@ -270,7 +280,7 @@ env.Append( "UNITY_INCLUDE_CONFIG_H", "WITH_POSIX", "_GNU_SOURCE", - ("IDF_VER", '\\"v4.4-dev-1594-g1d7068e4b\\"'), + ("IDF_VER", '\\"v4.4-dev-2030-gd93887f9f-dirty\\"'), "ESP_PLATFORM", "ARDUINO_ARCH_ESP32", "ESP32", diff --git a/tools/platformio-build-esp32s2.py b/tools/platformio-build-esp32s2.py index 1d6cf277..cecf4e19 100644 --- a/tools/platformio-build-esp32s2.py +++ b/tools/platformio-build-esp32s2.py @@ -62,9 +62,12 @@ env.Append( "-Wno-sign-compare", "-ggdb", "-O2", + "-Wwrite-strings", "-fstack-protector", "-fstrict-volatile-bitfields", "-Wno-error=unused-but-set-variable", + "-fno-jump-tables", + "-fno-tree-switch-conversion", "-MMD" ], @@ -85,6 +88,8 @@ env.Append( "-T", "esp32s2_out.ld", "-T", "esp32s2.project.ld", "-T", "esp32s2.peripherals.ld", + "-u", "_Z5setupv", + "-u", "_Z4loopv", "-u", "esp_app_desc", "-u", "pthread_include_pthread_impl", "-u", "pthread_include_pthread_cond_impl", @@ -92,6 +97,7 @@ env.Append( "-u", "ld_include_panic_highint_hdl", "-u", "start_app", "-u", "__ubsan_include", + "-u", "__assert_func", "-u", "vfs_include_syscalls_impl", "-u", "call_user_start_cpu0", "-u", "app_main", @@ -123,8 +129,10 @@ env.Append( join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "soc", "esp32s2", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "hal", "esp32s2", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "hal", "include"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "hal", "platform_port", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_rom", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_rom", "esp32s2"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_rom", "include", "esp32s2"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_common", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_system", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_system", "port", "soc"), @@ -218,11 +226,11 @@ env.Append( join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "touch_element", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "ulp", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "wifi_provisioning", "include"), - join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_littlefs", "src"), - join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_littlefs", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "freertos", "include", "freertos"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "arduino_tinyusb", "tinyusb", "src"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "arduino_tinyusb", "include"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_littlefs", "src"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_littlefs", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp-dsp", "modules", "dotprod", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp-dsp", "modules", "support", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp-dsp", "modules", "windows", "include"), @@ -264,7 +272,7 @@ env.Append( ], LIBS=[ - "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lasio", "-lcbor", "-lunity", "-lcmock", "-lcoap", "-lconsole", "-lnghttp", "-lesp-tls", "-lesp_adc_cal", "-lesp_hid", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lesp_https_server", "-lesp_lcd", "-lprotobuf-c", "-lprotocomm", "-lmdns", "-lesp_local_ctrl", "-lsdmmc", "-lesp_serial_slave_link", "-lesp_websocket_client", "-lexpat", "-lwear_levelling", "-lfatfs", "-lfreemodbus", "-ljsmn", "-ljson", "-llibsodium", "-lmqtt", "-lopenssl", "-lperfmon", "-lspiffs", "-ltouch_element", "-lulp", "-lusb", "-lwifi_provisioning", "-lesp_littlefs", "-lesp-dsp", "-lesp-face", "-lesp32-camera", "-lfb_gfx", "-lasio", "-lcbor", "-lcmock", "-lunity", "-lcoap", "-lesp_hid", "-lesp_lcd", "-lesp_local_ctrl", "-lesp_https_server", "-lesp_websocket_client", "-lexpat", "-lfreemodbus", "-ljsmn", "-llibsodium", "-lmqtt", "-lperfmon", "-ltouch_element", "-lusb", "-lwifi_provisioning", "-lprotocomm", "-lprotobuf-c", "-ljson", "-larduino_tinyusb", "-lesp-dsp", "-lesp-face", "-lpe", "-lfd", "-lfr", "-ldetection_cat_face", "-ldetection", "-ldl", "-lesp32-camera", "-lfb_gfx", "-lesp_adc_cal", "-lmdns", "-lconsole", "-lfatfs", "-lwear_levelling", "-lopenssl", "-lspiffs", "-lesp_littlefs", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lphy", "-lesp_phy", "-lphy", "-lesp_phy", "-lphy", "-lxt_hal", "-lm", "-lnewlib", "-lstdc++", "-lpthread", "-lgcc", "-lcxx", "-lapp_trace", "-lgcov", "-lapp_trace", "-lgcov", "-lc" + "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lasio", "-lcbor", "-lunity", "-lcmock", "-lcoap", "-lconsole", "-lnghttp", "-lesp-tls", "-lesp_adc_cal", "-lesp_hid", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lesp_https_server", "-lesp_lcd", "-lprotobuf-c", "-lprotocomm", "-lmdns", "-lesp_local_ctrl", "-lsdmmc", "-lesp_serial_slave_link", "-lesp_websocket_client", "-lexpat", "-lwear_levelling", "-lfatfs", "-lfreemodbus", "-ljsmn", "-ljson", "-llibsodium", "-lmqtt", "-lopenssl", "-lperfmon", "-lspiffs", "-ltouch_element", "-lulp", "-lusb", "-lwifi_provisioning", "-lesp-dsp", "-lesp-face", "-lesp32-camera", "-lesp_littlefs", "-lfb_gfx", "-lasio", "-lcbor", "-lcmock", "-lunity", "-lcoap", "-lesp_hid", "-lesp_lcd", "-lesp_local_ctrl", "-lesp_https_server", "-lesp_websocket_client", "-lexpat", "-lfreemodbus", "-ljsmn", "-llibsodium", "-lmqtt", "-lperfmon", "-ltouch_element", "-lusb", "-lesp_adc_cal", "-lfatfs", "-lwear_levelling", "-lopenssl", "-lspiffs", "-lwifi_provisioning", "-lprotocomm", "-lprotobuf-c", "-lmdns", "-lconsole", "-ljson", "-larduino_tinyusb", "-lpe", "-lfd", "-lfr", "-ldetection_cat_face", "-ldetection", "-ldl", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lmbedtls", "-lefuse", "-lapp_update", "-lbootloader_support", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_gdbstub", "-lespcoredump", "-lesp_phy", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_pm", "-lesp_ringbuf", "-ldriver", "-lxtensa", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lsmartconfig", "-lwapi", "-lphy", "-lesp_phy", "-lphy", "-lesp_phy", "-lphy", "-lxt_hal", "-lm", "-lnewlib", "-lstdc++", "-lpthread", "-lgcc", "-lcxx", "-lapp_trace", "-lgcov", "-lapp_trace", "-lgcov", "-lc" ], CPPDEFINES=[ @@ -273,7 +281,7 @@ env.Append( "UNITY_INCLUDE_CONFIG_H", "WITH_POSIX", "_GNU_SOURCE", - ("IDF_VER", '\\"v4.4-dev-1594-g1d7068e4b\\"'), + ("IDF_VER", '\\"v4.4-dev-2030-gd93887f9f-dirty\\"'), "ESP_PLATFORM", "ARDUINO_ARCH_ESP32", "ESP32", diff --git a/tools/sdk/esp32/bin/bootloader_dio_40m.bin b/tools/sdk/esp32/bin/bootloader_dio_40m.bin index 6cb0413134f40bdac71a8dc465c47e7f08211e44..5efd89238dba40e849d62f43fd36fcccfdd2c0c9 100644 GIT binary patch delta 8793 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 L#}zSwJ=y;cPEX96 delta 8990 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 X^6`PsRF`FcZ!CJ@^|(!ak6!tIYnlp@ diff --git a/tools/sdk/esp32/bin/bootloader_dio_80m.bin b/tools/sdk/esp32/bin/bootloader_dio_80m.bin index b904746c54b4c5deedd6ff274772884278eb5498..cbbcf3b7365674d150223d23f1df499cc2cdd411 100644 GIT binary patch delta 8624 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 delta 8866 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 diff --git a/tools/sdk/esp32/bin/bootloader_dout_40m.bin b/tools/sdk/esp32/bin/bootloader_dout_40m.bin index c987ac98740920d9dedf577e2610d439c4f06f8f..218fa82aa8b1068516056c47bb45a58045b30d77 100644 GIT binary patch delta 8793 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 diff --git a/tools/sdk/esp32/bin/bootloader_dout_80m.bin b/tools/sdk/esp32/bin/bootloader_dout_80m.bin index 602cab80bf7a7cd4f9e8ce2618480a990f62332c..81a9c9edc13fcd5fa878c8c443b659ad4064c9e4 100644 GIT binary patch delta 8624 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 delta 8866 zcmZWO3tUvi-shZsu#Y1yf;<%T?84%LfV>n?xh#ZGsRfp(J?@2S(X@w}ul(rSJ*$@% zBV(QVM85huXLA)vt}JHx;>zm1R;Krgb#G-+RB}r*qhetn?4IvGXVG5g_nR~Gf6mN* zX8!Y^nU+73EsbQ-Rf%NQb(z9=gZR})W)nim6?@W?a)Kahsan2SA|olOLW7zmYt1A< z0k@=Opk?5fUm{76ztST46$F6%w;Y7@Hy`m!g}BV9>0f^YF@Ye4?tm6p2;wkHpnzl} zc@nLYzJL_6Y{|=nfC^-@m2XLe5<)7JoJAXD%Or790lg>lLQU2&N=d5+ef`zUKq6>J zD$s-V1%YSy6hSC@fvJmP2;u{lh%`#WN=PSEaOAKuVkXJ7LVveIdJ57*kg6dWAyiz-OCU*<&cfxzeR4vbn*)N zLJ>m_pb^D9v*{(Gn9`jatL&yKY6&`aSsPXHM}qx0G@u|dRW+9r`c)TH^!@a4_Fov) zPhFsT2I2!zd`Gl_<5lFyR}@vQtxP4;gI?Kur|%EM(MaO4q<2>q%3<&!8w>g|XSW7*&K(NkcI9b4m&JNvyY3 zK`TCdbOv4ctWU?T30aynCs)~5hxj#^Xj5`F4gY9}3pY$j$2%wq$K`Wf8|xP46a-t?*TK!Y7 zV0Lk*l=TEb0PW7HjZo zKMab)7Pc*P?jeRrVVGowVPdMPHZkhg<+RFLhqbZ2<8_=8bG7?)keBz4zU-aC4IkX!0up!8jQ90A|63c3j9l%v_Lm%AG68VpS)_Ix+6e zJgVXYLAx(FlovHOSBHp-J^`#jS3oz+8H%dLZI*|=Y_4eVW-5|~EZe`#u8pa+F*P5B zOn)Fp=6+q*8XW3~;`UjrZA49b(D*l|N76~XEHm8?)OUf@u@5NnA%W1}O*Z1W0LnY5 z!3AW)k0WzctPP8IwCmb#4g>q=Aj}k~oK7^FjT`LNAav)b0e*Y%uXPJ=4sv@m7~T?w z8-4>n4KSYkVR|dS3DfzFH?gf)s+F(9SSHNaN-L}0-DW&b0;zqA_OT$-q3P{ldZ#kP zfi3PwgS#h7)i3ozrDDD9N9iQ33ArXtnfWKoc@a1<)s&G_ z5E+$AMxy+vxn=?z!lr7m;l4Mi_~4l9$1xGrbra8%R> zv$0>mHyx7pGG=Y3xIHe>=bJxBunb@PUrq0l%kqhge z+avE42=``mBRaX{Da<=HuZZj<>Exn15I30xIw9w=u>

ut{i%WxMIqRs+QxECs}1 zhj6~FUy?!hke!riFRF^s8=XhND{^JqjK&R_Qt-ufgezirBW&&7=9RhMA$zmj-I5usk4G24C^{c z)5F64T_4hv`~z`2DkV&rgyXeu*iZmk!;S^)=aDpa25CYWv03C-=>FJz@_p12o0EJl zP$nf}uXuVS6@y{#W#uddM3%!Fzm2ZME;k>>inLt;TJfumq2?0N*BQu| z>h28iodHuEVPs-pPdM+W+ZRYwuII?}S770{2Qp^5_XZkAaN}%p3zN?@^;+(In0Ey5 zD5`317Y3|R14p9xR|Cfnci7q`3-g-DJ=$Y9W?^4}s?mu!{atp<{WK0I8ovxRuou}|qFUB&>cYl-8s#pxBEQPmuebj=SKKVU9M z_;~@-s8G`}p(a(fu1MtSiJ)Wo!hn86IC+ho6Rq0Q6! zWjWb_x%qX;fr7#bIWq&s+j>_&QhSzpYoFwTx<}qgIX%MTs!Vy(&^kk4EwZrs!0y7r zwHqv(3s<;O#G3fzfb)By=9;XgKIqblD5#nVm~IHMcaD80@0Yo!1zght^6LWON(vmm zM|;J;ELU^993t|{ZjzSQ)^3o04Rg^Ihl&0EW!+!7Vgt1Nc%JsMzo7fyXFnI{*v8KU zT3*o~UKHz3OHXrS-5jxYKg0gh4?{sG6;X-JJrSMQsp-)_r(~o#|1KPm9`s`@#+?<) z+v^2i~tS>n9(e|R zJ~eKhbD9wAAInsU0VEFFj^m2$oBVWq%Pxy+qks1a3Oo!w)&8WvZI}B=|L&6{t%l9a zbqC5xjEULr?{L^3_wPRz&pV;G|Col~i&i9>jV6r%$B}eZYgF^obTb%Tsc#o9 ztV!vaPH%{7V`As3ZBa+HUF{5emw(LPqr4#Llseda-naGED*H3ZsEW9?_Z z!V9m5x*(y`omaq;Fg{u`N9Usz4=Pqg7gN?ph^~!M_HJKG%djJw*xeS>8ohgtd`t4y zJ-gp5*YQ%Qy)lNccVLFyZKXAZQs`Sd)_ozOhl27xT<#$q?&a*>3Amg{ce|ILdyRb= zy~NC$Dfd|wKKorLLYGCBp*gzTf;^x8y3ozd1~apnxCz!|IOkeyQBByu;-rw{#OG7SZ(&!S8|WNTAZpBcs4>u+hVe#Bc>kK2ZiU|7GR`m@oS z3IPU@H${;Zw?x7XQja$XF{w(kXsjl@ciWWJM=}2r?!q7SVd` zit4SSH%HX#w-_VdxyXa)P(XlgPA|Eel!)1)HG zHp$*Us{I7z8<;!(H5!hwb*qx0(KpiqRP+<-GViOv~>u&;Jfn|1+jbPYx`_(cUi5whf(6D~jF( z)Nt)LYgv!t(-%YzUc*;8xrSupQc`<2T9ckkR-zZ+UxE(9zW{xho&!6Ia;AYyMY%I) zfTy`{W-1wj*qOPj%W+95S-kyCW||THh)|R+#XI&EmT6lZZ96$ z(PV&&8O(3b7|GU=yv@UjlMhrrqliVt^htW5gR5^6_u*(f`j^bycKT%z%TB}y z8`<(fRPW}fwf&5xpSgH(1Dz43DloNQPR|d6QVepJqN>774|H=<(9DLg&9q;89#EBW z9JE$68M7C$kBWpVo+5nG03*@VgVbV*u2ek44bbnL{YXIe>{K(3HrN`>IwSwi(oa3% z{tZBm`*#^~+&{>dmVN|)9ezLe?-FvG>$${jke?E6)+Sbl_g-;O&wHRcmvmt=@d`F8H;Z!Fkuco=$Ltm0NPgQtb_s*D}g zH&7^lCixjkpFLG08xFU}D(=&44q7_9l7u~Ec2@mKEI1y~XuF5)$H