diff --git a/platform.txt b/platform.txt index a96456fa..72f2265a 100644 --- a/platform.txt +++ b/platform.txt @@ -22,8 +22,8 @@ compiler.prefix=xtensa-{build.mcu}-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.2-dev-1660-g7d7521367" -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/xtensa/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/src/esp32" "-I{compiler.sdk.path}/include/soc/src/esp32/include" "-I{compiler.sdk.path}/include/soc/include" "-I{compiler.sdk.path}/include/esp_rom/include" "-I{compiler.sdk.path}/include/esp_common/include" "-I{compiler.sdk.path}/include/esp_system/include" "-I{compiler.sdk.path}/include/xtensa/include" "-I{compiler.sdk.path}/include/xtensa/esp32/include" "-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_ringbuf/include" "-I{compiler.sdk.path}/include/efuse/include" "-I{compiler.sdk.path}/include/efuse/esp32/include" "-I{compiler.sdk.path}/include/espcoredump/include" "-I{compiler.sdk.path}/include/esp_timer/include" "-I{compiler.sdk.path}/include/soc/soc/esp32" "-I{compiler.sdk.path}/include/soc/soc/esp32/include" "-I{compiler.sdk.path}/include/soc/soc/include" "-I{compiler.sdk.path}/include/vfs/include" "-I{compiler.sdk.path}/include/esp_wifi/include" "-I{compiler.sdk.path}/include/esp_wifi/esp32/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/app_trace/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/bootloader_support/include" "-I{compiler.sdk.path}/include/app_update/include" "-I{compiler.sdk.path}/include/spi_flash/include" "-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/nvs_flash/include" "-I{compiler.sdk.path}/include/pthread/include" "-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/include" "-I{compiler.sdk.path}/include/bt/common/osi/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/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_adc_cal/include" "-I{compiler.sdk.path}/include/esp_gdbstub/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/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/unity/include" "-I{compiler.sdk.path}/include/unity/unity/src" "-I{compiler.sdk.path}/include/wifi_provisioning/include" "-I{compiler.sdk.path}/include/fb_gfx/include" -compiler.c.elf.libs.esp32=-lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lasio -lbt -lcbor -lcoap -lconsole -lnghttp -lesp-tls -lesp_adc_cal -lesp_gdbstub -lesp_hid -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -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 -lunity -lwifi_provisioning -lfb_gfx -lasio -lcbor -lcoap -lesp_gdbstub -lesp_hid -lesp_https_ota -lesp_local_ctrl -lesp_serial_slave_link -lesp_websocket_client -lexpat -lfreemodbus -ljsmn -llibsodium -lmqtt -lunity -lwifi_provisioning -lprotocomm -lprotobuf-c -ljson -lfb_gfx -lbt -lbtdm_app -lesp_adc_cal -lmdns -lconsole -lfatfs -lsdmmc -lwear_levelling -lopenssl -lspiffs -lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lhal -lm -lnewlib -lgcc -lstdc++ -lpthread -lapp_trace -lgcov -lapp_trace -lgcov -lc +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.2-dev-1905-g625bd5eb1-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/xtensa/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/src/esp32" "-I{compiler.sdk.path}/include/soc/src/esp32/include" "-I{compiler.sdk.path}/include/soc/include" "-I{compiler.sdk.path}/include/esp_rom/include" "-I{compiler.sdk.path}/include/esp_common/include" "-I{compiler.sdk.path}/include/esp_system/include" "-I{compiler.sdk.path}/include/xtensa/include" "-I{compiler.sdk.path}/include/xtensa/esp32/include" "-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_ringbuf/include" "-I{compiler.sdk.path}/include/efuse/include" "-I{compiler.sdk.path}/include/efuse/esp32/include" "-I{compiler.sdk.path}/include/espcoredump/include" "-I{compiler.sdk.path}/include/esp_timer/include" "-I{compiler.sdk.path}/include/esp_ipc/include" "-I{compiler.sdk.path}/include/soc/soc/esp32" "-I{compiler.sdk.path}/include/soc/soc/esp32/include" "-I{compiler.sdk.path}/include/soc/soc/include" "-I{compiler.sdk.path}/include/vfs/include" "-I{compiler.sdk.path}/include/esp_wifi/include" "-I{compiler.sdk.path}/include/esp_wifi/esp32/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/app_trace/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/bootloader_support/include" "-I{compiler.sdk.path}/include/app_update/include" "-I{compiler.sdk.path}/include/spi_flash/include" "-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/nvs_flash/include" "-I{compiler.sdk.path}/include/pthread/include" "-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/include" "-I{compiler.sdk.path}/include/bt/common/osi/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/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_adc_cal/include" "-I{compiler.sdk.path}/include/esp_gdbstub/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/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/unity/include" "-I{compiler.sdk.path}/include/unity/unity/src" "-I{compiler.sdk.path}/include/wifi_provisioning/include" "-I{compiler.sdk.path}/include/fb_gfx/include" +compiler.c.elf.libs.esp32=-lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lasio -lbt -lcbor -lcoap -lconsole -lnghttp -lesp-tls -lesp_adc_cal -lesp_gdbstub -lesp_hid -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -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 -lunity -lwifi_provisioning -lfb_gfx -lasio -lcbor -lcoap -lesp_gdbstub -lesp_hid -lesp_https_ota -lesp_local_ctrl -lesp_serial_slave_link -lesp_websocket_client -lexpat -lfreemodbus -ljsmn -llibsodium -lmqtt -lunity -lwifi_provisioning -lprotocomm -lprotobuf-c -ljson -lfb_gfx -lbt -lbtdm_app -lesp_adc_cal -lmdns -lconsole -lfatfs -lsdmmc -lwear_levelling -lopenssl -lspiffs -lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lhal -lm -lnewlib -lgcc -lstdc++ -lpthread -lapp_trace -lgcov -lapp_trace -lgcov -lc compiler.c.flags.esp32=-mlongcalls -Wno-frame-address -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw -Og -fstack-protector -std=gnu99 -Wno-old-style-declaration -MMD -c compiler.cpp.flags.esp32=-mlongcalls -Wno-frame-address -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw -Og -fstack-protector -std=gnu++11 -fexceptions -fno-rtti -MMD -c compiler.S.flags.esp32=-ffunction-sections -fdata-sections -fstrict-volatile-bitfields -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw -Og -fstack-protector -x assembler-with-cpp -MMD -c @@ -36,8 +36,8 @@ compiler.ar.flags.esp32=cru # # 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.2-dev-1660-g7d7521367-dirty" -DESP_PLATFORM -DCFG_TUSB_MCU=OPT_MCU_ESP32_S2 "-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/xtensa/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/src/esp32s2" "-I{compiler.sdk.path}/include/soc/src/esp32s2/include" "-I{compiler.sdk.path}/include/soc/include" "-I{compiler.sdk.path}/include/esp_rom/include" "-I{compiler.sdk.path}/include/esp_common/include" "-I{compiler.sdk.path}/include/esp_system/include" "-I{compiler.sdk.path}/include/xtensa/include" "-I{compiler.sdk.path}/include/xtensa/esp32s2/include" "-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_ringbuf/include" "-I{compiler.sdk.path}/include/efuse/include" "-I{compiler.sdk.path}/include/efuse/esp32s2/include" "-I{compiler.sdk.path}/include/espcoredump/include" "-I{compiler.sdk.path}/include/esp_timer/include" "-I{compiler.sdk.path}/include/soc/soc/esp32s2" "-I{compiler.sdk.path}/include/soc/soc/esp32s2/include" "-I{compiler.sdk.path}/include/soc/soc/include" "-I{compiler.sdk.path}/include/vfs/include" "-I{compiler.sdk.path}/include/esp_wifi/include" "-I{compiler.sdk.path}/include/esp_wifi/esp32s2/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/app_trace/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/bootloader_support/include" "-I{compiler.sdk.path}/include/app_update/include" "-I{compiler.sdk.path}/include/spi_flash/include" "-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/nvs_flash/include" "-I{compiler.sdk.path}/include/pthread/include" "-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/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_gdbstub/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/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/tinyusb/port/esp32s2/include" "-I{compiler.sdk.path}/include/tinyusb/port/common/include" "-I{compiler.sdk.path}/include/tinyusb/tinyusb/hw/bsp" "-I{compiler.sdk.path}/include/tinyusb/tinyusb/src" "-I{compiler.sdk.path}/include/tinyusb/tinyusb/src/device" "-I{compiler.sdk.path}/include/freertos/include/freertos" "-I{compiler.sdk.path}/include/ulp/include" "-I{compiler.sdk.path}/include/unity/include" "-I{compiler.sdk.path}/include/unity/unity/src" "-I{compiler.sdk.path}/include/wifi_provisioning/include" "-I{compiler.sdk.path}/include/fb_gfx/include" -compiler.c.elf.libs.esp32s2=-lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lasio -lcbor -lcoap -lconsole -lnghttp -lesp-tls -lesp_gdbstub -lesp_hid -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lesp_https_server -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 -ltinyusb -lulp -lunity -lwifi_provisioning -lfb_gfx -lasio -lcbor -lcoap -lesp_gdbstub -lesp_hid -lesp_https_ota -lesp_local_ctrl -lesp_https_server -lesp_serial_slave_link -lesp_websocket_client -lexpat -lfreemodbus -ljsmn -llibsodium -lmqtt -lperfmon -lunity -lwifi_provisioning -lprotocomm -lprotobuf-c -ljson -lfb_gfx -lmdns -lconsole -lfatfs -lsdmmc -lwear_levelling -lopenssl -lspiffs -ltinyusb -lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32s2 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32s2 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32s2 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32s2 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lhal -lm -lnewlib -lgcc -lstdc++ -lpthread -lapp_trace -lgcov -lapp_trace -lgcov -lc +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.2-dev-1905-g625bd5eb1-dirty" -DESP_PLATFORM -DCFG_TUSB_MCU=OPT_MCU_ESP32_S2 "-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/xtensa/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/src/esp32s2" "-I{compiler.sdk.path}/include/soc/src/esp32s2/include" "-I{compiler.sdk.path}/include/soc/include" "-I{compiler.sdk.path}/include/esp_rom/include" "-I{compiler.sdk.path}/include/esp_common/include" "-I{compiler.sdk.path}/include/esp_system/include" "-I{compiler.sdk.path}/include/xtensa/include" "-I{compiler.sdk.path}/include/xtensa/esp32s2/include" "-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_ringbuf/include" "-I{compiler.sdk.path}/include/efuse/include" "-I{compiler.sdk.path}/include/efuse/esp32s2/include" "-I{compiler.sdk.path}/include/espcoredump/include" "-I{compiler.sdk.path}/include/esp_timer/include" "-I{compiler.sdk.path}/include/esp_ipc/include" "-I{compiler.sdk.path}/include/soc/soc/esp32s2" "-I{compiler.sdk.path}/include/soc/soc/esp32s2/include" "-I{compiler.sdk.path}/include/soc/soc/include" "-I{compiler.sdk.path}/include/vfs/include" "-I{compiler.sdk.path}/include/esp_wifi/include" "-I{compiler.sdk.path}/include/esp_wifi/esp32s2/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/app_trace/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/bootloader_support/include" "-I{compiler.sdk.path}/include/app_update/include" "-I{compiler.sdk.path}/include/spi_flash/include" "-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/nvs_flash/include" "-I{compiler.sdk.path}/include/pthread/include" "-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/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_gdbstub/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/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/tinyusb/port/esp32s2/include" "-I{compiler.sdk.path}/include/tinyusb/port/common/include" "-I{compiler.sdk.path}/include/tinyusb/tinyusb/hw/bsp" "-I{compiler.sdk.path}/include/tinyusb/tinyusb/src" "-I{compiler.sdk.path}/include/tinyusb/tinyusb/src/device" "-I{compiler.sdk.path}/include/freertos/include/freertos" "-I{compiler.sdk.path}/include/ulp/include" "-I{compiler.sdk.path}/include/unity/include" "-I{compiler.sdk.path}/include/unity/unity/src" "-I{compiler.sdk.path}/include/wifi_provisioning/include" "-I{compiler.sdk.path}/include/fb_gfx/include" +compiler.c.elf.libs.esp32s2=-lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lasio -lcbor -lcoap -lconsole -lnghttp -lesp-tls -lesp_gdbstub -lesp_hid -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lesp_https_server -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 -ltinyusb -lulp -lunity -lwifi_provisioning -lfb_gfx -lasio -lcbor -lcoap -lesp_gdbstub -lesp_hid -lesp_https_ota -lesp_local_ctrl -lesp_https_server -lesp_serial_slave_link -lesp_websocket_client -lexpat -lfreemodbus -ljsmn -llibsodium -lmqtt -lperfmon -lunity -lwifi_provisioning -lprotocomm -lprotobuf-c -ljson -lfb_gfx -lmdns -lconsole -lfatfs -lsdmmc -lwear_levelling -lopenssl -lspiffs -ltinyusb -lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32s2 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32s2 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32s2 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lesp_system -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lnvs_flash -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lpthread -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32s2 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lhal -lm -lnewlib -lgcc -lstdc++ -lpthread -lapp_trace -lgcov -lapp_trace -lgcov -lc compiler.c.flags.esp32s2=-mlongcalls -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -Og -fstack-protector -std=gnu99 -Wno-old-style-declaration -MMD -c compiler.cpp.flags.esp32s2=-mlongcalls -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -Og -fstack-protector -std=gnu++11 -fexceptions -fno-rtti -MMD -c compiler.S.flags.esp32s2=-ffunction-sections -fdata-sections -fstrict-volatile-bitfields -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -Og -fstack-protector -x assembler-with-cpp -MMD -c diff --git a/tools/esptool.py b/tools/esptool.py index aa10272e..4637cc72 100755 --- a/tools/esptool.py +++ b/tools/esptool.py @@ -257,6 +257,8 @@ class ESPLoader(object): with ones which throw NotImplementedInROMError(). """ + self.secure_download_mode = False # flag is set to True if esptool detects the ROM is in Secure Download Mode + if isinstance(port, basestring): self._port = serial.serial_for_url(port) else: @@ -309,6 +311,9 @@ class ESPLoader(object): inst = cls(detect_port._port, baud, trace_enabled=trace_enabled) print(' %s' % inst.CHIP_NAME, end='') return inst + except UnsupportedCommandError: + raise FatalError("Unsupported Command Error received. Probably this means Secure Download Mode is enabled, " + + "autodetection will not work. Need to manually specify the chip.") finally: print('') # end line raise FatalError("Unexpected UART datecode value 0x%08x. Failed to autodetect chip type." % (date_reg)) @@ -381,7 +386,8 @@ class ESPLoader(object): if op is None or op_ret == op: return val, data if byte(data, 0) != 0 and byte(data, 1) == self.ROM_INVALID_RECV_MSG: - raise UnsupportedCommandError() + self.flush_input() # Unsupported read_reg can result in more than one error response for some reason + raise UnsupportedCommandError(self) finally: if new_timeout != saved_timeout: @@ -515,20 +521,23 @@ class ESPLoader(object): raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error)) if not detecting: - # check the date code registers match what we expect to see - date_reg = self.read_reg(self.UART_DATE_REG_ADDR) - date_reg2 = self.read_reg(self.UART_DATE_REG2_ADDR) - if date_reg != self.DATE_REG_VALUE or (self.DATE_REG2_VALUE is not None and date_reg2 != self.DATE_REG2_VALUE): - actually = None - for cls in [ESP8266ROM, ESP32ROM, ESP32S2ROM]: - if date_reg == cls.DATE_REG_VALUE and (cls.DATE_REG2_VALUE is None or date_reg2 == cls.DATE_REG2_VALUE): - actually = cls - break - if actually is None: - print(("WARNING: This chip doesn't appear to be a %s (date codes 0x%08x:0x%08x). " + - "Probably it is unsupported by this version of esptool.") % (self.CHIP_NAME, date_reg, date_reg2)) - else: - raise FatalError("This chip is %s not %s. Wrong --chip argument?" % (actually.CHIP_NAME, self.CHIP_NAME)) + try: + # check the date code registers match what we expect to see + date_reg = self.read_reg(self.UART_DATE_REG_ADDR) + date_reg2 = self.read_reg(self.UART_DATE_REG2_ADDR) + if date_reg != self.DATE_REG_VALUE or (self.DATE_REG2_VALUE is not None and date_reg2 != self.DATE_REG2_VALUE): + actually = None + for cls in [ESP8266ROM, ESP32ROM, ESP32S2ROM]: + if date_reg == cls.DATE_REG_VALUE and (cls.DATE_REG2_VALUE is None or date_reg2 == cls.DATE_REG2_VALUE): + actually = cls + break + if actually is None: + print(("WARNING: This chip doesn't appear to be a %s (date codes 0x%08x:0x%08x). " + + "Probably it is unsupported by this version of esptool.") % (self.CHIP_NAME, date_reg, date_reg2)) + else: + raise FatalError("This chip is %s not %s. Wrong --chip argument?" % (actually.CHIP_NAME, self.CHIP_NAME)) + except UnsupportedCommandError: + self.secure_download_mode = True def read_reg(self, addr): """ Read memory address in target """ @@ -1497,7 +1506,12 @@ class ESP32S2ROM(ESP32ROM): return "ESP32-S2" def get_chip_features(self): - return ["WiFi"] + result = ["WiFi"] + + if self.secure_download_mode: + result.append("Secure Download Mode Enabled") + + return result def get_crystal_freq(self): # ESP32-S2 XTAL is fixed to 40MHz @@ -1549,6 +1563,7 @@ class ESP32StubLoader(ESP32ROM): 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 @@ -1568,6 +1583,7 @@ class ESP32S2StubLoader(ESP32S2ROM): 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 @@ -2433,10 +2449,14 @@ class UnsupportedCommandError(FatalError): """ Wrapper class for when ROM loader returns an invalid command response. -Usually this indicates the loader is running in a reduced mode. + Usually this indicates the loader is running in Secure Download Mode. """ - def __init__(self): - FatalError.__init__(self, "Invalid (unsupported) command") + def __init__(self, esp): + if esp.secure_download_mode: + msg = "This command is not supported in Secure Download Mode" + else: + msg = "Invalid (unsupported) command" + FatalError.__init__(self, msg) def load_ram(esp, args): @@ -2484,6 +2504,8 @@ def dump_mem(esp, args): def detect_flash_size(esp, args): if args.flash_size == 'detect': + if esp.secure_download_mode: + raise FatalError("Detecting flash size is not supported in secure download mode. Need to manually specify flash size.") flash_id = esp.flash_id() size_id = flash_id >> 16 args.flash_size = DETECTED_FLASH_SIZES.get(size_id) @@ -2644,7 +2666,7 @@ def write_flash(esp, args): speed_msg = " (%.1f kbit/s)" % (written / t * 8 / 1000) print_overwrite('Wrote %d bytes at 0x%08x in %.1f seconds%s...' % (written, address, t, speed_msg), last_line=True) - if not args.encrypt: + if not args.encrypt and not esp.secure_download_mode: try: res = esp.flash_md5sum(address, uncsize) if res != calcmd5: @@ -3186,10 +3208,17 @@ def main(custom_commandline=None): print("Crystal is %dMHz" % esp.get_crystal_freq()) - read_mac(esp, args) + try: + read_mac(esp, args) + except UnsupportedCommandError: + pass # can't get this data in Secure Download Mode if not args.no_stub: - esp = esp.run_stub() + if esp.secure_download_mode: + print("WARNING: Stub loader is not supported in Secure Download Mode, setting --no-stub") + args.no_stub = True + else: + esp = esp.run_stub() if args.override_vddsdio: esp.override_vddsdio(args.override_vddsdio) diff --git a/tools/platformio-build-esp32.py b/tools/platformio-build-esp32.py index b85fbd8f..12dac67e 100644 --- a/tools/platformio-build-esp32.py +++ b/tools/platformio-build-esp32.py @@ -131,6 +131,7 @@ env.Append( join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "efuse", "esp32", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "espcoredump", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp_timer", "include"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp_ipc", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "soc", "soc", "esp32"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "soc", "soc", "esp32", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "soc", "soc", "include"), @@ -214,7 +215,7 @@ env.Append( ], LIBS=[ - "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lasio", "-lbt", "-lcbor", "-lcoap", "-lconsole", "-lnghttp", "-lesp-tls", "-lesp_adc_cal", "-lesp_gdbstub", "-lesp_hid", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-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", "-lunity", "-lwifi_provisioning", "-lfb_gfx", "-lasio", "-lcbor", "-lcoap", "-lesp_gdbstub", "-lesp_hid", "-lesp_https_ota", "-lesp_local_ctrl", "-lesp_serial_slave_link", "-lesp_websocket_client", "-lexpat", "-lfreemodbus", "-ljsmn", "-llibsodium", "-lmqtt", "-lunity", "-lwifi_provisioning", "-lprotocomm", "-lprotobuf-c", "-ljson", "-lfb_gfx", "-lbt", "-lbtdm_app", "-lesp_adc_cal", "-lmdns", "-lconsole", "-lfatfs", "-lsdmmc", "-lwear_levelling", "-lopenssl", "-lspiffs", "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lhal", "-lm", "-lnewlib", "-lgcc", "-lstdc++", "-lpthread", "-lapp_trace", "-lgcov", "-lapp_trace", "-lgcov", "-lc" + "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lasio", "-lbt", "-lcbor", "-lcoap", "-lconsole", "-lnghttp", "-lesp-tls", "-lesp_adc_cal", "-lesp_gdbstub", "-lesp_hid", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-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", "-lunity", "-lwifi_provisioning", "-lfb_gfx", "-lasio", "-lcbor", "-lcoap", "-lesp_gdbstub", "-lesp_hid", "-lesp_https_ota", "-lesp_local_ctrl", "-lesp_serial_slave_link", "-lesp_websocket_client", "-lexpat", "-lfreemodbus", "-ljsmn", "-llibsodium", "-lmqtt", "-lunity", "-lwifi_provisioning", "-lprotocomm", "-lprotobuf-c", "-ljson", "-lfb_gfx", "-lbt", "-lbtdm_app", "-lesp_adc_cal", "-lmdns", "-lconsole", "-lfatfs", "-lsdmmc", "-lwear_levelling", "-lopenssl", "-lspiffs", "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lhal", "-lm", "-lnewlib", "-lgcc", "-lstdc++", "-lpthread", "-lapp_trace", "-lgcov", "-lapp_trace", "-lgcov", "-lc" ], CPPDEFINES=[ @@ -223,7 +224,7 @@ env.Append( "UNITY_INCLUDE_CONFIG_H", "WITH_POSIX", "_GNU_SOURCE", - ("IDF_VER", '\\"v4.2-dev-1660-g7d7521367\\"'), + ("IDF_VER", '\\"v4.2-dev-1905-g625bd5eb1-dirty\\"'), "ESP_PLATFORM", "ARDUINO_ARCH_ESP32", "ESP32", diff --git a/tools/platformio-build-esp32s2.py b/tools/platformio-build-esp32s2.py index ddf4e019..4057af1a 100644 --- a/tools/platformio-build-esp32s2.py +++ b/tools/platformio-build-esp32s2.py @@ -126,6 +126,7 @@ env.Append( join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "efuse", "esp32s2", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "espcoredump", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_timer", "include"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_ipc", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "soc", "soc", "esp32s2"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "soc", "soc", "esp32s2", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "soc", "soc", "include"), @@ -212,7 +213,7 @@ env.Append( ], LIBS=[ - "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lasio", "-lcbor", "-lcoap", "-lconsole", "-lnghttp", "-lesp-tls", "-lesp_gdbstub", "-lesp_hid", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lesp_https_server", "-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", "-ltinyusb", "-lulp", "-lunity", "-lwifi_provisioning", "-lfb_gfx", "-lasio", "-lcbor", "-lcoap", "-lesp_gdbstub", "-lesp_hid", "-lesp_https_ota", "-lesp_local_ctrl", "-lesp_https_server", "-lesp_serial_slave_link", "-lesp_websocket_client", "-lexpat", "-lfreemodbus", "-ljsmn", "-llibsodium", "-lmqtt", "-lperfmon", "-lunity", "-lwifi_provisioning", "-lprotocomm", "-lprotobuf-c", "-ljson", "-lfb_gfx", "-lmdns", "-lconsole", "-lfatfs", "-lsdmmc", "-lwear_levelling", "-lopenssl", "-lspiffs", "-ltinyusb", "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32s2", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32s2", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32s2", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32s2", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lhal", "-lm", "-lnewlib", "-lgcc", "-lstdc++", "-lpthread", "-lapp_trace", "-lgcov", "-lapp_trace", "-lgcov", "-lc" + "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lasio", "-lcbor", "-lcoap", "-lconsole", "-lnghttp", "-lesp-tls", "-lesp_gdbstub", "-lesp_hid", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lesp_https_server", "-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", "-ltinyusb", "-lulp", "-lunity", "-lwifi_provisioning", "-lfb_gfx", "-lasio", "-lcbor", "-lcoap", "-lesp_gdbstub", "-lesp_hid", "-lesp_https_ota", "-lesp_local_ctrl", "-lesp_https_server", "-lesp_serial_slave_link", "-lesp_websocket_client", "-lexpat", "-lfreemodbus", "-ljsmn", "-llibsodium", "-lmqtt", "-lperfmon", "-lunity", "-lwifi_provisioning", "-lprotocomm", "-lprotobuf-c", "-ljson", "-lfb_gfx", "-lmdns", "-lconsole", "-lfatfs", "-lsdmmc", "-lwear_levelling", "-lopenssl", "-lspiffs", "-ltinyusb", "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32s2", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32s2", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32s2", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lesp_system", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lnvs_flash", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lpthread", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32s2", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lhal", "-lm", "-lnewlib", "-lgcc", "-lstdc++", "-lpthread", "-lapp_trace", "-lgcov", "-lapp_trace", "-lgcov", "-lc" ], CPPDEFINES=[ @@ -221,7 +222,7 @@ env.Append( "UNITY_INCLUDE_CONFIG_H", "WITH_POSIX", "_GNU_SOURCE", - ("IDF_VER", '\\"v4.2-dev-1660-g7d7521367-dirty\\"'), + ("IDF_VER", '\\"v4.2-dev-1905-g625bd5eb1-dirty\\"'), "ESP_PLATFORM", ("CFG_TUSB_MCU", 'OPT_MCU_ESP32_S2'), "ARDUINO_ARCH_ESP32", diff --git a/tools/sdk/esp32/bin/bootloader_dio_40m.bin b/tools/sdk/esp32/bin/bootloader_dio_40m.bin index 4d6ad34d..09236fa3 100644 Binary files a/tools/sdk/esp32/bin/bootloader_dio_40m.bin and b/tools/sdk/esp32/bin/bootloader_dio_40m.bin differ diff --git a/tools/sdk/esp32/bin/bootloader_dio_80m.bin b/tools/sdk/esp32/bin/bootloader_dio_80m.bin index 68310015..acf317e8 100644 Binary files a/tools/sdk/esp32/bin/bootloader_dio_80m.bin and b/tools/sdk/esp32/bin/bootloader_dio_80m.bin differ diff --git a/tools/sdk/esp32/bin/bootloader_dout_40m.bin b/tools/sdk/esp32/bin/bootloader_dout_40m.bin index 4d6ad34d..09236fa3 100644 Binary files a/tools/sdk/esp32/bin/bootloader_dout_40m.bin and b/tools/sdk/esp32/bin/bootloader_dout_40m.bin differ diff --git a/tools/sdk/esp32/bin/bootloader_dout_80m.bin b/tools/sdk/esp32/bin/bootloader_dout_80m.bin index 68310015..acf317e8 100644 Binary files a/tools/sdk/esp32/bin/bootloader_dout_80m.bin and b/tools/sdk/esp32/bin/bootloader_dout_80m.bin differ diff --git a/tools/sdk/esp32/bin/bootloader_qio_40m.bin b/tools/sdk/esp32/bin/bootloader_qio_40m.bin index 4d6ad34d..09236fa3 100644 Binary files a/tools/sdk/esp32/bin/bootloader_qio_40m.bin and b/tools/sdk/esp32/bin/bootloader_qio_40m.bin differ diff --git a/tools/sdk/esp32/bin/bootloader_qio_80m.bin b/tools/sdk/esp32/bin/bootloader_qio_80m.bin index 68310015..acf317e8 100644 Binary files a/tools/sdk/esp32/bin/bootloader_qio_80m.bin and b/tools/sdk/esp32/bin/bootloader_qio_80m.bin differ diff --git a/tools/sdk/esp32/bin/bootloader_qout_40m.bin b/tools/sdk/esp32/bin/bootloader_qout_40m.bin index 4d6ad34d..09236fa3 100644 Binary files a/tools/sdk/esp32/bin/bootloader_qout_40m.bin and b/tools/sdk/esp32/bin/bootloader_qout_40m.bin differ diff --git a/tools/sdk/esp32/bin/bootloader_qout_80m.bin b/tools/sdk/esp32/bin/bootloader_qout_80m.bin index 68310015..acf317e8 100644 Binary files a/tools/sdk/esp32/bin/bootloader_qout_80m.bin and b/tools/sdk/esp32/bin/bootloader_qout_80m.bin differ diff --git a/tools/sdk/esp32/include/app_update/include/esp_ota_ops.h b/tools/sdk/esp32/include/app_update/include/esp_ota_ops.h index 4dc2b80f..3bb063d3 100644 --- a/tools/sdk/esp32/include/app_update/include/esp_ota_ops.h +++ b/tools/sdk/esp32/include/app_update/include/esp_ota_ops.h @@ -117,6 +117,29 @@ esp_err_t esp_ota_begin(const esp_partition_t* partition, size_t image_size, esp */ esp_err_t esp_ota_write(esp_ota_handle_t handle, const void* data, size_t size); +/** + * @brief Write OTA update data to partition + * + * This function can write data in non contiguous manner. + * If flash encryption is enabled, data should be 16 byte aligned. + * + * @param handle Handle obtained from esp_ota_begin + * @param data Data buffer to write + * @param size Size of data buffer in bytes + * @param offset Offset in flash partition + * + * @note While performing OTA, if the packets arrive out of order, esp_ota_write_with_offset() can be used to write data in non contiguous manner. + * Use of esp_ota_write_with_offset() in combination with esp_ota_write() is not recommended. + * + * @return + * - ESP_OK: Data was written to flash successfully. + * - ESP_ERR_INVALID_ARG: handle is invalid. + * - ESP_ERR_OTA_VALIDATE_FAILED: First byte of image contains invalid app image magic byte. + * - ESP_ERR_FLASH_OP_TIMEOUT or ESP_ERR_FLASH_OP_FAIL: Flash write failed. + * - ESP_ERR_OTA_SELECT_INFO_INVALID: OTA data partition has invalid contents + */ +esp_err_t esp_ota_write_with_offset(esp_ota_handle_t handle, const void *data, size_t size, uint32_t offset); + /** * @brief Finish OTA update and validate newly written app image. * diff --git a/tools/sdk/esp32/include/bootloader_support/include/esp_flash_encrypt.h b/tools/sdk/esp32/include/bootloader_support/include/esp_flash_encrypt.h index 50023717..fc1b3729 100644 --- a/tools/sdk/esp32/include/bootloader_support/include/esp_flash_encrypt.h +++ b/tools/sdk/esp32/include/bootloader_support/include/esp_flash_encrypt.h @@ -128,6 +128,10 @@ esp_err_t esp_flash_encrypt_region(uint32_t src_addr, size_t data_length); * is enabled but secure boot is not used. This should protect against * serial re-flashing of an unauthorised code in absence of secure boot. * + * @note On ESP32 V3 only, write protecting FLASH_CRYPT_CNT will also prevent + * disabling UART Download Mode. If both are wanted, call + * esp_efuse_disable_rom_download_mode() before calling this function. + * */ void esp_flash_write_protect_crypt_cnt(void); diff --git a/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api/esp_gap_ble_api.h b/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api/esp_gap_ble_api.h index 59cf45bb..3abef78b 100644 --- a/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api/esp_gap_ble_api.h +++ b/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api/esp_gap_ble_api.h @@ -977,6 +977,16 @@ esp_err_t esp_ble_gap_config_local_icon (uint16_t icon); */ esp_err_t esp_ble_gap_update_whitelist(bool add_remove, esp_bd_addr_t remote_bda, esp_ble_wl_addr_type_t wl_addr_type); +/** +* @brief Clear all white list +* +* @return +* - ESP_OK : success +* - other : failed +* +*/ +esp_err_t esp_ble_gap_clear_whitelist(void); + /** * @brief Get the whitelist size in the controller * diff --git a/tools/sdk/esp32/include/config/sdkconfig.h b/tools/sdk/esp32/include/config/sdkconfig.h index efc39fe6..79949888 100644 --- a/tools/sdk/esp32/include/config/sdkconfig.h +++ b/tools/sdk/esp32/include/config/sdkconfig.h @@ -22,6 +22,7 @@ #define CONFIG_BOOTLOADER_WDT_TIME_MS 9000 #define CONFIG_BOOTLOADER_RESERVE_RTC_SIZE 0x0 #define CONFIG_ESPTOOLPY_BAUD_OTHER_VAL 115200 +#define CONFIG_ESPTOOLPY_WITH_STUB 1 #define CONFIG_ESPTOOLPY_FLASHMODE_DIO 1 #define CONFIG_ESPTOOLPY_FLASHMODE "dio" #define CONFIG_ESPTOOLPY_FLASHFREQ_40M 1 @@ -187,6 +188,7 @@ #define CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA 1 #define CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP 1 #define CONFIG_ESP_MAC_ADDR_UNIVERSE_BT 1 +#define CONFIG_ESP_MAC_ADDR_UNIVERSE_BT_OFFSET 2 #define CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH 1 #define CONFIG_ETH_ENABLED 1 #define CONFIG_ETH_USE_ESP32_EMAC 1 diff --git a/tools/sdk/esp32/include/driver/include/driver/adc_common.h b/tools/sdk/esp32/include/driver/include/driver/adc_common.h index 25dc7055..9f896a55 100644 --- a/tools/sdk/esp32/include/driver/include/driver/adc_common.h +++ b/tools/sdk/esp32/include/driver/include/driver/adc_common.h @@ -158,7 +158,7 @@ esp_err_t adc1_config_width(adc_bits_width_t width_bit); * When enabling power for any of these peripherals, ignore input from GPIO36 and GPIO39. * Please refer to section 3.11 of 'ECO_and_Workarounds_for_Bugs_in_ESP32' for the description of this issue. * - * @note Call adc1_config_width() before the first time this + * @note Call ``adc1_config_width()`` before the first time this * function is called. * * @note For any given channel, adc1_config_channel_atten(channel) @@ -230,9 +230,9 @@ esp_err_t adc_set_data_width(adc_unit_t adc_unit, adc_bits_width_t width_bit); * @brief Configure ADC1 to be usable by the ULP * * This function reconfigures ADC1 to be controlled by the ULP. - * Effect of this function can be reverted using adc1_get_raw function. + * Effect of this function can be reverted using ``adc1_get_raw()`` function. * - * Note that adc1_config_channel_atten, adc1_config_width functions need + * Note that adc1_config_channel_atten, ``adc1_config_width()`` functions need * to be called to configure ADC1 channels, before ADC1 is used by the ULP. */ void adc1_ulp_enable(void); diff --git a/tools/sdk/esp32/include/driver/include/driver/i2s.h b/tools/sdk/esp32/include/driver/include/driver/i2s.h index f976a31c..2a35a215 100644 --- a/tools/sdk/esp32/include/driver/include/driver/i2s.h +++ b/tools/sdk/esp32/include/driver/include/driver/i2s.h @@ -1,4 +1,4 @@ -// Copyright 2015-2019 Espressif Systems (Shanghai) PTE LTD +// Copyright 2015-2020 Espressif Systems (Shanghai) PTE LTD // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -33,6 +33,8 @@ extern "C" { #endif +#define I2S_PIN_NO_CHANGE (-1) /*!< Use in i2s_pin_config_t for pins which should not be changed */ + typedef intr_handle_t i2s_isr_handle_t; /** @@ -194,7 +196,7 @@ esp_err_t i2s_write_expand(i2s_port_t i2s_num, const void *src, size_t size, siz * * @param ticks_to_wait RX buffer wait timeout in RTOS ticks. If this many ticks pass without bytes becoming available in the DMA receive buffer, then the function will return (note that if data is read from the DMA buffer in pieces, the overall operation may still take longer than this timeout.) Pass portMAX_DELAY for no timeout. * - * @note If the built-in ADC mode is enabled, we should call i2s_adc_start and i2s_adc_stop around the whole reading process, + * @note If the built-in ADC mode is enabled, we should call i2s_adc_enable and i2s_adc_disable around the whole reading process, * to prevent the data getting corrupted. * * @return diff --git a/tools/sdk/esp32/include/efuse/esp32/include/esp_efuse_table.h b/tools/sdk/esp32/include/efuse/esp32/include/esp_efuse_table.h index a0137c01..e8180839 100644 --- a/tools/sdk/esp32/include/efuse/esp32/include/esp_efuse_table.h +++ b/tools/sdk/esp32/include/efuse/esp32/include/esp_efuse_table.h @@ -17,7 +17,7 @@ extern "C" { #endif -// md5_digest_table 2e23344575b3d07f01ecb695294e9770 +// md5_digest_table 11b691b6fa8546a3862a7a876be5f758 // This file was generated from the file esp_efuse_table.csv. DO NOT CHANGE THIS FILE MANUALLY. // If you want to change some fields, you need to change esp_efuse_table.csv file // then run `efuse_common_table` or `efuse_custom_table` command it will generate this file. @@ -36,9 +36,10 @@ extern const esp_efuse_desc_t* ESP_EFUSE_ENCRYPT_CONFIG[]; extern const esp_efuse_desc_t* ESP_EFUSE_DISABLE_DL_ENCRYPT[]; extern const esp_efuse_desc_t* ESP_EFUSE_DISABLE_DL_DECRYPT[]; extern const esp_efuse_desc_t* ESP_EFUSE_DISABLE_DL_CACHE[]; +extern const esp_efuse_desc_t* ESP_EFUSE_FLASH_CRYPT_CNT[]; extern const esp_efuse_desc_t* ESP_EFUSE_DISABLE_JTAG[]; extern const esp_efuse_desc_t* ESP_EFUSE_CONSOLE_DEBUG_DISABLE[]; -extern const esp_efuse_desc_t* ESP_EFUSE_FLASH_CRYPT_CNT[]; +extern const esp_efuse_desc_t* ESP_EFUSE_UART_DOWNLOAD_DIS[]; extern const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_FLASH_CRYPT_CNT[]; extern const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_BLK1[]; extern const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_BLK2[]; diff --git a/tools/sdk/esp32/include/efuse/include/esp_efuse.h b/tools/sdk/esp32/include/efuse/include/esp_efuse.h index 47eb1d15..ab792a49 100644 --- a/tools/sdk/esp32/include/efuse/include/esp_efuse.h +++ b/tools/sdk/esp32/include/efuse/include/esp_efuse.h @@ -21,6 +21,7 @@ extern "C" { #include #include "esp_err.h" #include "esp_log.h" +#include "soc/soc_caps.h" #include "sdkconfig.h" #if CONFIG_IDF_TARGET_ESP32 #include "esp32/esp_efuse.h" @@ -66,6 +67,23 @@ typedef struct esp_efuse_desc_s esp_efuse_desc_t; */ esp_err_t esp_efuse_read_field_blob(const esp_efuse_desc_t* field[], void* dst, size_t dst_size_bits); + +/** + * @brief Read a single bit eFuse field as a boolean value. + * + * @note The value must exist and must be a single bit wide. If there is any possibility of an error + * in the provided arguments, call esp_efuse_read_field_blob() and check the returned value instead. + * + * @note If assertions are enabled and the parameter is invalid, execution will abort + * + * @param[in] field A pointer to the structure describing the fields of efuse. + * @return + * - true: The field parameter is valid and the bit is set. + * - false: The bit is not set, or the parameter is invalid and assertions are disabled. + * + */ +bool esp_efuse_read_field_bit(const esp_efuse_desc_t *field[]); + /** * @brief Reads bits from EFUSE field and returns number of bits programmed as "1". * @@ -114,6 +132,23 @@ esp_err_t esp_efuse_write_field_blob(const esp_efuse_desc_t* field[], const void */ esp_err_t esp_efuse_write_field_cnt(const esp_efuse_desc_t* field[], size_t cnt); +/** + * @brief Write a single bit eFuse field to 1 + * + * For use with eFuse fields that are a single bit. This function will write the bit to value 1 if + * it is not already set, or does nothing if the bit is already set. + * + * This is equivalent to calling esp_efuse_write_field_cnt() with the cnt parameter equal to 1, + * except that it will return ESP_OK if the field is already set to 1. + * + * @param[in] field Pointer to the structure describing the efuse field. + * + * @return + * - ESP_OK: The operation was successfully completed, or the bit was already set to value 1. + * - ESP_ERR_INVALID_ARG: Error in the passed arugments, including if the efuse field is not 1 bit wide. + */ +esp_err_t esp_efuse_write_field_bit(const esp_efuse_desc_t* field[]); + /** * @brief Sets a write protection for the whole block. * @@ -274,15 +309,48 @@ void esp_efuse_reset(void); * By default, if booting from flash fails the ESP32 will boot a * BASIC console in ROM. * - * Call this function (from bootloader or app) to permanently - * disable the console on this chip. - * + * Call this function (from bootloader or app) to permanently disable the console on this chip. * */ void esp_efuse_disable_basic_rom_console(void); #endif +/* @brief Disable ROM Download Mode via eFuse + * + * Permanently disables the ROM Download Mode feature. Once disabled, if the SoC is booted with + * strapping pins set for ROM Download Mode then an error is printed instead. + * + * @note Not all SoCs support this option. An error will be returned if called on an ESP32 + * with a silicon revision lower than 3, as these revisions do not support this option. + * + * @note If ROM Download Mode is already disabled, this function does nothing and returns success. + * + * @return + * - ESP_OK If the eFuse was successfully burned, or had already been burned. + * - ESP_ERR_NOT_SUPPORTED (ESP32 only) This SoC is not capable of disabling UART download mode + * - ESP_ERR_INVALID_STATE (ESP32 only) This eFuse is write protected and cannot be written + */ +esp_err_t esp_efuse_disable_rom_download_mode(void); + +#if SOC_SUPPORTS_SECURE_DL_MODE +/* @brief Switch ROM Download Mode to Secure Download mode via eFuse + * + * Permanently enables Secure Download mode. This mode limits the use of ROM Download Mode functions + * to simple flash read, write and erase operations, plus a command to return a summary of currently + * enabled security features. + * + * @note If Secure Download mode is already enabled, this function does nothing and returns success. + * + * @note Disabling the ROM Download Mode also disables Secure Download Mode. + * + * @return + * - ESP_OK If the eFuse was successfully burned, or had already been burned. + * - ESP_ERR_INVALID_STATE ROM Download Mode has been disabled via eFuse, so Secure Download mode is unavailable. + */ +esp_err_t esp_efuse_enable_rom_secure_download_mode(void); +#endif + /* @brief Write random data to efuse key block write registers * * @note Caller is responsible for ensuring efuse diff --git a/tools/sdk/esp32/include/esp_common/include/esp_crc.h b/tools/sdk/esp32/include/esp_common/include/esp_crc.h index 23a04876..cc14c6ac 100644 --- a/tools/sdk/esp32/include/esp_common/include/esp_crc.h +++ b/tools/sdk/esp32/include/esp_common/include/esp_crc.h @@ -24,6 +24,10 @@ extern "C" { #include "esp32/rom/crc.h" #endif +#if defined(CONFIG_IDF_TARGET_ESP32S2) +#include "esp32s2/rom/crc.h" +#endif + /******************* Polynomials Used in the CRC APIs **************************** * CRC-8 x8+x2+x1+1 0x07 * CRC16-CCITT x16+x12+x5+1 0x1021 @@ -43,6 +47,7 @@ static inline uint32_t esp_crc32_le(uint32_t crc, uint8_t const *buf, uint32_t l return crc32_le(crc, buf, len); } +#if defined(CONFIG_IDF_TARGET_ESP32) /** * @brief CRC32 value in big endian. * @@ -55,6 +60,7 @@ static inline uint32_t esp_crc32_be(uint32_t crc, uint8_t const *buf, uint32_t l { return crc32_be(crc, buf, len); } +#endif /** * @brief CRC16 value in little endian. @@ -69,6 +75,7 @@ static inline uint16_t esp_crc16_le(uint16_t crc, uint8_t const *buf, uint32_t l return crc16_le(crc, buf, len); } +#if defined(CONFIG_IDF_TARGET_ESP32) /** * @brief CRC16 value in big endian. * @@ -81,6 +88,7 @@ static inline uint16_t esp_crc16_be(uint16_t crc, uint8_t const *buf, uint32_t l { return crc16_be(crc, buf, len); } +#endif /** * @brief CRC8 value in little endian. @@ -95,6 +103,7 @@ static inline uint8_t esp_crc8_le(uint8_t crc, uint8_t const *buf, uint32_t len) return crc8_le(crc, buf, len); } +#if defined(CONFIG_IDF_TARGET_ESP32) /** * @brief CRC8 value in big endian. * @@ -107,6 +116,7 @@ static inline uint8_t esp_crc8_be(uint8_t crc, uint8_t const *buf, uint32_t len) { return crc8_be(crc, buf, len); } +#endif #ifdef __cplusplus } diff --git a/tools/sdk/esp32/include/esp_eth/include/esp_eth_mac.h b/tools/sdk/esp32/include/esp_eth/include/esp_eth_mac.h index 47d3678f..7262bb0b 100644 --- a/tools/sdk/esp32/include/esp_eth/include/esp_eth_mac.h +++ b/tools/sdk/esp32/include/esp_eth/include/esp_eth_mac.h @@ -279,6 +279,7 @@ typedef struct { } eth_mac_config_t; #define ETH_MAC_FLAG_WORK_WITH_CACHE_DISABLE (1 << 0) /*!< MAC driver can work when cache is disabled */ +#define ETH_MAC_FLAG_PIN_TO_CORE (1 << 1) /*!< Pin MAC task to the CPU core where driver installation happened */ /** * @brief Default configuration for Ethernet MAC object diff --git a/tools/sdk/esp32/include/esp_http_client/include/esp_http_client.h b/tools/sdk/esp32/include/esp_http_client/include/esp_http_client.h index 8c2c148a..15c64dcc 100644 --- a/tools/sdk/esp32/include/esp_http_client/include/esp_http_client.h +++ b/tools/sdk/esp32/include/esp_http_client/include/esp_http_client.h @@ -525,6 +525,19 @@ int esp_http_client_read_response(esp_http_client_handle_t client, char *buffer, esp_err_t esp_http_client_get_url(esp_http_client_handle_t client, char *url, const int len); +/** + * @brief Get Chunk-Length from client + * + * @param[in] client The esp_http_client handle + * @param[out] len Variable to store length + * + * @return + * - ESP_OK If successful, len will have length of current chunk + * - ESP_FAIL If the server is not a chunked server + * - ESP_ERR_INVALID_ARG If the client or len are NULL + */ +esp_err_t esp_http_client_get_chunk_length(esp_http_client_handle_t client, int *len); + #ifdef __cplusplus } #endif diff --git a/tools/sdk/esp32/include/esp_common/include/esp_ipc.h b/tools/sdk/esp32/include/esp_ipc/include/esp_ipc.h similarity index 100% rename from tools/sdk/esp32/include/esp_common/include/esp_ipc.h rename to tools/sdk/esp32/include/esp_ipc/include/esp_ipc.h diff --git a/tools/sdk/esp32/include/esp_wifi/include/esp_wifi_types.h b/tools/sdk/esp32/include/esp_wifi/include/esp_wifi_types.h index 82e032da..cc7dc02a 100644 --- a/tools/sdk/esp32/include/esp_wifi/include/esp_wifi_types.h +++ b/tools/sdk/esp32/include/esp_wifi/include/esp_wifi_types.h @@ -94,6 +94,7 @@ typedef enum { WIFI_REASON_ASSOC_FAIL = 203, WIFI_REASON_HANDSHAKE_TIMEOUT = 204, WIFI_REASON_CONNECTION_FAIL = 205, + WIFI_REASON_AUTH_CHANGED = 206, } wifi_err_reason_t; typedef enum { diff --git a/tools/sdk/esp32/include/lwip/port/esp32/include/lwipopts.h b/tools/sdk/esp32/include/lwip/port/esp32/include/lwipopts.h index eeacbfd2..978857d6 100644 --- a/tools/sdk/esp32/include/lwip/port/esp32/include/lwipopts.h +++ b/tools/sdk/esp32/include/lwip/port/esp32/include/lwipopts.h @@ -562,6 +562,11 @@ */ #define LWIP_TCP_KEEPALIVE 1 +/** + * LWIP_SO_LINGER==1: Enable SO_LINGER processing. + */ +#define LWIP_SO_LINGER CONFIG_LWIP_SO_LINGER + /** * LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing. */ diff --git a/tools/sdk/esp32/include/mbedtls/port/include/mbedtls/bignum.h b/tools/sdk/esp32/include/mbedtls/port/include/mbedtls/bignum.h index 23cd5634..a317c456 100644 --- a/tools/sdk/esp32/include/mbedtls/port/include/mbedtls/bignum.h +++ b/tools/sdk/esp32/include/mbedtls/port/include/mbedtls/bignum.h @@ -1,4 +1,4 @@ -// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// Copyright 2015-2020 Espressif Systems (Shanghai) PTE LTD // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -11,10 +11,10 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -#ifndef __ESP_MBEDTLS_BIGNUM_H__ -#define __ESP_MBEDTLS_BIGNUM_H__ +#pragma once #include_next "mbedtls/bignum.h" +#include "sdkconfig.h" /** * This is a wrapper for the main mbedtls/bignum.h. This wrapper @@ -58,6 +58,8 @@ void esp_mpi_acquire_hardware(void); */ void esp_mpi_release_hardware(void); +#if CONFIG_MBEDTLS_HARDWARE_MPI + /* @brief MPI modular mupltiplication function * * Calculates Z = (X * Y) mod M using MPI hardware acceleration. @@ -75,4 +77,4 @@ void esp_mpi_release_hardware(void); */ int esp_mpi_mul_mpi_mod(mbedtls_mpi *Z, const mbedtls_mpi *X, const mbedtls_mpi *Y, const mbedtls_mpi *M); -#endif +#endif // CONFIG_MBEDTLS_HARDWARE_MPI diff --git a/tools/sdk/esp32/include/nvs_flash/include/nvs_flash.h b/tools/sdk/esp32/include/nvs_flash/include/nvs_flash.h index 5e25f35a..eb5f2f96 100644 --- a/tools/sdk/esp32/include/nvs_flash/include/nvs_flash.h +++ b/tools/sdk/esp32/include/nvs_flash/include/nvs_flash.h @@ -61,6 +61,20 @@ esp_err_t nvs_flash_init(void); */ esp_err_t nvs_flash_init_partition(const char *partition_label); +/** + * @brief Initialize NVS flash storage for the partition specified by partition pointer. + * + * @param[in] partition pointer to a partition obtained by the ESP partition API. + * + * @return + * - ESP_OK if storage was successfully initialized + * - ESP_ERR_NVS_NO_FREE_PAGES if the NVS storage contains no empty pages + * (which may happen if NVS partition was truncated) + * - ESP_ERR_INVALID_ARG in case partition is NULL + * - one of the error codes from the underlying flash storage driver + */ +esp_err_t nvs_flash_init_partition_ptr(const esp_partition_t *partition); + /** * @brief Deinitialize NVS storage for the default NVS partition * @@ -118,6 +132,26 @@ esp_err_t nvs_flash_erase(void); */ esp_err_t nvs_flash_erase_partition(const char *part_name); +/** + * @brief Erase custom partition. + * + * Erase all content of specified custom partition. + * + * @note + * If the partition is initialized, this function first de-initializes it. + * Afterwards, the partition has to be initialized again to be used. + * + * @param[in] partition pointer to a partition obtained by the ESP partition API. + * + * @return + * - ESP_OK on success + * - ESP_ERR_NOT_FOUND if there is no partition with the specified + * parameters in the partition table + * - ESP_ERR_INVALID_ARG in case partition is NULL + * - one of the error codes from the underlying flash storage driver + */ +esp_err_t nvs_flash_erase_partition_ptr(const esp_partition_t *partition); + /** * @brief Initialize the default NVS partition. * diff --git a/tools/sdk/esp32/include/nvs_flash/include/nvs_handle.hpp b/tools/sdk/esp32/include/nvs_flash/include/nvs_handle.hpp index 8699974a..d87c1c28 100644 --- a/tools/sdk/esp32/include/nvs_flash/include/nvs_handle.hpp +++ b/tools/sdk/esp32/include/nvs_flash/include/nvs_handle.hpp @@ -47,9 +47,11 @@ public: * @param[in] key Key name. Maximal length is determined by the underlying * implementation, but is guaranteed to be at least * 15 characters. Shouldn't be empty. - * @param[in] value The value to set. Allowed types are the ones declared in ItemType. + * @param[in] value The value to set. Allowed types are the ones declared in ItemType as well as enums. * For strings, the maximum length (including null character) is * 4000 bytes. + * Note that enums loose their type information when stored in NVS. Ensure that the correct + * enum type is used during retrieval with \ref get_item! * * @return * - ESP_OK if value was set successfully @@ -80,7 +82,9 @@ public: * @param[in] key Key name. Maximal length is determined by the underlying * implementation, but is guaranteed to be at least * 15 characters. Shouldn't be empty. - * @param value The output value. + * @param value The output value. All integral types which are declared in ItemType as well as enums + * are allowed. Note however that enums lost their type information when stored in NVS. + * Ensure that the correct enum type is used during retrieval with \ref get_item! * * @return * - ESP_OK if the value was retrieved successfully @@ -233,12 +237,24 @@ std::unique_ptr open_nvs_handle(const char *ns_name, esp_err_t *err = nullptr); // Helper functions for template usage +/** + * Help to translate all integral types into ItemType. + */ template::value, void*>::type = nullptr> constexpr ItemType itemTypeOf() { return static_cast(((std::is_signed::value)?0x10:0x00) | sizeof(T)); } +/** + * Help to translate all enum types into integral ItemType. + */ +template::value, int>::type = 0> +constexpr ItemType itemTypeOf() +{ + return static_cast(((std::is_signed::value)?0x10:0x00) | sizeof(T)); +} + template constexpr ItemType itemTypeOf(const T&) { diff --git a/tools/sdk/esp32/include/soc/include/hal/adc_hal.h b/tools/sdk/esp32/include/soc/include/hal/adc_hal.h index a243ad1a..621b23d1 100644 --- a/tools/sdk/esp32/include/soc/include/hal/adc_hal.h +++ b/tools/sdk/esp32/include/soc/include/hal/adc_hal.h @@ -17,13 +17,12 @@ void adc_hal_init(void); void adc_hal_deinit(void); /** - * Set adc sample cycle for digital controller. + * Set adc sample cycle. * * @note Normally, please use default value. - * @param sample_cycle Cycles between DIG ADC controller start ADC sensor and beginning to receive data from sensor. - * Range: 2 ~ 0xFF. + * @param sample_cycle The number of ADC sampling cycles. Range: 1 ~ 7. */ -#define adc_hal_digi_set_sample_cycle(sample_cycle) adc_ll_digi_set_sample_cycle(sample_cycle) +#define adc_hal_set_sample_cycle(sample_cycle) adc_ll_set_sample_cycle(sample_cycle) /** * Set ADC module power management. diff --git a/tools/sdk/esp32/include/soc/include/hal/adc_types.h b/tools/sdk/esp32/include/soc/include/hal/adc_types.h index f40836ad..1305d276 100644 --- a/tools/sdk/esp32/include/soc/include/hal/adc_types.h +++ b/tools/sdk/esp32/include/soc/include/hal/adc_types.h @@ -13,7 +13,7 @@ typedef enum { ADC_UNIT_1 = 1, /*!< SAR ADC 1. */ ADC_UNIT_2 = 2, /*!< SAR ADC 2. */ ADC_UNIT_BOTH = 3, /*!< SAR ADC 1 and 2. */ - ADC_UNIT_ALTER = 7, /*!< SAR ADC 1 and 2 alternative mode, not supported yet */ + ADC_UNIT_ALTER = 7, /*!< SAR ADC 1 and 2 alternative mode. */ ADC_UNIT_MAX, } adc_unit_t; @@ -75,29 +75,58 @@ typedef enum { ADC_WIDTH_MAX, } adc_bits_width_t; +/** + * @brief ADC digital controller (DMA mode) output data format option. + */ +typedef enum { + ADC_DIGI_FORMAT_12BIT, /*! ADC_CHANNEL_MAX), The data is invalid. */ + } type1; /*! ADC_CHANNEL_MAX), The data is invalid. */ + uint16_t unit: 1; /*! ADC_CHANNEL_MAX), The data is invalid. */ - } type1; /*! ADC_CHANNEL_MAX), The data is invalid. */ - uint16_t unit: 1; /*! (touch threshold + hysteresis), the touch channel be touched. If (raw data - baseline) < (touch threshold - hysteresis), the touch channel be released. - Range: 0 ~ 3. The coefficient is 0: 4/32; 1: 3/32; 2: 2/32; 3: OFF */ + Range: 0 ~ 3. The coefficient is 0: 4/32; 1: 3/32; 2: 1/32; 3: OFF */ uint32_t noise_thr; /*! (noise), the baseline stop updating. If (raw data - baseline) < (noise), the baseline start updating. diff --git a/tools/sdk/esp32/include/soc/include/hal/uart_hal.h b/tools/sdk/esp32/include/soc/include/hal/uart_hal.h index 59ba28d5..ceec6a34 100644 --- a/tools/sdk/esp32/include/soc/include/hal/uart_hal.h +++ b/tools/sdk/esp32/include/soc/include/hal/uart_hal.h @@ -150,6 +150,7 @@ void uart_hal_write_txfifo(uart_hal_context_t *hal, const uint8_t *buf, uint32_t /** * @brief Reset the UART txfifo + * @note On ESP32, this function is reserved for UART1 and UART2. * * @param hal Context of the HAL layer * diff --git a/tools/sdk/esp32/include/soc/include/soc/soc_memory_layout.h b/tools/sdk/esp32/include/soc/include/soc/soc_memory_layout.h index d88d356a..00f69aec 100644 --- a/tools/sdk/esp32/include/soc/include/soc/soc_memory_layout.h +++ b/tools/sdk/esp32/include/soc/include/soc/soc_memory_layout.h @@ -176,6 +176,12 @@ inline static bool IRAM_ATTR esp_ptr_byte_accessible(const void *p) intptr_t ip = (intptr_t) p; bool r; r = (ip >= SOC_BYTE_ACCESSIBLE_LOW && ip < SOC_BYTE_ACCESSIBLE_HIGH); +#if CONFIG_ESP32_ALLOW_RTC_FAST_MEM_AS_HEAP + /* For ESP32 case, RTC fast memory is accessible to PRO cpu only and hence + * for single core configuration (where it gets added to system heap) following + * additional check is required */ + r |= (ip >= SOC_RTC_DRAM_LOW && ip < SOC_RTC_DRAM_HIGH); +#endif #if CONFIG_SPIRAM #if CONFIG_SPIRAM_SIZE != -1 // Fixed size, can be more accurate r |= (ip >= SOC_EXTRAM_DATA_LOW && ip < (SOC_EXTRAM_DATA_LOW + CONFIG_SPIRAM_SIZE)); @@ -190,6 +196,12 @@ inline static bool IRAM_ATTR esp_ptr_internal(const void *p) { bool r; r = ((intptr_t)p >= SOC_MEM_INTERNAL_LOW && (intptr_t)p < SOC_MEM_INTERNAL_HIGH); r |= ((intptr_t)p >= SOC_RTC_DATA_LOW && (intptr_t)p < SOC_RTC_DATA_HIGH); +#if CONFIG_ESP32_ALLOW_RTC_FAST_MEM_AS_HEAP + /* For ESP32 case, RTC fast memory is accessible to PRO cpu only and hence + * for single core configuration (where it gets added to system heap) following + * additional check is required */ + r |= ((intptr_t)p >= SOC_RTC_DRAM_LOW && (intptr_t)p < SOC_RTC_DRAM_HIGH); +#endif return r; } diff --git a/tools/sdk/esp32/include/soc/src/esp32/include/hal/adc_hal.h b/tools/sdk/esp32/include/soc/src/esp32/include/hal/adc_hal.h index f13fa295..091c51d2 100644 --- a/tools/sdk/esp32/include/soc/src/esp32/include/hal/adc_hal.h +++ b/tools/sdk/esp32/include/soc/src/esp32/include/hal/adc_hal.h @@ -43,7 +43,7 @@ typedef struct { adc_hal_digi_pattern_table_t *adc1_pattern; /*!pdm_conf.tx_pdm_en = val; } -/** - * @brief Set I2S tx msb shift - * - * @param hw Peripheral I2S hardware instance address. - * @param val value to set tx msb shift - */ -static inline void i2s_ll_set_tx_msb_shift(i2s_dev_t *hw, uint32_t val) -{ - hw->conf.tx_msb_shift = val; -} - -/** - * @brief Set I2S rx msb shift - * - * @param hw Peripheral I2S hardware instance address. - * @param val value to set rx msb shift - */ -static inline void i2s_ll_set_rx_msb_shift(i2s_dev_t *hw, uint32_t val) -{ - hw->conf.rx_msb_shift = val; -} - -/** - * @brief Set I2S tx short sync - * - * @param hw Peripheral I2S hardware instance address. - * @param val value to set tx short sync - */ -static inline void i2s_ll_set_tx_short_sync(i2s_dev_t *hw, uint32_t val) -{ - hw->conf.tx_short_sync = val; -} - -/** - * @brief Set I2S rx short sync - * - * @param hw Peripheral I2S hardware instance address. - * @param val value to set rx short sync - */ -static inline void i2s_ll_set_rx_short_sync(i2s_dev_t *hw, uint32_t val) -{ - hw->conf.rx_short_sync = val; -} - /** * @brief Set I2S tx fifo mod force en * @@ -819,6 +775,150 @@ static inline void i2s_ll_set_sig_loopback(i2s_dev_t *hw, uint32_t val) hw->conf.sig_loopback = val; } +/** + * @brief Set I2S TX to philip standard + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_set_tx_format_philip(i2s_dev_t *hw) +{ + hw->conf.tx_short_sync = 0; + hw->conf.tx_msb_shift = 1; +} + +/** + * @brief Set I2S RX to philip standard + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_set_rx_format_philip(i2s_dev_t *hw) +{ + hw->conf.rx_short_sync = 0; + hw->conf.rx_msb_shift = 1; +} + +/** + * @brief Set I2S TX to MSB Alignment Standard + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_set_tx_format_msb_align(i2s_dev_t *hw) +{ + hw->conf.tx_short_sync = 0; + hw->conf.tx_msb_shift = 0; +} + +/** + * @brief Set I2S RX to MSB Alignment Standard + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_set_rx_format_msb_align(i2s_dev_t *hw) +{ + hw->conf.rx_short_sync = 0; + hw->conf.rx_msb_shift = 0; +} + +/** + * @brief Set I2S TX to PCM short standard + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_set_tx_pcm_short(i2s_dev_t *hw) +{ + hw->conf.tx_short_sync = 1; + hw->conf.tx_msb_shift = 0; +} + +/** + * @brief Set I2S RX to PCM short standard + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_set_rx_pcm_short(i2s_dev_t *hw) +{ + hw->conf.rx_short_sync = 1; + hw->conf.rx_msb_shift = 0; +} + +/** + * @brief Set I2S TX to PCM long standard + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_set_tx_pcm_long(i2s_dev_t *hw) +{ + hw->conf.tx_short_sync = 0; + hw->conf.tx_msb_shift = 0; +} + +/** + * @brief Set I2S RX to PCM long standard + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_set_rx_pcm_long(i2s_dev_t *hw) +{ + hw->conf.rx_short_sync = 0; + hw->conf.rx_msb_shift = 0; +} + +/** + * @brief Configure I2S TX pdm + * + * @param sample_rate The sample rate to be set. + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_tx_pdm_cfg(i2s_dev_t *hw, uint32_t sample_rate) +{ + uint32_t fp = 96; + uint32_t fs = sample_rate / 1000 * 10; + hw->pdm_freq_conf.tx_pdm_fp = fp; + hw->pdm_freq_conf.tx_pdm_fs = fs; + hw->pdm_conf.tx_sinc_osr2 = fp/fs; + hw->pdm_conf.pcm2pdm_conv_en = 1; + hw->pdm_conf.tx_pdm_en = 1; +} + +/** + * @brief Configure I2S TX pdm + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_rx_pdm_cfg(i2s_dev_t *hw) +{ + hw->pdm_conf.rx_sinc_dsr_16_en = 0; + hw->pdm_conf.pdm2pcm_conv_en = 1; + hw->pdm_conf.rx_pdm_en = 1; +} + +/** + * @brief Enable I2S build in ADC mode + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_build_in_adc_ena(i2s_dev_t *hw) +{ + hw->conf2.lcd_en = 1; + hw->conf2.camera_en = 0; + hw->conf.rx_msb_shift = 0; + hw->conf.rx_short_sync = 0; +} + +/** + * @brief Enable I2S build in DAC mode + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_build_in_dac_ena(i2s_dev_t *hw) +{ + hw->conf2.lcd_en = 1; + hw->conf2.camera_en = 0; + hw->conf.tx_right_first = 1; + hw->conf.tx_msb_shift = 0; + hw->conf.tx_short_sync = 0; +} + #ifdef __cplusplus } #endif diff --git a/tools/sdk/esp32/include/soc/src/esp32/include/hal/rmt_ll.h b/tools/sdk/esp32/include/soc/src/esp32/include/hal/rmt_ll.h index b8348789..5cc30ca5 100644 --- a/tools/sdk/esp32/include/soc/src/esp32/include/hal/rmt_ll.h +++ b/tools/sdk/esp32/include/soc/src/esp32/include/hal/rmt_ll.h @@ -21,6 +21,9 @@ extern "C" { #include "soc/rmt_struct.h" #include "soc/rmt_caps.h" +#define RMT_LL_HW_BASE (&RMT) +#define RMT_LL_MEM_BASE (&RMTMEM) + static inline void rmt_ll_enable_drive_clock(rmt_dev_t *dev, bool enable) { dev->conf_ch[0].conf0.clk_en = enable; @@ -276,9 +279,10 @@ static inline void rmt_ll_set_carrier_on_level(rmt_dev_t *dev, uint32_t channel, dev->conf_ch[channel].conf0.carrier_out_lv = level; } +//Writes items to the specified TX channel memory with the given offset and writen length. +//the caller should ensure that (length + off) <= (memory block * SOC_RMT_CHANNEL_MEM_WORDS) static inline void rmt_ll_write_memory(rmt_mem_t *mem, uint32_t channel, const rmt_item32_t *data, uint32_t length, uint32_t off) { - length = (off + length) > SOC_RMT_CHANNEL_MEM_WORDS ? (SOC_RMT_CHANNEL_MEM_WORDS - off) : length; for (uint32_t i = 0; i < length; i++) { mem->chan[channel].data32[i + off].val = data[i].val; } diff --git a/tools/sdk/esp32/include/soc/src/esp32/include/hal/uart_ll.h b/tools/sdk/esp32/include/soc/src/esp32/include/hal/uart_ll.h index dc4a05bf..30d50797 100644 --- a/tools/sdk/esp32/include/soc/src/esp32/include/hal/uart_ll.h +++ b/tools/sdk/esp32/include/soc/src/esp32/include/hal/uart_ll.h @@ -219,14 +219,20 @@ static inline void uart_ll_rxfifo_rst(uart_dev_t *hw) /** * @brief Reset the UART hw txfifo. * + * Note: Due to hardware issue, reset UART1's txfifo will also reset UART2's txfifo. + * So reserve this function for UART1 and UART2. Please do DPORT reset for UART and its memory at chip startup + * to ensure the TX FIFO is reset correctly at the beginning. + * * @param hw Beginning address of the peripheral registers. * * @return None */ static inline void uart_ll_txfifo_rst(uart_dev_t *hw) { - hw->conf0.txfifo_rst = 1; - hw->conf0.txfifo_rst = 0; + if (hw == &UART0) { + hw->conf0.txfifo_rst = 1; + hw->conf0.txfifo_rst = 0; + } } /** @@ -238,7 +244,21 @@ static inline void uart_ll_txfifo_rst(uart_dev_t *hw) */ static inline uint32_t uart_ll_get_rxfifo_len(uart_dev_t *hw) { - return hw->status.rxfifo_cnt; + uint32_t fifo_cnt = hw->status.rxfifo_cnt; + typeof(hw->mem_rx_status) rx_status = hw->mem_rx_status; + uint32_t len = 0; + + // When using DPort to read fifo, fifo_cnt is not credible, we need to calculate the real cnt based on the fifo read and write pointer. + // When using AHB to read FIFO, we can use fifo_cnt to indicate the data length in fifo. + if (rx_status.wr_addr > rx_status.rd_addr) { + len = rx_status.wr_addr - rx_status.rd_addr; + } else if (rx_status.wr_addr < rx_status.rd_addr) { + len = (rx_status.wr_addr + 128) - rx_status.rd_addr; + } else { + len = fifo_cnt > 0 ? 128 : 0; + } + + return len; } /** diff --git a/tools/sdk/esp32/include/xtensa/include/xt_instr_macros.h b/tools/sdk/esp32/include/xtensa/include/xt_instr_macros.h index 9df78f5f..e7931f4b 100644 --- a/tools/sdk/esp32/include/xtensa/include/xt_instr_macros.h +++ b/tools/sdk/esp32/include/xtensa/include/xt_instr_macros.h @@ -21,4 +21,78 @@ #define RER(reg, at) asm volatile ("rer %0, %1" : "=r" (at) : "r" (reg)) #define WITLB(at, as) asm volatile ("witlb %0, %1; \n isync \n " : : "r" (at), "r" (as)) -#define WDTLB(at, as) asm volatile ("wdtlb %0, %1; \n dsync \n " : : "r" (at), "r" (as)) \ No newline at end of file +#define WDTLB(at, as) asm volatile ("wdtlb %0, %1; \n dsync \n " : : "r" (at), "r" (as)) + +/* The SET_STACK implements a setting a new stack pointer (sp or a1). + * to do this the need reset PS_WOE, reset WINDOWSTART, update SP, and return PS_WOE. + * + * Note: It has 2 implementations one for using in assembler files (*.S) and one for using in C. + * + * C code prototype for SET_STACK: + * uint32_t ps_reg; + * uint32_t w_base; + * RSR(PS, ps_reg); + * ps_reg &= ~(PS_WOE_MASK | PS_OWB_MASK | PS_CALLINC_MASK); + * WSR(PS, ps_reg); + * + * RSR(WINDOWBASE, w_base); + * WSR(WINDOWSTART, (1 << w_base)); + * + * asm volatile ( "movi sp, "XTSTR( (SOC_DRAM_LOW + (SOC_DRAM_HIGH - SOC_DRAM_LOW) / 2) )""); + * + * RSR(PS, ps_reg); + * ps_reg |= (PS_WOE_MASK); + * WSR(PS, ps_reg); +*/ +#ifdef __ASSEMBLER__ + .macro SET_STACK new_sp tmp1 tmp2 + rsr.ps \tmp1 + movi \tmp2, ~(PS_WOE_MASK | PS_OWB_MASK | PS_CALLINC_MASK) + and \tmp1, \tmp1, \tmp2 + wsr.ps \tmp1 + rsync + + rsr.windowbase \tmp1 + ssl \tmp1 + movi \tmp1, 1 + sll \tmp1, \tmp1 + wsr.windowstart \tmp1 + rsync + + mov sp, \new_sp + + rsr.ps \tmp1 + movi \tmp2, (PS_WOE) + or \tmp1, \tmp1, \tmp2 + wsr.ps \tmp1 + rsync + .endm +#else +#define SET_STACK(new_sp) \ + do { \ + uint32_t tmp1 = 0, tmp2 = 0; \ + asm volatile ( \ + "rsr.ps %1 \n"\ + "movi %2, ~" XTSTR( PS_WOE_MASK | PS_OWB_MASK | PS_CALLINC_MASK ) " \n"\ + "and %1, %1, %2 \n"\ + "wsr.ps %1 \n"\ + "rsync \n"\ + " \n"\ + "rsr.windowbase %1 \n"\ + "ssl %1 \n"\ + "movi %1, 1 \n"\ + "sll %1, %1 \n"\ + "wsr.windowstart %1 \n"\ + "rsync \n"\ + " \n"\ + "mov sp, %0 \n"\ + "rsr.ps %1 \n"\ + " \n"\ + "movi %2, " XTSTR( PS_WOE_MASK ) "\n"\ + " \n"\ + "or %1, %1, %2 \n"\ + "wsr.ps %1 \n"\ + "rsync \n"\ + : "+r"(new_sp), "+r"(tmp1), "+r"(tmp2)); \ + } while (0); +#endif // __ASSEMBLER__ diff --git a/tools/sdk/esp32/ld/esp32.project.ld b/tools/sdk/esp32/ld/esp32.project.ld index 98885a98..5d75b5fd 100644 --- a/tools/sdk/esp32/ld/esp32.project.ld +++ b/tools/sdk/esp32/ld/esp32.project.ld @@ -634,10 +634,10 @@ SECTIONS *(.rodata_desc .rodata_desc.*) /* Should be the first. App version info. DO NOT PUT ANYTHING BEFORE IT! */ *(.rodata_custom_desc .rodata_custom_desc.*) /* Should be the second. Custom app version info. DO NOT PUT ANYTHING BEFORE IT! */ - *(EXCLUDE_FILE(*libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libgcc.a:_divsf3.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-raise.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-mktime.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-itoa.* *libc.a:lib_a-isupper.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-environ.* *libc.a:lib_a-fclose.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-system.* *libc.a:lib_a-syswrite.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-close.* *libc.a:lib_a-atoi.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-islower.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-ctime.* *libc.a:lib_a-systimes.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-strncat.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysread.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-strndup.* *libc.a:lib_a-labs.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-strupr.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-envlock.* *libc.a:lib_a-strftime.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-creat.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-utoa.* *libc.a:lib_a-isprint.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-strptime.* *libc.a:lib_a-tolower.* *libc.a:lib_a-sccl.* *libc.a:lib_a-strcspn.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-impure.* *libc.a:isatty.* *libc.a:lib_a-atol.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-abs.* *libc.a:lib_a-memchr.* *libc.a:lib_a-memmove.* *libc.a:lib_a-bzero.* *libc.a:lib_a-refill.* *libc.a:lib_a-strspn.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-fwalk.* *libc.a:lock.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-stdio.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-quorem.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-strlen.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-rshift.* *libc.a:lib_a-lcltime_r.* *libc.a:creat.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-isspace.* *libc.a:lib_a-strsep.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-rand.* *libc.a:lib_a-fflush.* *libc.a:lib_a-srand.* *libc.a:lib_a-tzset.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-asctime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-memset.* *libc.a:lib_a-read.* *libc.a:lib_a-time.* *libc.a:lib_a-isascii.* *libc.a:lib_a-open.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-strstr.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-toascii.* *libc.a:lib_a-div.* *libc.a:lib_a-toupper.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-strdup.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-strtol.* *libc.a:lib_a-wcrtomb.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:lldesc.* *libsoc.a:wdt_hal_iram.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:spi_hal_iram.* *libsoc.a:uart_hal_iram.* *libsoc.a:systimer_hal.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_clk.* *libsoc.a:ledc_hal_iram.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libphy.a) .rodata EXCLUDE_FILE(*libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *liblog.a:log_freertos.* *liblog.a:log.* *libgcc.a:_divsf3.* *libesp_event.a:esp_event.* *libesp_event.a:default_event_loop.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-raise.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-mktime.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-itoa.* *libc.a:lib_a-isupper.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-environ.* *libc.a:lib_a-fclose.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-system.* *libc.a:lib_a-syswrite.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-close.* *libc.a:lib_a-atoi.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-islower.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-ctime.* *libc.a:lib_a-systimes.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-strncat.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysread.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-strndup.* *libc.a:lib_a-labs.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-strupr.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-envlock.* *libc.a:lib_a-strftime.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-creat.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-utoa.* *libc.a:lib_a-isprint.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-strptime.* *libc.a:lib_a-tolower.* *libc.a:lib_a-sccl.* *libc.a:lib_a-strcspn.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-impure.* *libc.a:isatty.* *libc.a:lib_a-atol.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-abs.* *libc.a:lib_a-memchr.* *libc.a:lib_a-memmove.* *libc.a:lib_a-bzero.* *libc.a:lib_a-refill.* *libc.a:lib_a-strspn.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-fwalk.* *libc.a:lock.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-stdio.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-quorem.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-strlen.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-rshift.* *libc.a:lib_a-lcltime_r.* *libc.a:creat.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-isspace.* *libc.a:lib_a-strsep.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-rand.* *libc.a:lib_a-fflush.* *libc.a:lib_a-srand.* *libc.a:lib_a-tzset.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-asctime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-memset.* *libc.a:lib_a-read.* *libc.a:lib_a-time.* *libc.a:lib_a-isascii.* *libc.a:lib_a-open.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-strstr.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-toascii.* *libc.a:lib_a-div.* *libc.a:lib_a-toupper.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-strdup.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-strtol.* *libc.a:lib_a-wcrtomb.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:system_api.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:lldesc.* *libsoc.a:wdt_hal_iram.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:spi_hal_iram.* *libsoc.a:uart_hal_iram.* *libsoc.a:systimer_hal.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_clk.* *libsoc.a:ledc_hal_iram.* *libdriver.a:gpio.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libfreertos.a:queue.* *libphy.a) .rodata.*) + *(EXCLUDE_FILE(*libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libgcc.a:_divsf3.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-impure.* *libc.a:lib_a-atol.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-abs.* *libc.a:lib_a-memchr.* *libc.a:lib_a-bzero.* *libc.a:lib_a-refill.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-strtol.* *libc.a:lock.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-system.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-quorem.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-strlen.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-atoi.* *libc.a:lib_a-rshift.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-isspace.* *libc.a:lib_a-strsep.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-rand.* *libc.a:lib_a-fflush.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-srand.* *libc.a:lib_a-tzset.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-sf_nan.* *libc.a:creat.* *libc.a:lib_a-asctime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-memset.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-read.* *libc.a:lib_a-time.* *libc.a:lib_a-isascii.* *libc.a:lib_a-envlock.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-open.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-toascii.* *libc.a:lib_a-div.* *libc.a:lib_a-toupper.* *libc.a:lib_a-sccl.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strdup.* *libc.a:lib_a-strncmp.* *libc.a:isatty.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-raise.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-mktime.* *libc.a:lib_a-stdio.* *libc.a:lib_a-memmove.* *libc.a:lib_a-itoa.* *libc.a:lib_a-isupper.* *libc.a:lib_a-environ.* *libc.a:lib_a-fclose.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-syswrite.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-strncat.* *libc.a:lib_a-close.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-islower.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-ctime.* *libc.a:lib_a-systimes.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysread.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-strndup.* *libc.a:lib_a-labs.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-strupr.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-strftime.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-creat.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-utoa.* *libc.a:lib_a-strspn.* *libc.a:lib_a-isprint.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-strptime.* *libc.a:lib_a-tolower.* *libc.a:lib_a-strcspn.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:i2c_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:uart_hal_iram.* *libsoc.a:systimer_hal.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:ledc_hal_iram.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libphy.a) .rodata EXCLUDE_FILE(*libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *liblog.a:log_freertos.* *liblog.a:log.* *libgcc.a:_divsf3.* *libesp_event.a:esp_event.* *libesp_event.a:default_event_loop.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-impure.* *libc.a:lib_a-atol.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-abs.* *libc.a:lib_a-memchr.* *libc.a:lib_a-bzero.* *libc.a:lib_a-refill.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-strtol.* *libc.a:lock.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-system.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-quorem.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-strlen.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-atoi.* *libc.a:lib_a-rshift.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-isspace.* *libc.a:lib_a-strsep.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-rand.* *libc.a:lib_a-fflush.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-srand.* *libc.a:lib_a-tzset.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-sf_nan.* *libc.a:creat.* *libc.a:lib_a-asctime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-memset.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-read.* *libc.a:lib_a-time.* *libc.a:lib_a-isascii.* *libc.a:lib_a-envlock.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-open.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-toascii.* *libc.a:lib_a-div.* *libc.a:lib_a-toupper.* *libc.a:lib_a-sccl.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strdup.* *libc.a:lib_a-strncmp.* *libc.a:isatty.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-raise.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-mktime.* *libc.a:lib_a-stdio.* *libc.a:lib_a-memmove.* *libc.a:lib_a-itoa.* *libc.a:lib_a-isupper.* *libc.a:lib_a-environ.* *libc.a:lib_a-fclose.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-syswrite.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-strncat.* *libc.a:lib_a-close.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-islower.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-ctime.* *libc.a:lib_a-systimes.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysread.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-strndup.* *libc.a:lib_a-labs.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-strupr.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-strftime.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-creat.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-utoa.* *libc.a:lib_a-strspn.* *libc.a:lib_a-isprint.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-strptime.* *libc.a:lib_a-tolower.* *libc.a:lib_a-strcspn.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:system_api.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:i2c_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:uart_hal_iram.* *libsoc.a:systimer_hal.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:ledc_hal_iram.* *libdriver.a:gpio.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libfreertos.a:queue.* *libphy.a) .rodata.*) *libdriver.a:gpio.*(.rodata.gpio_od_enable.str1.4 .rodata.gpio_input_enable.str1.4 .rodata.gpio_input_disable.str1.4 .rodata.gpio_output_disable.str1.4 .rodata.gpio_output_enable.str1.4 .rodata.gpio_pullup_en.str1.4 .rodata.gpio_pullup_dis.str1.4 .rodata.gpio_set_intr_type.str1.4 .rodata.gpio_set_pull_mode.str1.4 .rodata.gpio_set_direction.str1.4 .rodata.gpio_config.str1.4 .rodata.gpio_reset_pin.str1.4 .rodata.gpio_isr_handler_add.str1.4 .rodata.gpio_isr_register.str1.4 .rodata.gpio_install_isr_service.str1.4 .rodata.gpio_wakeup_enable.str1.4 .rodata.gpio_set_drive_capability.str1.4 .rodata.gpio_get_drive_capability.str1.4 .rodata.gpio_hold_en.str1.4 .rodata.gpio_iomux_in.str1.4 .rodata.gpio_iomux_out.str1.4 .rodata.__func__$6500 .rodata.__func__$6490 .rodata.__FUNCTION__$6721 .rodata.__FUNCTION__$6716 .rodata.__func__$6452 .rodata.__FUNCTION__$6711 .rodata.__func__$6443 .rodata.__FUNCTION__$6705 .rodata.__FUNCTION__$6699 .rodata.__FUNCTION__$6694 .rodata.__FUNCTION__$6687 .rodata.__FUNCTION__$6672 .rodata.__FUNCTION__$6668 .rodata.__FUNCTION__$6661 .rodata.__func__$6642 .rodata.__func__$6633 .rodata.__FUNCTION__$6591 .rodata.__FUNCTION__$6595 .rodata.__func__$6406 .rodata.__FUNCTION__$6583 .rodata.__FUNCTION__$6587 .rodata.__func__$6390 .rodata.__FUNCTION__$6575 .rodata.__func__$6398 .rodata.__FUNCTION__$6579 .rodata.__FUNCTION__$6620 .rodata.__FUNCTION__$6608 .rodata.__FUNCTION__$6600 .rodata.__FUNCTION__$6571 .rodata.__FUNCTION__$6563 .rodata.__FUNCTION__$6567 .rodata.__FUNCTION__$6558 .rodata.__func__$6352 .rodata.__FUNCTION__$6553 .rodata.__func__$6346 .rodata.__FUNCTION__$6549 .rodata.__func__$6340 .rodata.__FUNCTION__$6545 .rodata.__func__$6334 .rodata.__FUNCTION__$6541) *libesp_event.a:default_event_loop.*(.rodata.esp_event_loop_create_default.str1.4 .rodata.esp_event_send_to_default_loop) - *libesp_event.a:esp_event.*(.rodata.base_node_add_handler.str1.4 .rodata.loop_node_add_handler.str1.4 .rodata.esp_event_loop_create.str1.4 .rodata.esp_event_loop_run.str1.4 .rodata.esp_event_loop_run_task.str1.4 .rodata.esp_event_handler_register_with_internal.str1.4 .rodata.esp_event_handler_unregister_with_internal.str1.4 .rodata.__func__$8940 .rodata.__func__$8927 .rodata.__func__$8894 .rodata.__func__$8862 .rodata.__func__$8837 .rodata.__func__$8796 .rodata.__func__$8787) + *libesp_event.a:esp_event.*(.rodata.base_node_add_handler.str1.4 .rodata.loop_node_add_handler.str1.4 .rodata.esp_event_loop_create.str1.4 .rodata.esp_event_loop_run.str1.4 .rodata.esp_event_loop_run_task.str1.4 .rodata.esp_event_handler_register_with_internal.str1.4 .rodata.esp_event_handler_unregister_with_internal.str1.4 .rodata.__func__$8941 .rodata.__func__$8928 .rodata.__func__$8895 .rodata.__func__$8863 .rodata.__func__$8838 .rodata.__func__$8797 .rodata.__func__$8788) *libesp_system.a:system_api.*(.rodata.esp_get_idf_version.str1.4) *libfreertos.a:queue.*(.rodata.prvNotifyQueueSetContainer.str1.4 .rodata.xQueueGenericReset.str1.4 .rodata.__FUNCTION__$5314 .rodata.__FUNCTION__$5304 .rodata.__FUNCTION__$5284 .rodata.__FUNCTION__$5279 .rodata.__FUNCTION__$5273 .rodata.__FUNCTION__$5267 .rodata.__FUNCTION__$5261 .rodata.__FUNCTION__$5252 .rodata.__FUNCTION__$5242 .rodata.__FUNCTION__$5231 .rodata.__FUNCTION__$5223 .rodata.__FUNCTION__$5350 .rodata.__FUNCTION__$5212 .rodata.__FUNCTION__$5201 .rodata.__FUNCTION__$5195 .rodata.__FUNCTION__$5188 .rodata.__FUNCTION__$5181 .rodata.__FUNCTION__$5147 .rodata.__FUNCTION__$5137 .rodata.__func__$4308 .rodata.__FUNCTION__$5128) *libfreertos.a:queue.*(.rodata.xQueueGenericCreateStatic) @@ -703,7 +703,7 @@ SECTIONS _stext = .; _text_start = ABSOLUTE(.); - *(EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libgcc.a:lib2funcs.* *libgcc.a:_divsf3.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-raise.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-mktime.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-itoa.* *libc.a:lib_a-isupper.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-environ.* *libc.a:lib_a-fclose.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-system.* *libc.a:lib_a-syswrite.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-close.* *libc.a:lib_a-atoi.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-islower.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-ctime.* *libc.a:lib_a-systimes.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-strncat.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysread.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-strndup.* *libc.a:lib_a-labs.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-strupr.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-envlock.* *libc.a:lib_a-strftime.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-creat.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-utoa.* *libc.a:lib_a-isprint.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-strptime.* *libc.a:lib_a-tolower.* *libc.a:lib_a-sccl.* *libc.a:lib_a-strcspn.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-impure.* *libc.a:isatty.* *libc.a:lib_a-atol.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-abs.* *libc.a:lib_a-memchr.* *libc.a:lib_a-memmove.* *libc.a:lib_a-bzero.* *libc.a:lib_a-refill.* *libc.a:lib_a-strspn.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-fwalk.* *libc.a:lock.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-stdio.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-quorem.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-strlen.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-rshift.* *libc.a:lib_a-lcltime_r.* *libc.a:creat.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-isspace.* *libc.a:lib_a-strsep.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-rand.* *libc.a:lib_a-fflush.* *libc.a:lib_a-srand.* *libc.a:lib_a-tzset.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-asctime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-memset.* *libc.a:lib_a-read.* *libc.a:lib_a-time.* *libc.a:lib_a-isascii.* *libc.a:lib_a-open.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-strstr.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-toascii.* *libc.a:lib_a-div.* *libc.a:lib_a-toupper.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-strdup.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-strtol.* *libc.a:lib_a-wcrtomb.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *librtc.a *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:wdt_hal_iram.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:systimer_hal.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .literal EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *liblog.a:log.* *liblog.a:log_freertos.* *libgcc.a:lib2funcs.* *libgcc.a:_divsf3.* *libesp_event.a:default_event_loop.* *libesp_event.a:esp_event.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-raise.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-mktime.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-itoa.* *libc.a:lib_a-isupper.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-environ.* *libc.a:lib_a-fclose.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-system.* *libc.a:lib_a-syswrite.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-close.* *libc.a:lib_a-atoi.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-islower.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-ctime.* *libc.a:lib_a-systimes.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-strncat.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysread.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-strndup.* *libc.a:lib_a-labs.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-strupr.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-envlock.* *libc.a:lib_a-strftime.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-creat.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-utoa.* *libc.a:lib_a-isprint.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-strptime.* *libc.a:lib_a-tolower.* *libc.a:lib_a-sccl.* *libc.a:lib_a-strcspn.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-impure.* *libc.a:isatty.* *libc.a:lib_a-atol.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-abs.* *libc.a:lib_a-memchr.* *libc.a:lib_a-memmove.* *libc.a:lib_a-bzero.* *libc.a:lib_a-refill.* *libc.a:lib_a-strspn.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-fwalk.* *libc.a:lock.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-stdio.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-quorem.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-strlen.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-rshift.* *libc.a:lib_a-lcltime_r.* *libc.a:creat.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-isspace.* *libc.a:lib_a-strsep.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-rand.* *libc.a:lib_a-fflush.* *libc.a:lib_a-srand.* *libc.a:lib_a-tzset.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-asctime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-memset.* *libc.a:lib_a-read.* *libc.a:lib_a-time.* *libc.a:lib_a-isascii.* *libc.a:lib_a-open.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-strstr.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-toascii.* *libc.a:lib_a-div.* *libc.a:lib_a-toupper.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-strdup.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-strtol.* *libc.a:lib_a-wcrtomb.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:system_api.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *librtc.a *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:wdt_hal_iram.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:systimer_hal.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libdriver.a:gpio.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .literal.* EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libgcc.a:lib2funcs.* *libgcc.a:_divsf3.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-raise.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-mktime.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-itoa.* *libc.a:lib_a-isupper.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-environ.* *libc.a:lib_a-fclose.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-system.* *libc.a:lib_a-syswrite.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-close.* *libc.a:lib_a-atoi.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-islower.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-ctime.* *libc.a:lib_a-systimes.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-strncat.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysread.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-strndup.* *libc.a:lib_a-labs.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-strupr.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-envlock.* *libc.a:lib_a-strftime.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-creat.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-utoa.* *libc.a:lib_a-isprint.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-strptime.* *libc.a:lib_a-tolower.* *libc.a:lib_a-sccl.* *libc.a:lib_a-strcspn.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-impure.* *libc.a:isatty.* *libc.a:lib_a-atol.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-abs.* *libc.a:lib_a-memchr.* *libc.a:lib_a-memmove.* *libc.a:lib_a-bzero.* *libc.a:lib_a-refill.* *libc.a:lib_a-strspn.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-fwalk.* *libc.a:lock.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-stdio.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-quorem.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-strlen.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-rshift.* *libc.a:lib_a-lcltime_r.* *libc.a:creat.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-isspace.* *libc.a:lib_a-strsep.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-rand.* *libc.a:lib_a-fflush.* *libc.a:lib_a-srand.* *libc.a:lib_a-tzset.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-asctime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-memset.* *libc.a:lib_a-read.* *libc.a:lib_a-time.* *libc.a:lib_a-isascii.* *libc.a:lib_a-open.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-strstr.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-toascii.* *libc.a:lib_a-div.* *libc.a:lib_a-toupper.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-strdup.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-strtol.* *libc.a:lib_a-wcrtomb.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *librtc.a *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:wdt_hal_iram.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:systimer_hal.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .text EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *liblog.a:log.* *liblog.a:log_freertos.* *libgcc.a:lib2funcs.* *libgcc.a:_divsf3.* *libesp_event.a:default_event_loop.* *libesp_event.a:esp_event.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-raise.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-mktime.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-itoa.* *libc.a:lib_a-isupper.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-environ.* *libc.a:lib_a-fclose.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-system.* *libc.a:lib_a-syswrite.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-close.* *libc.a:lib_a-atoi.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-islower.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-ctime.* *libc.a:lib_a-systimes.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-strncat.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysread.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-strndup.* *libc.a:lib_a-labs.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-strupr.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-envlock.* *libc.a:lib_a-strftime.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-creat.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-utoa.* *libc.a:lib_a-isprint.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-strptime.* *libc.a:lib_a-tolower.* *libc.a:lib_a-sccl.* *libc.a:lib_a-strcspn.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-impure.* *libc.a:isatty.* *libc.a:lib_a-atol.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-abs.* *libc.a:lib_a-memchr.* *libc.a:lib_a-memmove.* *libc.a:lib_a-bzero.* *libc.a:lib_a-refill.* *libc.a:lib_a-strspn.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-fwalk.* *libc.a:lock.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-stdio.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-quorem.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-strlen.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-rshift.* *libc.a:lib_a-lcltime_r.* *libc.a:creat.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-isspace.* *libc.a:lib_a-strsep.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-rand.* *libc.a:lib_a-fflush.* *libc.a:lib_a-srand.* *libc.a:lib_a-tzset.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-asctime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-memset.* *libc.a:lib_a-read.* *libc.a:lib_a-time.* *libc.a:lib_a-isascii.* *libc.a:lib_a-open.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-strstr.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-toascii.* *libc.a:lib_a-div.* *libc.a:lib_a-toupper.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-strdup.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-strtol.* *libc.a:lib_a-wcrtomb.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:system_api.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *librtc.a *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:wdt_hal_iram.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:systimer_hal.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:i2c_hal_iram.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libdriver.a:gpio.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .text.* EXCLUDE_FILE(*libpp.a *libnet80211.a *libsoc.a:uart_hal_iram.*) .wifi0iram EXCLUDE_FILE(*libpp.a *libnet80211.a *libsoc.a:uart_hal_iram.* *libfreertos.a:queue.*) .wifi0iram.* EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .wifirxiram EXCLUDE_FILE(*libsoc.a:uart_hal_iram.* *libfreertos.a:queue.*) .wifirxiram.*) + *(EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libgcc.a:lib2funcs.* *libgcc.a:_divsf3.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-impure.* *libc.a:lib_a-atol.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-abs.* *libc.a:lib_a-memchr.* *libc.a:lib_a-bzero.* *libc.a:lib_a-refill.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-strtol.* *libc.a:lock.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-system.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-quorem.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-strlen.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-atoi.* *libc.a:lib_a-rshift.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-isspace.* *libc.a:lib_a-strsep.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-rand.* *libc.a:lib_a-fflush.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-srand.* *libc.a:lib_a-tzset.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-sf_nan.* *libc.a:creat.* *libc.a:lib_a-asctime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-memset.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-read.* *libc.a:lib_a-time.* *libc.a:lib_a-isascii.* *libc.a:lib_a-envlock.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-open.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-toascii.* *libc.a:lib_a-div.* *libc.a:lib_a-toupper.* *libc.a:lib_a-sccl.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strdup.* *libc.a:lib_a-strncmp.* *libc.a:isatty.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-raise.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-mktime.* *libc.a:lib_a-stdio.* *libc.a:lib_a-memmove.* *libc.a:lib_a-itoa.* *libc.a:lib_a-isupper.* *libc.a:lib_a-environ.* *libc.a:lib_a-fclose.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-syswrite.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-strncat.* *libc.a:lib_a-close.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-islower.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-ctime.* *libc.a:lib_a-systimes.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysread.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-strndup.* *libc.a:lib_a-labs.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-strupr.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-strftime.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-creat.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-utoa.* *libc.a:lib_a-strspn.* *libc.a:lib_a-isprint.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-strptime.* *libc.a:lib_a-tolower.* *libc.a:lib_a-strcspn.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *librtc.a *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:i2c_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:systimer_hal.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .literal EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *liblog.a:log.* *liblog.a:log_freertos.* *libgcc.a:lib2funcs.* *libgcc.a:_divsf3.* *libesp_event.a:default_event_loop.* *libesp_event.a:esp_event.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-impure.* *libc.a:lib_a-atol.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-abs.* *libc.a:lib_a-memchr.* *libc.a:lib_a-bzero.* *libc.a:lib_a-refill.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-strtol.* *libc.a:lock.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-system.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-quorem.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-strlen.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-atoi.* *libc.a:lib_a-rshift.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-isspace.* *libc.a:lib_a-strsep.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-rand.* *libc.a:lib_a-fflush.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-srand.* *libc.a:lib_a-tzset.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-sf_nan.* *libc.a:creat.* *libc.a:lib_a-asctime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-memset.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-read.* *libc.a:lib_a-time.* *libc.a:lib_a-isascii.* *libc.a:lib_a-envlock.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-open.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-toascii.* *libc.a:lib_a-div.* *libc.a:lib_a-toupper.* *libc.a:lib_a-sccl.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strdup.* *libc.a:lib_a-strncmp.* *libc.a:isatty.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-raise.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-mktime.* *libc.a:lib_a-stdio.* *libc.a:lib_a-memmove.* *libc.a:lib_a-itoa.* *libc.a:lib_a-isupper.* *libc.a:lib_a-environ.* *libc.a:lib_a-fclose.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-syswrite.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-strncat.* *libc.a:lib_a-close.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-islower.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-ctime.* *libc.a:lib_a-systimes.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysread.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-strndup.* *libc.a:lib_a-labs.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-strupr.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-strftime.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-creat.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-utoa.* *libc.a:lib_a-strspn.* *libc.a:lib_a-isprint.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-strptime.* *libc.a:lib_a-tolower.* *libc.a:lib_a-strcspn.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:system_api.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *librtc.a *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:i2c_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:systimer_hal.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libdriver.a:gpio.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .literal.* EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libgcc.a:lib2funcs.* *libgcc.a:_divsf3.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-impure.* *libc.a:lib_a-atol.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-abs.* *libc.a:lib_a-memchr.* *libc.a:lib_a-bzero.* *libc.a:lib_a-refill.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-strtol.* *libc.a:lock.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-system.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-quorem.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-strlen.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-atoi.* *libc.a:lib_a-rshift.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-isspace.* *libc.a:lib_a-strsep.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-rand.* *libc.a:lib_a-fflush.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-srand.* *libc.a:lib_a-tzset.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-sf_nan.* *libc.a:creat.* *libc.a:lib_a-asctime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-memset.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-read.* *libc.a:lib_a-time.* *libc.a:lib_a-isascii.* *libc.a:lib_a-envlock.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-open.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-toascii.* *libc.a:lib_a-div.* *libc.a:lib_a-toupper.* *libc.a:lib_a-sccl.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strdup.* *libc.a:lib_a-strncmp.* *libc.a:isatty.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-raise.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-mktime.* *libc.a:lib_a-stdio.* *libc.a:lib_a-memmove.* *libc.a:lib_a-itoa.* *libc.a:lib_a-isupper.* *libc.a:lib_a-environ.* *libc.a:lib_a-fclose.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-syswrite.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-strncat.* *libc.a:lib_a-close.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-islower.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-ctime.* *libc.a:lib_a-systimes.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysread.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-strndup.* *libc.a:lib_a-labs.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-strupr.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-strftime.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-creat.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-utoa.* *libc.a:lib_a-strspn.* *libc.a:lib_a-isprint.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-strptime.* *libc.a:lib_a-tolower.* *libc.a:lib_a-strcspn.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *librtc.a *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:i2c_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:systimer_hal.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .text EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *liblog.a:log.* *liblog.a:log_freertos.* *libgcc.a:lib2funcs.* *libgcc.a:_divsf3.* *libesp_event.a:default_event_loop.* *libesp_event.a:esp_event.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-impure.* *libc.a:lib_a-atol.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-abs.* *libc.a:lib_a-memchr.* *libc.a:lib_a-bzero.* *libc.a:lib_a-refill.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-strtol.* *libc.a:lock.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-system.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-quorem.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-strlen.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-atoi.* *libc.a:lib_a-rshift.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-isspace.* *libc.a:lib_a-strsep.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-rand.* *libc.a:lib_a-fflush.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-srand.* *libc.a:lib_a-tzset.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-sf_nan.* *libc.a:creat.* *libc.a:lib_a-asctime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-memset.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-read.* *libc.a:lib_a-time.* *libc.a:lib_a-isascii.* *libc.a:lib_a-envlock.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-open.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-toascii.* *libc.a:lib_a-div.* *libc.a:lib_a-toupper.* *libc.a:lib_a-sccl.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strdup.* *libc.a:lib_a-strncmp.* *libc.a:isatty.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-raise.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-mktime.* *libc.a:lib_a-stdio.* *libc.a:lib_a-memmove.* *libc.a:lib_a-itoa.* *libc.a:lib_a-isupper.* *libc.a:lib_a-environ.* *libc.a:lib_a-fclose.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-syswrite.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-strncat.* *libc.a:lib_a-close.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-islower.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-ctime.* *libc.a:lib_a-systimes.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysread.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-strndup.* *libc.a:lib_a-labs.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-strupr.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-strftime.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-creat.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-utoa.* *libc.a:lib_a-strspn.* *libc.a:lib_a-isprint.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-strptime.* *libc.a:lib_a-tolower.* *libc.a:lib_a-strcspn.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:system_api.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *librtc.a *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:i2c_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:systimer_hal.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libdriver.a:gpio.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .text.* EXCLUDE_FILE(*libpp.a *libnet80211.a *libsoc.a:uart_hal_iram.*) .wifi0iram EXCLUDE_FILE(*libpp.a *libnet80211.a *libsoc.a:uart_hal_iram.* *libfreertos.a:queue.*) .wifi0iram.* EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .wifirxiram EXCLUDE_FILE(*libsoc.a:uart_hal_iram.* *libfreertos.a:queue.*) .wifirxiram.*) *libdriver.a:gpio.*(.literal.gpio_od_enable .literal.gpio_od_disable .literal.gpio_input_enable .literal.gpio_input_disable .literal.gpio_output_disable .literal.gpio_intr_enable_on_core .literal.gpio_output_enable .literal.gpio_isr_register_on_core_static .literal.gpio_pullup_en .literal.gpio_pullup_dis .literal.gpio_pulldown_en .literal.gpio_pulldown_dis .literal.gpio_set_intr_type .literal.gpio_intr_enable .literal.gpio_intr_disable .literal.gpio_set_level .literal.gpio_get_level .literal.gpio_set_pull_mode .literal.gpio_set_direction .literal.gpio_config .literal.gpio_reset_pin .literal.gpio_isr_handler_add .literal.gpio_isr_handler_remove .literal.gpio_uninstall_isr_service .literal.gpio_isr_register .literal.gpio_install_isr_service .literal.gpio_wakeup_enable .literal.gpio_wakeup_disable .literal.gpio_set_drive_capability .literal.gpio_get_drive_capability .literal.gpio_hold_en .literal.gpio_hold_dis .literal.gpio_deep_sleep_hold_en .literal.gpio_deep_sleep_hold_dis .text.gpio_od_enable .text.gpio_od_disable .text.gpio_input_enable .text.gpio_input_disable .text.gpio_output_disable .text.gpio_intr_enable_on_core .text.gpio_output_enable .text.gpio_isr_register_on_core_static .text.gpio_pullup_en .text.gpio_pullup_dis .text.gpio_pulldown_en .text.gpio_pulldown_dis .text.gpio_set_intr_type .text.gpio_intr_enable .text.gpio_intr_disable .text.gpio_set_level .text.gpio_get_level .text.gpio_set_pull_mode .text.gpio_set_direction .text.gpio_config .text.gpio_reset_pin .text.gpio_isr_handler_add .text.gpio_isr_handler_remove .text.gpio_uninstall_isr_service .text.gpio_isr_register .text.gpio_install_isr_service .text.gpio_wakeup_enable .text.gpio_wakeup_disable .text.gpio_set_drive_capability .text.gpio_get_drive_capability .text.gpio_hold_en .text.gpio_hold_dis .text.gpio_deep_sleep_hold_en .text.gpio_deep_sleep_hold_dis) *libesp_event.a:default_event_loop.*(.literal.esp_event_handler_register .literal.esp_event_handler_instance_register .literal.esp_event_handler_unregister .literal.esp_event_handler_instance_unregister .literal.esp_event_post .literal.esp_event_loop_create_default .literal.esp_event_loop_delete_default .literal.esp_event_send_to_default_loop .text.esp_event_handler_register .text.esp_event_handler_instance_register .text.esp_event_handler_unregister .text.esp_event_handler_instance_unregister .text.esp_event_post .text.esp_event_loop_create_default .text.esp_event_loop_delete_default .text.esp_event_send_to_default_loop) *libesp_event.a:esp_event.*(.literal.handler_instances_remove_all .literal.base_node_remove_all_handler .literal.loop_node_remove_all_handler .literal.handler_instances_add .literal.base_node_add_handler .literal.loop_node_add_handler .literal.handler_instances_remove .literal.base_node_remove_handler .literal.loop_node_remove_handler .literal.esp_event_loop_create .literal.esp_event_loop_run .literal.esp_event_loop_run_task .literal.esp_event_loop_delete .literal.esp_event_handler_register_with_internal .literal.esp_event_handler_register_with .literal.esp_event_handler_instance_register_with .literal.esp_event_handler_unregister_with_internal .literal.esp_event_handler_unregister_with .literal.esp_event_handler_instance_unregister_with .literal.esp_event_post_to .text.handler_execute .text.handler_instances_remove_all .text.base_node_remove_all_handler .text.loop_node_remove_all_handler .text.handler_instances_add .text.base_node_add_handler .text.loop_node_add_handler .text.handler_instances_remove .text.base_node_remove_handler .text.loop_node_remove_handler .text.esp_event_loop_create .text.esp_event_loop_run .text.esp_event_loop_run_task .text.esp_event_loop_delete .text.esp_event_handler_register_with_internal .text.esp_event_handler_register_with .text.esp_event_handler_instance_register_with .text.esp_event_handler_unregister_with_internal .text.esp_event_handler_unregister_with .text.esp_event_handler_instance_unregister_with .text.esp_event_post_to .text.esp_event_dump) diff --git a/tools/sdk/esp32/ld/esp32.rom.ld b/tools/sdk/esp32/ld/esp32.rom.ld index 0b6f173c..073a6a94 100644 --- a/tools/sdk/esp32/ld/esp32.rom.ld +++ b/tools/sdk/esp32/ld/esp32.rom.ld @@ -707,6 +707,11 @@ PROVIDE ( r_ld_acl_timing_accuracy_set = 0x4003673c ); PROVIDE ( r_ld_acl_t_poll_get = 0x40036024 ); PROVIDE ( r_ld_acl_t_poll_set = 0x40036068 ); PROVIDE ( r_ld_acl_tx_enc = 0x400362f8 ); +PROVIDE ( ld_acl_frm_cbk = 0x40034414 ); +PROVIDE ( ld_acl_rsw_end = 0x40032bc0 ); +PROVIDE ( ld_acl_end = 0x40033140 ); +PROVIDE ( ld_acl_resched = 0x40033814 ); +PROVIDE ( ld_acl_test_mode_update = 0x40032050 ); PROVIDE ( r_ld_acl_unsniff = 0x400361e0 ); PROVIDE ( r_ld_active_check = 0x4003cac4 ); PROVIDE ( r_ld_afh_ch_assess_data_get = 0x4003caec ); diff --git a/tools/sdk/esp32/ld/libbtdm_app.a b/tools/sdk/esp32/ld/libbtdm_app.a index a3fefd27..8f02eed6 100644 Binary files a/tools/sdk/esp32/ld/libbtdm_app.a and b/tools/sdk/esp32/ld/libbtdm_app.a differ diff --git a/tools/sdk/esp32/lib/libapp_trace.a b/tools/sdk/esp32/lib/libapp_trace.a index a99c7c48..036dcc0f 100644 Binary files a/tools/sdk/esp32/lib/libapp_trace.a and b/tools/sdk/esp32/lib/libapp_trace.a differ diff --git a/tools/sdk/esp32/lib/libapp_update.a b/tools/sdk/esp32/lib/libapp_update.a index 878a2391..4b708f10 100644 Binary files a/tools/sdk/esp32/lib/libapp_update.a and b/tools/sdk/esp32/lib/libapp_update.a differ diff --git a/tools/sdk/esp32/lib/libasio.a b/tools/sdk/esp32/lib/libasio.a index a45ee2e7..6d8bfd0b 100644 Binary files a/tools/sdk/esp32/lib/libasio.a and b/tools/sdk/esp32/lib/libasio.a differ diff --git a/tools/sdk/esp32/lib/libbootloader_support.a b/tools/sdk/esp32/lib/libbootloader_support.a index 38e400f8..3d3d2d2f 100644 Binary files a/tools/sdk/esp32/lib/libbootloader_support.a and b/tools/sdk/esp32/lib/libbootloader_support.a differ diff --git a/tools/sdk/esp32/lib/libbt.a b/tools/sdk/esp32/lib/libbt.a index 1d441753..7b4787ef 100644 Binary files a/tools/sdk/esp32/lib/libbt.a and b/tools/sdk/esp32/lib/libbt.a differ diff --git a/tools/sdk/esp32/lib/libcbor.a b/tools/sdk/esp32/lib/libcbor.a index 9ba0ddc5..e253b05a 100644 Binary files a/tools/sdk/esp32/lib/libcbor.a and b/tools/sdk/esp32/lib/libcbor.a differ diff --git a/tools/sdk/esp32/lib/libcoap.a b/tools/sdk/esp32/lib/libcoap.a index d1ed664b..f14ffdf8 100644 Binary files a/tools/sdk/esp32/lib/libcoap.a and b/tools/sdk/esp32/lib/libcoap.a differ diff --git a/tools/sdk/esp32/lib/libcoexist.a b/tools/sdk/esp32/lib/libcoexist.a index b001d5e3..f0ed23db 100644 Binary files a/tools/sdk/esp32/lib/libcoexist.a and b/tools/sdk/esp32/lib/libcoexist.a differ diff --git a/tools/sdk/esp32/lib/libconsole.a b/tools/sdk/esp32/lib/libconsole.a index 69092eb0..fd0c61ff 100644 Binary files a/tools/sdk/esp32/lib/libconsole.a and b/tools/sdk/esp32/lib/libconsole.a differ diff --git a/tools/sdk/esp32/lib/libcore.a b/tools/sdk/esp32/lib/libcore.a index 547f38d5..e901b0ab 100644 Binary files a/tools/sdk/esp32/lib/libcore.a and b/tools/sdk/esp32/lib/libcore.a differ diff --git a/tools/sdk/esp32/lib/libcxx.a b/tools/sdk/esp32/lib/libcxx.a index 4b650778..73d3585a 100644 Binary files a/tools/sdk/esp32/lib/libcxx.a and b/tools/sdk/esp32/lib/libcxx.a differ diff --git a/tools/sdk/esp32/lib/libdriver.a b/tools/sdk/esp32/lib/libdriver.a index 69baf6cb..8b877ad5 100644 Binary files a/tools/sdk/esp32/lib/libdriver.a and b/tools/sdk/esp32/lib/libdriver.a differ diff --git a/tools/sdk/esp32/lib/libefuse.a b/tools/sdk/esp32/lib/libefuse.a index f78e7216..fefe1802 100644 Binary files a/tools/sdk/esp32/lib/libefuse.a and b/tools/sdk/esp32/lib/libefuse.a differ diff --git a/tools/sdk/esp32/lib/libesp-tls.a b/tools/sdk/esp32/lib/libesp-tls.a index 13b7342e..faba50b9 100644 Binary files a/tools/sdk/esp32/lib/libesp-tls.a and b/tools/sdk/esp32/lib/libesp-tls.a differ diff --git a/tools/sdk/esp32/lib/libesp32.a b/tools/sdk/esp32/lib/libesp32.a index 3a195537..ea945d58 100644 Binary files a/tools/sdk/esp32/lib/libesp32.a and b/tools/sdk/esp32/lib/libesp32.a differ diff --git a/tools/sdk/esp32/lib/libesp_adc_cal.a b/tools/sdk/esp32/lib/libesp_adc_cal.a index 995c8ca8..103441e2 100644 Binary files a/tools/sdk/esp32/lib/libesp_adc_cal.a and b/tools/sdk/esp32/lib/libesp_adc_cal.a differ diff --git a/tools/sdk/esp32/lib/libesp_common.a b/tools/sdk/esp32/lib/libesp_common.a index 1aa70ed4..73c74e05 100644 Binary files a/tools/sdk/esp32/lib/libesp_common.a and b/tools/sdk/esp32/lib/libesp_common.a differ diff --git a/tools/sdk/esp32/lib/libesp_eth.a b/tools/sdk/esp32/lib/libesp_eth.a index 3591d88d..2877617d 100644 Binary files a/tools/sdk/esp32/lib/libesp_eth.a and b/tools/sdk/esp32/lib/libesp_eth.a differ diff --git a/tools/sdk/esp32/lib/libesp_event.a b/tools/sdk/esp32/lib/libesp_event.a index 52edf444..28076ed8 100644 Binary files a/tools/sdk/esp32/lib/libesp_event.a and b/tools/sdk/esp32/lib/libesp_event.a differ diff --git a/tools/sdk/esp32/lib/libesp_gdbstub.a b/tools/sdk/esp32/lib/libesp_gdbstub.a index f149e93b..7fa41cb1 100644 Binary files a/tools/sdk/esp32/lib/libesp_gdbstub.a and b/tools/sdk/esp32/lib/libesp_gdbstub.a differ diff --git a/tools/sdk/esp32/lib/libesp_hid.a b/tools/sdk/esp32/lib/libesp_hid.a index 4fcac06f..59b5a8a6 100644 Binary files a/tools/sdk/esp32/lib/libesp_hid.a and b/tools/sdk/esp32/lib/libesp_hid.a differ diff --git a/tools/sdk/esp32/lib/libesp_http_client.a b/tools/sdk/esp32/lib/libesp_http_client.a index 64a222d6..81eb7b41 100644 Binary files a/tools/sdk/esp32/lib/libesp_http_client.a and b/tools/sdk/esp32/lib/libesp_http_client.a differ diff --git a/tools/sdk/esp32/lib/libesp_http_server.a b/tools/sdk/esp32/lib/libesp_http_server.a index 385cf1de..56a8002d 100644 Binary files a/tools/sdk/esp32/lib/libesp_http_server.a and b/tools/sdk/esp32/lib/libesp_http_server.a differ diff --git a/tools/sdk/esp32/lib/libesp_https_ota.a b/tools/sdk/esp32/lib/libesp_https_ota.a index f301b3ed..d38b9afc 100644 Binary files a/tools/sdk/esp32/lib/libesp_https_ota.a and b/tools/sdk/esp32/lib/libesp_https_ota.a differ diff --git a/tools/sdk/esp32/lib/libesp_ipc.a b/tools/sdk/esp32/lib/libesp_ipc.a new file mode 100644 index 00000000..bf6a5da9 Binary files /dev/null and b/tools/sdk/esp32/lib/libesp_ipc.a differ diff --git a/tools/sdk/esp32/lib/libesp_local_ctrl.a b/tools/sdk/esp32/lib/libesp_local_ctrl.a index ddcf3d62..dcc627df 100644 Binary files a/tools/sdk/esp32/lib/libesp_local_ctrl.a and b/tools/sdk/esp32/lib/libesp_local_ctrl.a differ diff --git a/tools/sdk/esp32/lib/libesp_netif.a b/tools/sdk/esp32/lib/libesp_netif.a index 323f184c..965627c7 100644 Binary files a/tools/sdk/esp32/lib/libesp_netif.a and b/tools/sdk/esp32/lib/libesp_netif.a differ diff --git a/tools/sdk/esp32/lib/libesp_ringbuf.a b/tools/sdk/esp32/lib/libesp_ringbuf.a index c77252dd..4df026d7 100644 Binary files a/tools/sdk/esp32/lib/libesp_ringbuf.a and b/tools/sdk/esp32/lib/libesp_ringbuf.a differ diff --git a/tools/sdk/esp32/lib/libesp_serial_slave_link.a b/tools/sdk/esp32/lib/libesp_serial_slave_link.a index 9f524126..971890ac 100644 Binary files a/tools/sdk/esp32/lib/libesp_serial_slave_link.a and b/tools/sdk/esp32/lib/libesp_serial_slave_link.a differ diff --git a/tools/sdk/esp32/lib/libesp_system.a b/tools/sdk/esp32/lib/libesp_system.a index 7ecb6930..e2b724d6 100644 Binary files a/tools/sdk/esp32/lib/libesp_system.a and b/tools/sdk/esp32/lib/libesp_system.a differ diff --git a/tools/sdk/esp32/lib/libesp_timer.a b/tools/sdk/esp32/lib/libesp_timer.a index 6cfd1749..1e727860 100644 Binary files a/tools/sdk/esp32/lib/libesp_timer.a and b/tools/sdk/esp32/lib/libesp_timer.a differ diff --git a/tools/sdk/esp32/lib/libesp_websocket_client.a b/tools/sdk/esp32/lib/libesp_websocket_client.a index 345f006d..69581ec8 100644 Binary files a/tools/sdk/esp32/lib/libesp_websocket_client.a and b/tools/sdk/esp32/lib/libesp_websocket_client.a differ diff --git a/tools/sdk/esp32/lib/libesp_wifi.a b/tools/sdk/esp32/lib/libesp_wifi.a index fdbd384e..7f79aebc 100644 Binary files a/tools/sdk/esp32/lib/libesp_wifi.a and b/tools/sdk/esp32/lib/libesp_wifi.a differ diff --git a/tools/sdk/esp32/lib/libespcoredump.a b/tools/sdk/esp32/lib/libespcoredump.a index b5e10f47..814f1e91 100644 Binary files a/tools/sdk/esp32/lib/libespcoredump.a and b/tools/sdk/esp32/lib/libespcoredump.a differ diff --git a/tools/sdk/esp32/lib/libespnow.a b/tools/sdk/esp32/lib/libespnow.a index f390a261..799a41d0 100644 Binary files a/tools/sdk/esp32/lib/libespnow.a and b/tools/sdk/esp32/lib/libespnow.a differ diff --git a/tools/sdk/esp32/lib/libexpat.a b/tools/sdk/esp32/lib/libexpat.a index b411d712..223882c5 100644 Binary files a/tools/sdk/esp32/lib/libexpat.a and b/tools/sdk/esp32/lib/libexpat.a differ diff --git a/tools/sdk/esp32/lib/libfatfs.a b/tools/sdk/esp32/lib/libfatfs.a index f2bae018..da8cc48c 100644 Binary files a/tools/sdk/esp32/lib/libfatfs.a and b/tools/sdk/esp32/lib/libfatfs.a differ diff --git a/tools/sdk/esp32/lib/libfb_gfx.a b/tools/sdk/esp32/lib/libfb_gfx.a index 18a5d0e0..8f671f41 100644 Binary files a/tools/sdk/esp32/lib/libfb_gfx.a and b/tools/sdk/esp32/lib/libfb_gfx.a differ diff --git a/tools/sdk/esp32/lib/libfreemodbus.a b/tools/sdk/esp32/lib/libfreemodbus.a index a2469efd..3318a71d 100644 Binary files a/tools/sdk/esp32/lib/libfreemodbus.a and b/tools/sdk/esp32/lib/libfreemodbus.a differ diff --git a/tools/sdk/esp32/lib/libfreertos.a b/tools/sdk/esp32/lib/libfreertos.a index 992a18de..a498bf82 100644 Binary files a/tools/sdk/esp32/lib/libfreertos.a and b/tools/sdk/esp32/lib/libfreertos.a differ diff --git a/tools/sdk/esp32/lib/libheap.a b/tools/sdk/esp32/lib/libheap.a index 64b849ea..97c3c659 100644 Binary files a/tools/sdk/esp32/lib/libheap.a and b/tools/sdk/esp32/lib/libheap.a differ diff --git a/tools/sdk/esp32/lib/libjsmn.a b/tools/sdk/esp32/lib/libjsmn.a index af2fa809..b4764aae 100644 Binary files a/tools/sdk/esp32/lib/libjsmn.a and b/tools/sdk/esp32/lib/libjsmn.a differ diff --git a/tools/sdk/esp32/lib/libjson.a b/tools/sdk/esp32/lib/libjson.a index ae00e9dd..a374bb50 100644 Binary files a/tools/sdk/esp32/lib/libjson.a and b/tools/sdk/esp32/lib/libjson.a differ diff --git a/tools/sdk/esp32/lib/liblibsodium.a b/tools/sdk/esp32/lib/liblibsodium.a index 4d19e4e0..c21cfaf6 100644 Binary files a/tools/sdk/esp32/lib/liblibsodium.a and b/tools/sdk/esp32/lib/liblibsodium.a differ diff --git a/tools/sdk/esp32/lib/liblog.a b/tools/sdk/esp32/lib/liblog.a index 1cfb0a24..0c181f2d 100644 Binary files a/tools/sdk/esp32/lib/liblog.a and b/tools/sdk/esp32/lib/liblog.a differ diff --git a/tools/sdk/esp32/lib/liblwip.a b/tools/sdk/esp32/lib/liblwip.a index 6a2aac82..60e96712 100644 Binary files a/tools/sdk/esp32/lib/liblwip.a and b/tools/sdk/esp32/lib/liblwip.a differ diff --git a/tools/sdk/esp32/lib/libmbedcrypto.a b/tools/sdk/esp32/lib/libmbedcrypto.a index 78fd13ff..98e91188 100644 Binary files a/tools/sdk/esp32/lib/libmbedcrypto.a and b/tools/sdk/esp32/lib/libmbedcrypto.a differ diff --git a/tools/sdk/esp32/lib/libmbedtls.a b/tools/sdk/esp32/lib/libmbedtls.a index a805b9de..44eb1e38 100644 Binary files a/tools/sdk/esp32/lib/libmbedtls.a and b/tools/sdk/esp32/lib/libmbedtls.a differ diff --git a/tools/sdk/esp32/lib/libmbedx509.a b/tools/sdk/esp32/lib/libmbedx509.a index 1e8887c7..72917396 100644 Binary files a/tools/sdk/esp32/lib/libmbedx509.a and b/tools/sdk/esp32/lib/libmbedx509.a differ diff --git a/tools/sdk/esp32/lib/libmdns.a b/tools/sdk/esp32/lib/libmdns.a index 0e756046..d8045902 100644 Binary files a/tools/sdk/esp32/lib/libmdns.a and b/tools/sdk/esp32/lib/libmdns.a differ diff --git a/tools/sdk/esp32/lib/libmesh.a b/tools/sdk/esp32/lib/libmesh.a index 1baab5bc..8e391f4e 100644 Binary files a/tools/sdk/esp32/lib/libmesh.a and b/tools/sdk/esp32/lib/libmesh.a differ diff --git a/tools/sdk/esp32/lib/libmqtt.a b/tools/sdk/esp32/lib/libmqtt.a index 91376e6f..3cadc0db 100644 Binary files a/tools/sdk/esp32/lib/libmqtt.a and b/tools/sdk/esp32/lib/libmqtt.a differ diff --git a/tools/sdk/esp32/lib/libnet80211.a b/tools/sdk/esp32/lib/libnet80211.a index 4185f135..4f0c9019 100644 Binary files a/tools/sdk/esp32/lib/libnet80211.a and b/tools/sdk/esp32/lib/libnet80211.a differ diff --git a/tools/sdk/esp32/lib/libnewlib.a b/tools/sdk/esp32/lib/libnewlib.a index 8d02a642..458f3131 100644 Binary files a/tools/sdk/esp32/lib/libnewlib.a and b/tools/sdk/esp32/lib/libnewlib.a differ diff --git a/tools/sdk/esp32/lib/libnghttp.a b/tools/sdk/esp32/lib/libnghttp.a index 06623771..eb1a032a 100644 Binary files a/tools/sdk/esp32/lib/libnghttp.a and b/tools/sdk/esp32/lib/libnghttp.a differ diff --git a/tools/sdk/esp32/lib/libnvs_flash.a b/tools/sdk/esp32/lib/libnvs_flash.a index 22addf36..bd901cde 100644 Binary files a/tools/sdk/esp32/lib/libnvs_flash.a and b/tools/sdk/esp32/lib/libnvs_flash.a differ diff --git a/tools/sdk/esp32/lib/libopenssl.a b/tools/sdk/esp32/lib/libopenssl.a index 3e828b1e..93df03ff 100644 Binary files a/tools/sdk/esp32/lib/libopenssl.a and b/tools/sdk/esp32/lib/libopenssl.a differ diff --git a/tools/sdk/esp32/lib/libperfmon.a b/tools/sdk/esp32/lib/libperfmon.a index 638d0ab8..ea76fdd6 100644 Binary files a/tools/sdk/esp32/lib/libperfmon.a and b/tools/sdk/esp32/lib/libperfmon.a differ diff --git a/tools/sdk/esp32/lib/libphy.a b/tools/sdk/esp32/lib/libphy.a old mode 100644 new mode 100755 index d6fbfd77..14566801 Binary files a/tools/sdk/esp32/lib/libphy.a and b/tools/sdk/esp32/lib/libphy.a differ diff --git a/tools/sdk/esp32/lib/libpp.a b/tools/sdk/esp32/lib/libpp.a index 49296907..febac854 100644 Binary files a/tools/sdk/esp32/lib/libpp.a and b/tools/sdk/esp32/lib/libpp.a differ diff --git a/tools/sdk/esp32/lib/libprotobuf-c.a b/tools/sdk/esp32/lib/libprotobuf-c.a index 984935e6..28e1fc8c 100644 Binary files a/tools/sdk/esp32/lib/libprotobuf-c.a and b/tools/sdk/esp32/lib/libprotobuf-c.a differ diff --git a/tools/sdk/esp32/lib/libprotocomm.a b/tools/sdk/esp32/lib/libprotocomm.a index cba935fe..d43f4e0e 100644 Binary files a/tools/sdk/esp32/lib/libprotocomm.a and b/tools/sdk/esp32/lib/libprotocomm.a differ diff --git a/tools/sdk/esp32/lib/libpthread.a b/tools/sdk/esp32/lib/libpthread.a index 7da3d8c4..611e83d2 100644 Binary files a/tools/sdk/esp32/lib/libpthread.a and b/tools/sdk/esp32/lib/libpthread.a differ diff --git a/tools/sdk/esp32/lib/libsdmmc.a b/tools/sdk/esp32/lib/libsdmmc.a index 15417011..f9c940f1 100644 Binary files a/tools/sdk/esp32/lib/libsdmmc.a and b/tools/sdk/esp32/lib/libsdmmc.a differ diff --git a/tools/sdk/esp32/lib/libsmartconfig.a b/tools/sdk/esp32/lib/libsmartconfig.a index 871d64fe..0f31106b 100644 Binary files a/tools/sdk/esp32/lib/libsmartconfig.a and b/tools/sdk/esp32/lib/libsmartconfig.a differ diff --git a/tools/sdk/esp32/lib/libsoc.a b/tools/sdk/esp32/lib/libsoc.a index f7036d43..dd03b3e5 100644 Binary files a/tools/sdk/esp32/lib/libsoc.a and b/tools/sdk/esp32/lib/libsoc.a differ diff --git a/tools/sdk/esp32/lib/libsoc_esp32.a b/tools/sdk/esp32/lib/libsoc_esp32.a index 4ac00ff5..57141b6f 100644 Binary files a/tools/sdk/esp32/lib/libsoc_esp32.a and b/tools/sdk/esp32/lib/libsoc_esp32.a differ diff --git a/tools/sdk/esp32/lib/libspi_flash.a b/tools/sdk/esp32/lib/libspi_flash.a index aeb0693e..dd13310e 100644 Binary files a/tools/sdk/esp32/lib/libspi_flash.a and b/tools/sdk/esp32/lib/libspi_flash.a differ diff --git a/tools/sdk/esp32/lib/libspiffs.a b/tools/sdk/esp32/lib/libspiffs.a index aed04cc3..c62525f5 100644 Binary files a/tools/sdk/esp32/lib/libspiffs.a and b/tools/sdk/esp32/lib/libspiffs.a differ diff --git a/tools/sdk/esp32/lib/libtcp_transport.a b/tools/sdk/esp32/lib/libtcp_transport.a index 90b3da56..3486da59 100644 Binary files a/tools/sdk/esp32/lib/libtcp_transport.a and b/tools/sdk/esp32/lib/libtcp_transport.a differ diff --git a/tools/sdk/esp32/lib/libtcpip_adapter.a b/tools/sdk/esp32/lib/libtcpip_adapter.a index 9a9bee55..b4c7a62c 100644 Binary files a/tools/sdk/esp32/lib/libtcpip_adapter.a and b/tools/sdk/esp32/lib/libtcpip_adapter.a differ diff --git a/tools/sdk/esp32/lib/libulp.a b/tools/sdk/esp32/lib/libulp.a index dc4d0ca2..5c438f3c 100644 Binary files a/tools/sdk/esp32/lib/libulp.a and b/tools/sdk/esp32/lib/libulp.a differ diff --git a/tools/sdk/esp32/lib/libunity.a b/tools/sdk/esp32/lib/libunity.a index c2de2683..63029752 100644 Binary files a/tools/sdk/esp32/lib/libunity.a and b/tools/sdk/esp32/lib/libunity.a differ diff --git a/tools/sdk/esp32/lib/libvfs.a b/tools/sdk/esp32/lib/libvfs.a index a75270c8..ca45af6a 100644 Binary files a/tools/sdk/esp32/lib/libvfs.a and b/tools/sdk/esp32/lib/libvfs.a differ diff --git a/tools/sdk/esp32/lib/libwear_levelling.a b/tools/sdk/esp32/lib/libwear_levelling.a index 4a844e2f..d1493f24 100644 Binary files a/tools/sdk/esp32/lib/libwear_levelling.a and b/tools/sdk/esp32/lib/libwear_levelling.a differ diff --git a/tools/sdk/esp32/lib/libwifi_provisioning.a b/tools/sdk/esp32/lib/libwifi_provisioning.a index 78e9adcd..e8f64c41 100644 Binary files a/tools/sdk/esp32/lib/libwifi_provisioning.a and b/tools/sdk/esp32/lib/libwifi_provisioning.a differ diff --git a/tools/sdk/esp32/lib/libwpa_supplicant.a b/tools/sdk/esp32/lib/libwpa_supplicant.a index 16d0c639..e5974f2c 100644 Binary files a/tools/sdk/esp32/lib/libwpa_supplicant.a and b/tools/sdk/esp32/lib/libwpa_supplicant.a differ diff --git a/tools/sdk/esp32/lib/libxtensa.a b/tools/sdk/esp32/lib/libxtensa.a index e8f69dfa..5b1d8a0f 100644 Binary files a/tools/sdk/esp32/lib/libxtensa.a and b/tools/sdk/esp32/lib/libxtensa.a differ diff --git a/tools/sdk/esp32/sdkconfig b/tools/sdk/esp32/sdkconfig index a3c3add3..792b573c 100644 --- a/tools/sdk/esp32/sdkconfig +++ b/tools/sdk/esp32/sdkconfig @@ -73,6 +73,7 @@ CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 # Serial flasher config # CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200 +CONFIG_ESPTOOLPY_WITH_STUB=y # CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set # CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set CONFIG_ESPTOOLPY_FLASHMODE_DIO=y @@ -510,6 +511,7 @@ CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y +CONFIG_ESP_MAC_ADDR_UNIVERSE_BT_OFFSET=2 CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y # end of Common ESP-related @@ -794,6 +796,7 @@ CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y CONFIG_LWIP_TIMERS_ONDEMAND=y CONFIG_LWIP_MAX_SOCKETS=10 # CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set +# CONFIG_LWIP_SO_LINGER is not set CONFIG_LWIP_SO_REUSE=y CONFIG_LWIP_SO_REUSE_RXTOALL=y CONFIG_LWIP_SO_RCVBUF=y diff --git a/tools/sdk/esp32s2/bin/bootloader_dio_40m.bin b/tools/sdk/esp32s2/bin/bootloader_dio_40m.bin index 46a18932..02019b7f 100644 Binary files a/tools/sdk/esp32s2/bin/bootloader_dio_40m.bin and b/tools/sdk/esp32s2/bin/bootloader_dio_40m.bin differ diff --git a/tools/sdk/esp32s2/bin/bootloader_dio_80m.bin b/tools/sdk/esp32s2/bin/bootloader_dio_80m.bin index 309e0a43..4bef8248 100644 Binary files a/tools/sdk/esp32s2/bin/bootloader_dio_80m.bin and b/tools/sdk/esp32s2/bin/bootloader_dio_80m.bin differ diff --git a/tools/sdk/esp32s2/bin/bootloader_dout_40m.bin b/tools/sdk/esp32s2/bin/bootloader_dout_40m.bin index 46a18932..02019b7f 100644 Binary files a/tools/sdk/esp32s2/bin/bootloader_dout_40m.bin and b/tools/sdk/esp32s2/bin/bootloader_dout_40m.bin differ diff --git a/tools/sdk/esp32s2/bin/bootloader_dout_80m.bin b/tools/sdk/esp32s2/bin/bootloader_dout_80m.bin index 309e0a43..4bef8248 100644 Binary files a/tools/sdk/esp32s2/bin/bootloader_dout_80m.bin and b/tools/sdk/esp32s2/bin/bootloader_dout_80m.bin differ diff --git a/tools/sdk/esp32s2/bin/bootloader_qio_40m.bin b/tools/sdk/esp32s2/bin/bootloader_qio_40m.bin index 46a18932..02019b7f 100644 Binary files a/tools/sdk/esp32s2/bin/bootloader_qio_40m.bin and b/tools/sdk/esp32s2/bin/bootloader_qio_40m.bin differ diff --git a/tools/sdk/esp32s2/bin/bootloader_qio_80m.bin b/tools/sdk/esp32s2/bin/bootloader_qio_80m.bin index 309e0a43..4bef8248 100644 Binary files a/tools/sdk/esp32s2/bin/bootloader_qio_80m.bin and b/tools/sdk/esp32s2/bin/bootloader_qio_80m.bin differ diff --git a/tools/sdk/esp32s2/bin/bootloader_qout_40m.bin b/tools/sdk/esp32s2/bin/bootloader_qout_40m.bin index 46a18932..02019b7f 100644 Binary files a/tools/sdk/esp32s2/bin/bootloader_qout_40m.bin and b/tools/sdk/esp32s2/bin/bootloader_qout_40m.bin differ diff --git a/tools/sdk/esp32s2/bin/bootloader_qout_80m.bin b/tools/sdk/esp32s2/bin/bootloader_qout_80m.bin index 309e0a43..4bef8248 100644 Binary files a/tools/sdk/esp32s2/bin/bootloader_qout_80m.bin and b/tools/sdk/esp32s2/bin/bootloader_qout_80m.bin differ diff --git a/tools/sdk/esp32s2/include/app_update/include/esp_ota_ops.h b/tools/sdk/esp32s2/include/app_update/include/esp_ota_ops.h index 4dc2b80f..3bb063d3 100644 --- a/tools/sdk/esp32s2/include/app_update/include/esp_ota_ops.h +++ b/tools/sdk/esp32s2/include/app_update/include/esp_ota_ops.h @@ -117,6 +117,29 @@ esp_err_t esp_ota_begin(const esp_partition_t* partition, size_t image_size, esp */ esp_err_t esp_ota_write(esp_ota_handle_t handle, const void* data, size_t size); +/** + * @brief Write OTA update data to partition + * + * This function can write data in non contiguous manner. + * If flash encryption is enabled, data should be 16 byte aligned. + * + * @param handle Handle obtained from esp_ota_begin + * @param data Data buffer to write + * @param size Size of data buffer in bytes + * @param offset Offset in flash partition + * + * @note While performing OTA, if the packets arrive out of order, esp_ota_write_with_offset() can be used to write data in non contiguous manner. + * Use of esp_ota_write_with_offset() in combination with esp_ota_write() is not recommended. + * + * @return + * - ESP_OK: Data was written to flash successfully. + * - ESP_ERR_INVALID_ARG: handle is invalid. + * - ESP_ERR_OTA_VALIDATE_FAILED: First byte of image contains invalid app image magic byte. + * - ESP_ERR_FLASH_OP_TIMEOUT or ESP_ERR_FLASH_OP_FAIL: Flash write failed. + * - ESP_ERR_OTA_SELECT_INFO_INVALID: OTA data partition has invalid contents + */ +esp_err_t esp_ota_write_with_offset(esp_ota_handle_t handle, const void *data, size_t size, uint32_t offset); + /** * @brief Finish OTA update and validate newly written app image. * diff --git a/tools/sdk/esp32s2/include/bootloader_support/include/esp_flash_encrypt.h b/tools/sdk/esp32s2/include/bootloader_support/include/esp_flash_encrypt.h index 50023717..fc1b3729 100644 --- a/tools/sdk/esp32s2/include/bootloader_support/include/esp_flash_encrypt.h +++ b/tools/sdk/esp32s2/include/bootloader_support/include/esp_flash_encrypt.h @@ -128,6 +128,10 @@ esp_err_t esp_flash_encrypt_region(uint32_t src_addr, size_t data_length); * is enabled but secure boot is not used. This should protect against * serial re-flashing of an unauthorised code in absence of secure boot. * + * @note On ESP32 V3 only, write protecting FLASH_CRYPT_CNT will also prevent + * disabling UART Download Mode. If both are wanted, call + * esp_efuse_disable_rom_download_mode() before calling this function. + * */ void esp_flash_write_protect_crypt_cnt(void); diff --git a/tools/sdk/esp32s2/include/config/sdkconfig.h b/tools/sdk/esp32s2/include/config/sdkconfig.h index febce240..df5fd16d 100644 --- a/tools/sdk/esp32s2/include/config/sdkconfig.h +++ b/tools/sdk/esp32s2/include/config/sdkconfig.h @@ -24,10 +24,11 @@ #define CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP 1 #define CONFIG_BOOTLOADER_RESERVE_RTC_SIZE 0x10 #define CONFIG_ESPTOOLPY_BAUD_OTHER_VAL 115200 +#define CONFIG_ESPTOOLPY_WITH_STUB 1 #define CONFIG_ESPTOOLPY_FLASHMODE_QIO 1 #define CONFIG_ESPTOOLPY_FLASHMODE "dio" -#define CONFIG_ESPTOOLPY_FLASHFREQ_40M 1 -#define CONFIG_ESPTOOLPY_FLASHFREQ "40m" +#define CONFIG_ESPTOOLPY_FLASHFREQ_80M 1 +#define CONFIG_ESPTOOLPY_FLASHFREQ "80m" #define CONFIG_ESPTOOLPY_FLASHSIZE_4MB 1 #define CONFIG_ESPTOOLPY_FLASHSIZE "4MB" #define CONFIG_ESPTOOLPY_FLASHSIZE_DETECT 1 @@ -353,12 +354,12 @@ #define CONFIG_SPIFFS_META_LENGTH 4 #define CONFIG_SPIFFS_USE_MTIME 1 #define CONFIG_USB_ENABLED 1 -#define CONFIG_USB_MAX_POWER_USAGE 500 +#define CONFIG_USB_MAX_POWER_USAGE 100 #define CONFIG_USB_DYNAMIC_DRIVER_LOADING 1 #define CONFIG_USB_DYNAMIC_DRIVER_MAX 16 #define CONFIG_USB_CDC_ENABLED 1 -#define CONFIG_USB_CDC_RX_BUFSIZE 1024 -#define CONFIG_USB_CDC_TX_BUFSIZE 1024 +#define CONFIG_USB_CDC_RX_BUFSIZE 64 +#define CONFIG_USB_CDC_TX_BUFSIZE 64 #define CONFIG_USB_DFU_RT_ENABLED 1 #define CONFIG_USB_MSC_ENABLED 1 #define CONFIG_USB_MSC_BUFSIZE 512 @@ -371,9 +372,9 @@ #define CONFIG_USB_DESC_USE_ESPRESSIF_VID 1 #define CONFIG_USB_DESC_USE_DEFAULT_PID 1 #define CONFIG_USB_DESC_BCDDEVICE 0x0100 -#define CONFIG_USB_DESC_MANUFACTURER_STRING "Espressif" +#define CONFIG_USB_DESC_MANUFACTURER_STRING "Espressif Systems" #define CONFIG_USB_DESC_PRODUCT_STRING "Espressif Device" -#define CONFIG_USB_DESC_SERIAL_STRING "123456" +#define CONFIG_USB_DESC_SERIAL_STRING "0" #define CONFIG_USB_DESC_CDC_STRING "Espressif CDC Device" #define CONFIG_USB_DESC_DFU_RT_STRING "Espressif DFU Device" #define CONFIG_USB_DESC_MSC_STRING "Espressif MSC Device" diff --git a/tools/sdk/esp32s2/include/driver/include/driver/adc_common.h b/tools/sdk/esp32s2/include/driver/include/driver/adc_common.h index 25dc7055..9f896a55 100644 --- a/tools/sdk/esp32s2/include/driver/include/driver/adc_common.h +++ b/tools/sdk/esp32s2/include/driver/include/driver/adc_common.h @@ -158,7 +158,7 @@ esp_err_t adc1_config_width(adc_bits_width_t width_bit); * When enabling power for any of these peripherals, ignore input from GPIO36 and GPIO39. * Please refer to section 3.11 of 'ECO_and_Workarounds_for_Bugs_in_ESP32' for the description of this issue. * - * @note Call adc1_config_width() before the first time this + * @note Call ``adc1_config_width()`` before the first time this * function is called. * * @note For any given channel, adc1_config_channel_atten(channel) @@ -230,9 +230,9 @@ esp_err_t adc_set_data_width(adc_unit_t adc_unit, adc_bits_width_t width_bit); * @brief Configure ADC1 to be usable by the ULP * * This function reconfigures ADC1 to be controlled by the ULP. - * Effect of this function can be reverted using adc1_get_raw function. + * Effect of this function can be reverted using ``adc1_get_raw()`` function. * - * Note that adc1_config_channel_atten, adc1_config_width functions need + * Note that adc1_config_channel_atten, ``adc1_config_width()`` functions need * to be called to configure ADC1 channels, before ADC1 is used by the ULP. */ void adc1_ulp_enable(void); diff --git a/tools/sdk/esp32s2/include/driver/include/driver/i2s.h b/tools/sdk/esp32s2/include/driver/include/driver/i2s.h index f976a31c..2a35a215 100644 --- a/tools/sdk/esp32s2/include/driver/include/driver/i2s.h +++ b/tools/sdk/esp32s2/include/driver/include/driver/i2s.h @@ -1,4 +1,4 @@ -// Copyright 2015-2019 Espressif Systems (Shanghai) PTE LTD +// Copyright 2015-2020 Espressif Systems (Shanghai) PTE LTD // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -33,6 +33,8 @@ extern "C" { #endif +#define I2S_PIN_NO_CHANGE (-1) /*!< Use in i2s_pin_config_t for pins which should not be changed */ + typedef intr_handle_t i2s_isr_handle_t; /** @@ -194,7 +196,7 @@ esp_err_t i2s_write_expand(i2s_port_t i2s_num, const void *src, size_t size, siz * * @param ticks_to_wait RX buffer wait timeout in RTOS ticks. If this many ticks pass without bytes becoming available in the DMA receive buffer, then the function will return (note that if data is read from the DMA buffer in pieces, the overall operation may still take longer than this timeout.) Pass portMAX_DELAY for no timeout. * - * @note If the built-in ADC mode is enabled, we should call i2s_adc_start and i2s_adc_stop around the whole reading process, + * @note If the built-in ADC mode is enabled, we should call i2s_adc_enable and i2s_adc_disable around the whole reading process, * to prevent the data getting corrupted. * * @return diff --git a/tools/sdk/esp32s2/include/efuse/esp32s2/include/esp_efuse_table.h b/tools/sdk/esp32s2/include/efuse/esp32s2/include/esp_efuse_table.h index d2447e97..dc067d90 100644 --- a/tools/sdk/esp32s2/include/efuse/esp32s2/include/esp_efuse_table.h +++ b/tools/sdk/esp32s2/include/efuse/esp32s2/include/esp_efuse_table.h @@ -17,7 +17,7 @@ extern "C" { #endif -// md5_digest_table 21c19cced6c4c11c1f731e2ece7d74ab +// md5_digest_table d9cd89987a033ef74503daeb4dd8dd07 // This file was generated from the file esp_efuse_table.csv. DO NOT CHANGE THIS FILE MANUALLY. // If you want to change some fields, you need to change esp_efuse_table.csv file // then run `efuse_common_table` or `efuse_custom_table` command it will generate this file. @@ -73,6 +73,7 @@ extern const esp_efuse_desc_t* ESP_EFUSE_HARD_DIS_JTAG[]; extern const esp_efuse_desc_t* ESP_EFUSE_DIS_DOWNLOAD_MANUAL_ENCRYPT[]; extern const esp_efuse_desc_t* ESP_EFUSE_USB_EXCHG_PINS[]; extern const esp_efuse_desc_t* ESP_EFUSE_USB_EXT_PHY_ENABLE[]; +extern const esp_efuse_desc_t* ESP_EFUSE_BLOCK0_VERSION[]; extern const esp_efuse_desc_t* ESP_EFUSE_VDD_SPI_XPD[]; extern const esp_efuse_desc_t* ESP_EFUSE_VDD_SPI_TIEH[]; extern const esp_efuse_desc_t* ESP_EFUSE_VDD_SPI_FORCE[]; @@ -112,9 +113,12 @@ extern const esp_efuse_desc_t* ESP_EFUSE_SPI_PAD_CONFIG_D4[]; extern const esp_efuse_desc_t* ESP_EFUSE_SPI_PAD_CONFIG_D5[]; extern const esp_efuse_desc_t* ESP_EFUSE_SPI_PAD_CONFIG_D6[]; extern const esp_efuse_desc_t* ESP_EFUSE_SPI_PAD_CONFIG_D7[]; -extern const esp_efuse_desc_t* ESP_EFUSE_CLK8M_FREQ[]; +extern const esp_efuse_desc_t* ESP_EFUSE_WAFER_VERSION[]; +extern const esp_efuse_desc_t* ESP_EFUSE_PKG_VERSION[]; +extern const esp_efuse_desc_t* ESP_EFUSE_BLOCK1_VERSION[]; extern const esp_efuse_desc_t* ESP_EFUSE_SYS_DATA_PART0[]; -extern const esp_efuse_desc_t* ESP_EFUSE_SYS_DATA_PART1[]; +extern const esp_efuse_desc_t* ESP_EFUSE_OPTIONAL_UNIQUE_ID[]; +extern const esp_efuse_desc_t* ESP_EFUSE_BLOCK2_VERSION[]; extern const esp_efuse_desc_t* ESP_EFUSE_USER_DATA[]; extern const esp_efuse_desc_t* ESP_EFUSE_KEY0[]; extern const esp_efuse_desc_t* ESP_EFUSE_KEY1[]; diff --git a/tools/sdk/esp32s2/include/efuse/include/esp_efuse.h b/tools/sdk/esp32s2/include/efuse/include/esp_efuse.h index 47eb1d15..ab792a49 100644 --- a/tools/sdk/esp32s2/include/efuse/include/esp_efuse.h +++ b/tools/sdk/esp32s2/include/efuse/include/esp_efuse.h @@ -21,6 +21,7 @@ extern "C" { #include #include "esp_err.h" #include "esp_log.h" +#include "soc/soc_caps.h" #include "sdkconfig.h" #if CONFIG_IDF_TARGET_ESP32 #include "esp32/esp_efuse.h" @@ -66,6 +67,23 @@ typedef struct esp_efuse_desc_s esp_efuse_desc_t; */ esp_err_t esp_efuse_read_field_blob(const esp_efuse_desc_t* field[], void* dst, size_t dst_size_bits); + +/** + * @brief Read a single bit eFuse field as a boolean value. + * + * @note The value must exist and must be a single bit wide. If there is any possibility of an error + * in the provided arguments, call esp_efuse_read_field_blob() and check the returned value instead. + * + * @note If assertions are enabled and the parameter is invalid, execution will abort + * + * @param[in] field A pointer to the structure describing the fields of efuse. + * @return + * - true: The field parameter is valid and the bit is set. + * - false: The bit is not set, or the parameter is invalid and assertions are disabled. + * + */ +bool esp_efuse_read_field_bit(const esp_efuse_desc_t *field[]); + /** * @brief Reads bits from EFUSE field and returns number of bits programmed as "1". * @@ -114,6 +132,23 @@ esp_err_t esp_efuse_write_field_blob(const esp_efuse_desc_t* field[], const void */ esp_err_t esp_efuse_write_field_cnt(const esp_efuse_desc_t* field[], size_t cnt); +/** + * @brief Write a single bit eFuse field to 1 + * + * For use with eFuse fields that are a single bit. This function will write the bit to value 1 if + * it is not already set, or does nothing if the bit is already set. + * + * This is equivalent to calling esp_efuse_write_field_cnt() with the cnt parameter equal to 1, + * except that it will return ESP_OK if the field is already set to 1. + * + * @param[in] field Pointer to the structure describing the efuse field. + * + * @return + * - ESP_OK: The operation was successfully completed, or the bit was already set to value 1. + * - ESP_ERR_INVALID_ARG: Error in the passed arugments, including if the efuse field is not 1 bit wide. + */ +esp_err_t esp_efuse_write_field_bit(const esp_efuse_desc_t* field[]); + /** * @brief Sets a write protection for the whole block. * @@ -274,15 +309,48 @@ void esp_efuse_reset(void); * By default, if booting from flash fails the ESP32 will boot a * BASIC console in ROM. * - * Call this function (from bootloader or app) to permanently - * disable the console on this chip. - * + * Call this function (from bootloader or app) to permanently disable the console on this chip. * */ void esp_efuse_disable_basic_rom_console(void); #endif +/* @brief Disable ROM Download Mode via eFuse + * + * Permanently disables the ROM Download Mode feature. Once disabled, if the SoC is booted with + * strapping pins set for ROM Download Mode then an error is printed instead. + * + * @note Not all SoCs support this option. An error will be returned if called on an ESP32 + * with a silicon revision lower than 3, as these revisions do not support this option. + * + * @note If ROM Download Mode is already disabled, this function does nothing and returns success. + * + * @return + * - ESP_OK If the eFuse was successfully burned, or had already been burned. + * - ESP_ERR_NOT_SUPPORTED (ESP32 only) This SoC is not capable of disabling UART download mode + * - ESP_ERR_INVALID_STATE (ESP32 only) This eFuse is write protected and cannot be written + */ +esp_err_t esp_efuse_disable_rom_download_mode(void); + +#if SOC_SUPPORTS_SECURE_DL_MODE +/* @brief Switch ROM Download Mode to Secure Download mode via eFuse + * + * Permanently enables Secure Download mode. This mode limits the use of ROM Download Mode functions + * to simple flash read, write and erase operations, plus a command to return a summary of currently + * enabled security features. + * + * @note If Secure Download mode is already enabled, this function does nothing and returns success. + * + * @note Disabling the ROM Download Mode also disables Secure Download Mode. + * + * @return + * - ESP_OK If the eFuse was successfully burned, or had already been burned. + * - ESP_ERR_INVALID_STATE ROM Download Mode has been disabled via eFuse, so Secure Download mode is unavailable. + */ +esp_err_t esp_efuse_enable_rom_secure_download_mode(void); +#endif + /* @brief Write random data to efuse key block write registers * * @note Caller is responsible for ensuring efuse diff --git a/tools/sdk/esp32s2/include/esp32s2/include/esp32s2/spiram.h b/tools/sdk/esp32s2/include/esp32s2/include/esp32s2/spiram.h index d7320c1a..ff6bfc52 100644 --- a/tools/sdk/esp32s2/include/esp32s2/include/esp32s2/spiram.h +++ b/tools/sdk/esp32s2/include/esp32s2/include/esp32s2/spiram.h @@ -91,6 +91,54 @@ void esp_spiram_writeback_cache(void); */ esp_err_t esp_spiram_reserve_dma_pool(size_t size); +#if CONFIG_SPIRAM_FETCH_INSTRUCTIONS + +extern int _instruction_reserved_start, _instruction_reserved_end; + +/** + * @brief Get the start page number of the instruction in SPI flash + * + * @return start page number + */ +uint32_t instruction_flash_start_page_get(void); +/** + * @brief Get the end page number of the instruction in SPI flash + * + * @return end page number + */ +uint32_t instruction_flash_end_page_get(void); +/** + * @brief Get the offset of instruction from SPI flash to SPI RAM + * + * @return instruction offset + */ +int instruction_flash2spiram_offset(void); +#endif + +#if CONFIG_SPIRAM_RODATA + +extern int _rodata_reserved_start, _rodata_reserved_end; + +/** + * @brief Get the start page number of the rodata in SPI flash + * + * @return start page number + */ +uint32_t rodata_flash_start_page_get(void); +/** + * @brief Get the end page number of the rodata in SPI flash + * + * @return end page number + */ +uint32_t rodata_flash_end_page_get(void); +/** + * @brief Get the offset number of rodata from SPI flash to SPI RAM + * + * @return rodata offset + */ +int rodata_flash2spiram_offset(void); +#endif + #ifdef __cplusplus } #endif diff --git a/tools/sdk/esp32s2/include/esp32s2/include/esp_ds.h b/tools/sdk/esp32s2/include/esp32s2/include/esp_ds.h index b6e0db34..e11b8ed5 100644 --- a/tools/sdk/esp32s2/include/esp32s2/include/esp_ds.h +++ b/tools/sdk/esp32s2/include/esp32s2/include/esp_ds.h @@ -50,7 +50,8 @@ typedef enum { * @note This struct has to match to one from the ROM code! This documentation is mostly taken from there. */ typedef struct esp_digital_signature_data { - /* RSA LENGTH register parameters + /** + * RSA LENGTH register parameters * (number of words in RSA key & operands, minus one). * * Max value 127 (for RSA 4096). @@ -66,16 +67,19 @@ typedef struct esp_digital_signature_data { */ esp_digital_signature_length_t rsa_length; - /* IV value used to encrypt 'c' */ + /** + * IV value used to encrypt 'c' + */ uint8_t iv[ESP_DS_IV_LEN]; - /* Encrypted Digital Signature parameters. Result of AES-CBC encryption - of plaintext values. Includes an encrypted message digest. - */ + /** + * Encrypted Digital Signature parameters. Result of AES-CBC encryption + * of plaintext values. Includes an encrypted message digest. + */ uint8_t c[ESP_DS_C_LEN]; } esp_ds_data_t; -/* Plaintext parameters used by Digital Signature. +/** Plaintext parameters used by Digital Signature. * * Not used for signing with DS peripheral, but can be encrypted * in-device by calling esp_ds_encrypt_params() @@ -83,11 +87,11 @@ typedef struct esp_digital_signature_data { * @note This documentation is mostly taken from the ROM code. */ typedef struct { - uint32_t Y[4096/32]; - uint32_t M[4096/32]; - uint32_t Rb[4096/32]; - uint32_t M_prime; - esp_digital_signature_length_t length; + uint32_t Y[4096/32]; //!< RSA exponent + uint32_t M[4096/32]; //!< RSA modulus + uint32_t Rb[4096/32]; //!< RSA r inverse operand + uint32_t M_prime; //!< RSA M prime operand + esp_digital_signature_length_t length; //!< RSA length } esp_ds_p_data_t; /** diff --git a/tools/sdk/esp32s2/include/esp_common/include/esp_crc.h b/tools/sdk/esp32s2/include/esp_common/include/esp_crc.h index 23a04876..cc14c6ac 100644 --- a/tools/sdk/esp32s2/include/esp_common/include/esp_crc.h +++ b/tools/sdk/esp32s2/include/esp_common/include/esp_crc.h @@ -24,6 +24,10 @@ extern "C" { #include "esp32/rom/crc.h" #endif +#if defined(CONFIG_IDF_TARGET_ESP32S2) +#include "esp32s2/rom/crc.h" +#endif + /******************* Polynomials Used in the CRC APIs **************************** * CRC-8 x8+x2+x1+1 0x07 * CRC16-CCITT x16+x12+x5+1 0x1021 @@ -43,6 +47,7 @@ static inline uint32_t esp_crc32_le(uint32_t crc, uint8_t const *buf, uint32_t l return crc32_le(crc, buf, len); } +#if defined(CONFIG_IDF_TARGET_ESP32) /** * @brief CRC32 value in big endian. * @@ -55,6 +60,7 @@ static inline uint32_t esp_crc32_be(uint32_t crc, uint8_t const *buf, uint32_t l { return crc32_be(crc, buf, len); } +#endif /** * @brief CRC16 value in little endian. @@ -69,6 +75,7 @@ static inline uint16_t esp_crc16_le(uint16_t crc, uint8_t const *buf, uint32_t l return crc16_le(crc, buf, len); } +#if defined(CONFIG_IDF_TARGET_ESP32) /** * @brief CRC16 value in big endian. * @@ -81,6 +88,7 @@ static inline uint16_t esp_crc16_be(uint16_t crc, uint8_t const *buf, uint32_t l { return crc16_be(crc, buf, len); } +#endif /** * @brief CRC8 value in little endian. @@ -95,6 +103,7 @@ static inline uint8_t esp_crc8_le(uint8_t crc, uint8_t const *buf, uint32_t len) return crc8_le(crc, buf, len); } +#if defined(CONFIG_IDF_TARGET_ESP32) /** * @brief CRC8 value in big endian. * @@ -107,6 +116,7 @@ static inline uint8_t esp_crc8_be(uint8_t crc, uint8_t const *buf, uint32_t len) { return crc8_be(crc, buf, len); } +#endif #ifdef __cplusplus } diff --git a/tools/sdk/esp32s2/include/esp_eth/include/esp_eth_mac.h b/tools/sdk/esp32s2/include/esp_eth/include/esp_eth_mac.h index 47d3678f..7262bb0b 100644 --- a/tools/sdk/esp32s2/include/esp_eth/include/esp_eth_mac.h +++ b/tools/sdk/esp32s2/include/esp_eth/include/esp_eth_mac.h @@ -279,6 +279,7 @@ typedef struct { } eth_mac_config_t; #define ETH_MAC_FLAG_WORK_WITH_CACHE_DISABLE (1 << 0) /*!< MAC driver can work when cache is disabled */ +#define ETH_MAC_FLAG_PIN_TO_CORE (1 << 1) /*!< Pin MAC task to the CPU core where driver installation happened */ /** * @brief Default configuration for Ethernet MAC object diff --git a/tools/sdk/esp32s2/include/esp_http_client/include/esp_http_client.h b/tools/sdk/esp32s2/include/esp_http_client/include/esp_http_client.h index 8c2c148a..15c64dcc 100644 --- a/tools/sdk/esp32s2/include/esp_http_client/include/esp_http_client.h +++ b/tools/sdk/esp32s2/include/esp_http_client/include/esp_http_client.h @@ -525,6 +525,19 @@ int esp_http_client_read_response(esp_http_client_handle_t client, char *buffer, esp_err_t esp_http_client_get_url(esp_http_client_handle_t client, char *url, const int len); +/** + * @brief Get Chunk-Length from client + * + * @param[in] client The esp_http_client handle + * @param[out] len Variable to store length + * + * @return + * - ESP_OK If successful, len will have length of current chunk + * - ESP_FAIL If the server is not a chunked server + * - ESP_ERR_INVALID_ARG If the client or len are NULL + */ +esp_err_t esp_http_client_get_chunk_length(esp_http_client_handle_t client, int *len); + #ifdef __cplusplus } #endif diff --git a/tools/sdk/esp32s2/include/esp_common/include/esp_ipc.h b/tools/sdk/esp32s2/include/esp_ipc/include/esp_ipc.h similarity index 100% rename from tools/sdk/esp32s2/include/esp_common/include/esp_ipc.h rename to tools/sdk/esp32s2/include/esp_ipc/include/esp_ipc.h diff --git a/tools/sdk/esp32s2/include/esp_wifi/include/esp_wifi_types.h b/tools/sdk/esp32s2/include/esp_wifi/include/esp_wifi_types.h index 82e032da..cc7dc02a 100644 --- a/tools/sdk/esp32s2/include/esp_wifi/include/esp_wifi_types.h +++ b/tools/sdk/esp32s2/include/esp_wifi/include/esp_wifi_types.h @@ -94,6 +94,7 @@ typedef enum { WIFI_REASON_ASSOC_FAIL = 203, WIFI_REASON_HANDSHAKE_TIMEOUT = 204, WIFI_REASON_CONNECTION_FAIL = 205, + WIFI_REASON_AUTH_CHANGED = 206, } wifi_err_reason_t; typedef enum { diff --git a/tools/sdk/esp32s2/include/lwip/port/esp32/include/lwipopts.h b/tools/sdk/esp32s2/include/lwip/port/esp32/include/lwipopts.h index eeacbfd2..978857d6 100644 --- a/tools/sdk/esp32s2/include/lwip/port/esp32/include/lwipopts.h +++ b/tools/sdk/esp32s2/include/lwip/port/esp32/include/lwipopts.h @@ -562,6 +562,11 @@ */ #define LWIP_TCP_KEEPALIVE 1 +/** + * LWIP_SO_LINGER==1: Enable SO_LINGER processing. + */ +#define LWIP_SO_LINGER CONFIG_LWIP_SO_LINGER + /** * LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing. */ diff --git a/tools/sdk/esp32s2/include/mbedtls/port/include/mbedtls/bignum.h b/tools/sdk/esp32s2/include/mbedtls/port/include/mbedtls/bignum.h index 23cd5634..a317c456 100644 --- a/tools/sdk/esp32s2/include/mbedtls/port/include/mbedtls/bignum.h +++ b/tools/sdk/esp32s2/include/mbedtls/port/include/mbedtls/bignum.h @@ -1,4 +1,4 @@ -// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD +// Copyright 2015-2020 Espressif Systems (Shanghai) PTE LTD // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -11,10 +11,10 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -#ifndef __ESP_MBEDTLS_BIGNUM_H__ -#define __ESP_MBEDTLS_BIGNUM_H__ +#pragma once #include_next "mbedtls/bignum.h" +#include "sdkconfig.h" /** * This is a wrapper for the main mbedtls/bignum.h. This wrapper @@ -58,6 +58,8 @@ void esp_mpi_acquire_hardware(void); */ void esp_mpi_release_hardware(void); +#if CONFIG_MBEDTLS_HARDWARE_MPI + /* @brief MPI modular mupltiplication function * * Calculates Z = (X * Y) mod M using MPI hardware acceleration. @@ -75,4 +77,4 @@ void esp_mpi_release_hardware(void); */ int esp_mpi_mul_mpi_mod(mbedtls_mpi *Z, const mbedtls_mpi *X, const mbedtls_mpi *Y, const mbedtls_mpi *M); -#endif +#endif // CONFIG_MBEDTLS_HARDWARE_MPI diff --git a/tools/sdk/esp32s2/include/nvs_flash/include/nvs_flash.h b/tools/sdk/esp32s2/include/nvs_flash/include/nvs_flash.h index 5e25f35a..eb5f2f96 100644 --- a/tools/sdk/esp32s2/include/nvs_flash/include/nvs_flash.h +++ b/tools/sdk/esp32s2/include/nvs_flash/include/nvs_flash.h @@ -61,6 +61,20 @@ esp_err_t nvs_flash_init(void); */ esp_err_t nvs_flash_init_partition(const char *partition_label); +/** + * @brief Initialize NVS flash storage for the partition specified by partition pointer. + * + * @param[in] partition pointer to a partition obtained by the ESP partition API. + * + * @return + * - ESP_OK if storage was successfully initialized + * - ESP_ERR_NVS_NO_FREE_PAGES if the NVS storage contains no empty pages + * (which may happen if NVS partition was truncated) + * - ESP_ERR_INVALID_ARG in case partition is NULL + * - one of the error codes from the underlying flash storage driver + */ +esp_err_t nvs_flash_init_partition_ptr(const esp_partition_t *partition); + /** * @brief Deinitialize NVS storage for the default NVS partition * @@ -118,6 +132,26 @@ esp_err_t nvs_flash_erase(void); */ esp_err_t nvs_flash_erase_partition(const char *part_name); +/** + * @brief Erase custom partition. + * + * Erase all content of specified custom partition. + * + * @note + * If the partition is initialized, this function first de-initializes it. + * Afterwards, the partition has to be initialized again to be used. + * + * @param[in] partition pointer to a partition obtained by the ESP partition API. + * + * @return + * - ESP_OK on success + * - ESP_ERR_NOT_FOUND if there is no partition with the specified + * parameters in the partition table + * - ESP_ERR_INVALID_ARG in case partition is NULL + * - one of the error codes from the underlying flash storage driver + */ +esp_err_t nvs_flash_erase_partition_ptr(const esp_partition_t *partition); + /** * @brief Initialize the default NVS partition. * diff --git a/tools/sdk/esp32s2/include/nvs_flash/include/nvs_handle.hpp b/tools/sdk/esp32s2/include/nvs_flash/include/nvs_handle.hpp index 8699974a..d87c1c28 100644 --- a/tools/sdk/esp32s2/include/nvs_flash/include/nvs_handle.hpp +++ b/tools/sdk/esp32s2/include/nvs_flash/include/nvs_handle.hpp @@ -47,9 +47,11 @@ public: * @param[in] key Key name. Maximal length is determined by the underlying * implementation, but is guaranteed to be at least * 15 characters. Shouldn't be empty. - * @param[in] value The value to set. Allowed types are the ones declared in ItemType. + * @param[in] value The value to set. Allowed types are the ones declared in ItemType as well as enums. * For strings, the maximum length (including null character) is * 4000 bytes. + * Note that enums loose their type information when stored in NVS. Ensure that the correct + * enum type is used during retrieval with \ref get_item! * * @return * - ESP_OK if value was set successfully @@ -80,7 +82,9 @@ public: * @param[in] key Key name. Maximal length is determined by the underlying * implementation, but is guaranteed to be at least * 15 characters. Shouldn't be empty. - * @param value The output value. + * @param value The output value. All integral types which are declared in ItemType as well as enums + * are allowed. Note however that enums lost their type information when stored in NVS. + * Ensure that the correct enum type is used during retrieval with \ref get_item! * * @return * - ESP_OK if the value was retrieved successfully @@ -233,12 +237,24 @@ std::unique_ptr open_nvs_handle(const char *ns_name, esp_err_t *err = nullptr); // Helper functions for template usage +/** + * Help to translate all integral types into ItemType. + */ template::value, void*>::type = nullptr> constexpr ItemType itemTypeOf() { return static_cast(((std::is_signed::value)?0x10:0x00) | sizeof(T)); } +/** + * Help to translate all enum types into integral ItemType. + */ +template::value, int>::type = 0> +constexpr ItemType itemTypeOf() +{ + return static_cast(((std::is_signed::value)?0x10:0x00) | sizeof(T)); +} + template constexpr ItemType itemTypeOf(const T&) { diff --git a/tools/sdk/esp32s2/include/soc/include/hal/adc_hal.h b/tools/sdk/esp32s2/include/soc/include/hal/adc_hal.h index a243ad1a..621b23d1 100644 --- a/tools/sdk/esp32s2/include/soc/include/hal/adc_hal.h +++ b/tools/sdk/esp32s2/include/soc/include/hal/adc_hal.h @@ -17,13 +17,12 @@ void adc_hal_init(void); void adc_hal_deinit(void); /** - * Set adc sample cycle for digital controller. + * Set adc sample cycle. * * @note Normally, please use default value. - * @param sample_cycle Cycles between DIG ADC controller start ADC sensor and beginning to receive data from sensor. - * Range: 2 ~ 0xFF. + * @param sample_cycle The number of ADC sampling cycles. Range: 1 ~ 7. */ -#define adc_hal_digi_set_sample_cycle(sample_cycle) adc_ll_digi_set_sample_cycle(sample_cycle) +#define adc_hal_set_sample_cycle(sample_cycle) adc_ll_set_sample_cycle(sample_cycle) /** * Set ADC module power management. diff --git a/tools/sdk/esp32s2/include/soc/include/hal/adc_types.h b/tools/sdk/esp32s2/include/soc/include/hal/adc_types.h index f40836ad..1305d276 100644 --- a/tools/sdk/esp32s2/include/soc/include/hal/adc_types.h +++ b/tools/sdk/esp32s2/include/soc/include/hal/adc_types.h @@ -13,7 +13,7 @@ typedef enum { ADC_UNIT_1 = 1, /*!< SAR ADC 1. */ ADC_UNIT_2 = 2, /*!< SAR ADC 2. */ ADC_UNIT_BOTH = 3, /*!< SAR ADC 1 and 2. */ - ADC_UNIT_ALTER = 7, /*!< SAR ADC 1 and 2 alternative mode, not supported yet */ + ADC_UNIT_ALTER = 7, /*!< SAR ADC 1 and 2 alternative mode. */ ADC_UNIT_MAX, } adc_unit_t; @@ -75,29 +75,58 @@ typedef enum { ADC_WIDTH_MAX, } adc_bits_width_t; +/** + * @brief ADC digital controller (DMA mode) output data format option. + */ +typedef enum { + ADC_DIGI_FORMAT_12BIT, /*! ADC_CHANNEL_MAX), The data is invalid. */ + } type1; /*! ADC_CHANNEL_MAX), The data is invalid. */ + uint16_t unit: 1; /*! ADC_CHANNEL_MAX), The data is invalid. */ - } type1; /*! ADC_CHANNEL_MAX), The data is invalid. */ - uint16_t unit: 1; /*! (touch threshold + hysteresis), the touch channel be touched. If (raw data - baseline) < (touch threshold - hysteresis), the touch channel be released. - Range: 0 ~ 3. The coefficient is 0: 4/32; 1: 3/32; 2: 2/32; 3: OFF */ + Range: 0 ~ 3. The coefficient is 0: 4/32; 1: 3/32; 2: 1/32; 3: OFF */ uint32_t noise_thr; /*! (noise), the baseline stop updating. If (raw data - baseline) < (noise), the baseline start updating. diff --git a/tools/sdk/esp32s2/include/soc/include/hal/uart_hal.h b/tools/sdk/esp32s2/include/soc/include/hal/uart_hal.h index 59ba28d5..ceec6a34 100644 --- a/tools/sdk/esp32s2/include/soc/include/hal/uart_hal.h +++ b/tools/sdk/esp32s2/include/soc/include/hal/uart_hal.h @@ -150,6 +150,7 @@ void uart_hal_write_txfifo(uart_hal_context_t *hal, const uint8_t *buf, uint32_t /** * @brief Reset the UART txfifo + * @note On ESP32, this function is reserved for UART1 and UART2. * * @param hal Context of the HAL layer * diff --git a/tools/sdk/esp32s2/include/soc/include/soc/soc_memory_layout.h b/tools/sdk/esp32s2/include/soc/include/soc/soc_memory_layout.h index d88d356a..00f69aec 100644 --- a/tools/sdk/esp32s2/include/soc/include/soc/soc_memory_layout.h +++ b/tools/sdk/esp32s2/include/soc/include/soc/soc_memory_layout.h @@ -176,6 +176,12 @@ inline static bool IRAM_ATTR esp_ptr_byte_accessible(const void *p) intptr_t ip = (intptr_t) p; bool r; r = (ip >= SOC_BYTE_ACCESSIBLE_LOW && ip < SOC_BYTE_ACCESSIBLE_HIGH); +#if CONFIG_ESP32_ALLOW_RTC_FAST_MEM_AS_HEAP + /* For ESP32 case, RTC fast memory is accessible to PRO cpu only and hence + * for single core configuration (where it gets added to system heap) following + * additional check is required */ + r |= (ip >= SOC_RTC_DRAM_LOW && ip < SOC_RTC_DRAM_HIGH); +#endif #if CONFIG_SPIRAM #if CONFIG_SPIRAM_SIZE != -1 // Fixed size, can be more accurate r |= (ip >= SOC_EXTRAM_DATA_LOW && ip < (SOC_EXTRAM_DATA_LOW + CONFIG_SPIRAM_SIZE)); @@ -190,6 +196,12 @@ inline static bool IRAM_ATTR esp_ptr_internal(const void *p) { bool r; r = ((intptr_t)p >= SOC_MEM_INTERNAL_LOW && (intptr_t)p < SOC_MEM_INTERNAL_HIGH); r |= ((intptr_t)p >= SOC_RTC_DATA_LOW && (intptr_t)p < SOC_RTC_DATA_HIGH); +#if CONFIG_ESP32_ALLOW_RTC_FAST_MEM_AS_HEAP + /* For ESP32 case, RTC fast memory is accessible to PRO cpu only and hence + * for single core configuration (where it gets added to system heap) following + * additional check is required */ + r |= ((intptr_t)p >= SOC_RTC_DRAM_LOW && (intptr_t)p < SOC_RTC_DRAM_HIGH); +#endif return r; } diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/adc_caps.h b/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/adc_caps.h index ad732533..a29892d2 100644 --- a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/adc_caps.h +++ b/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/adc_caps.h @@ -14,7 +14,7 @@ #define SOC_ADC_FSM_RSTB_WAIT_DEFAULT (8) #define SOC_ADC_FSM_START_WAIT_DEFAULT (5) #define SOC_ADC_FSM_STANDBY_WAIT_DEFAULT (100) -#define ADC_FSM_SAMPLE_CYCLE_DEFAULT (2) +#define ADC_FSM_SAMPLE_CYCLE_DEFAULT (3) /** * Check if adc support digital controller (DMA) mode. diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/i2s_struct.h b/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/i2s_struct.h index 7b2ea7a7..23621505 100644 --- a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/i2s_struct.h +++ b/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/i2s_struct.h @@ -1,9 +1,9 @@ -// Copyright 2017-2018 Espressif Systems (Shanghai) PTE LTD +// Copyright 2015-2020 Espressif Systems (Shanghai) PTE LTD // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at -// + // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software @@ -22,33 +22,33 @@ typedef volatile struct { uint32_t reserved_4; union { struct { - uint32_t tx_reset: 1; /*Set this bit to reset transmitter*/ - uint32_t rx_reset: 1; /*Set this bit to reset receiver*/ - uint32_t tx_fifo_reset: 1; /*Set this bit to reset txFIFO*/ - uint32_t rx_fifo_reset: 1; /*Set this bit to reset rxFIFO*/ - uint32_t tx_start: 1; /*Set this bit to start transmitting data*/ - uint32_t rx_start: 1; /*Set this bit to start receiving data*/ - uint32_t tx_slave_mod: 1; /*Set this bit to enable slave transmitter mode*/ - uint32_t rx_slave_mod: 1; /*Set this bit to enable slave receiver mode*/ - uint32_t tx_right_first: 1; /*Set this bit to transmit right channel data first*/ - uint32_t rx_right_first: 1; /*Set this bit to receive right channel data first*/ - uint32_t tx_msb_shift: 1; /*Set this bit to enable transmitter in Phillips standard mode*/ - uint32_t rx_msb_shift: 1; /*Set this bit to enable receiver in Phillips standard mode*/ - uint32_t tx_short_sync: 1; /*Set this bit to enable transmitter in PCM standard mode*/ - uint32_t rx_short_sync: 1; /*Set this bit to enable receiver in PCM standard mode*/ - uint32_t tx_mono: 1; /*Set this bit to enable transmitter in mono mode*/ - uint32_t rx_mono: 1; /*Set this bit to enable receiver in mono mode*/ - uint32_t tx_msb_right: 1; /*Set this bit to place right channel data at the MSB in the transmit FIFO.*/ - uint32_t rx_msb_right: 1; /*Set this bit to place right channel data at the MSB in the receive FIFO.*/ - uint32_t tx_lsb_first_dma: 1; /*1:the data in DMA/APB transform from low bits*/ - uint32_t rx_lsb_first_dma: 1; /*1:the data in DMA/APB transform from low bits*/ - uint32_t sig_loopback: 1; /*Enable signal loopback mode with transmitter module and receiver module sharing the same WS and BCK signals.*/ - uint32_t tx_fifo_reset_st: 1; /*1:i2s_tx_fifo reset is not ok 0:i2s_tx_fifo_reset is ok*/ - uint32_t rx_fifo_reset_st: 1; /*1:i2s_rx_fifo_reset is not ok 0:i2s_rx_fifo reset is ok*/ - uint32_t tx_reset_st: 1; /*1: i2s_tx_reset is not ok 0: i2s_tx_reset is ok*/ - uint32_t tx_dma_equal: 1; /*1:data in left channel is equal to data in right channel*/ - uint32_t rx_dma_equal: 1; /*1:data in left channel is equal to data in right channel*/ - uint32_t pre_req_en: 1; /*set this bit to enable i2s to prepare data earlier*/ + uint32_t tx_reset: 1; /*Set this bit to reset transmitter*/ + uint32_t rx_reset: 1; /*Set this bit to reset receiver*/ + uint32_t tx_fifo_reset: 1; /*Set this bit to reset txFIFO*/ + uint32_t rx_fifo_reset: 1; /*Set this bit to reset rxFIFO*/ + uint32_t tx_start: 1; /*Set this bit to start transmitting data*/ + uint32_t rx_start: 1; /*Set this bit to start receiving data*/ + uint32_t tx_slave_mod: 1; /*Set this bit to enable slave transmitter mode*/ + uint32_t rx_slave_mod: 1; /*Set this bit to enable slave receiver mode*/ + uint32_t tx_right_first: 1; /*Set this bit to transmit right channel data first*/ + uint32_t rx_right_first: 1; /*Set this bit to receive right channel data first*/ + uint32_t tx_msb_shift: 1; /*Set this bit to enable transmitter in Phillips standard mode*/ + uint32_t rx_msb_shift: 1; /*Set this bit to enable receiver in Phillips standard mode*/ + uint32_t tx_short_sync: 1; /*Set this bit to enable transmitter in PCM standard mode*/ + uint32_t rx_short_sync: 1; /*Set this bit to enable receiver in PCM standard mode*/ + uint32_t tx_mono: 1; /*Set this bit to enable transmitter in mono mode*/ + uint32_t rx_mono: 1; /*Set this bit to enable receiver in mono mode*/ + uint32_t tx_msb_right: 1; /*Set this bit to place right channel data at the MSB in the transmit FIFO.*/ + uint32_t rx_msb_right: 1; /*Set this bit to place right channel data at the MSB in the receive FIFO.*/ + uint32_t tx_lsb_first_dma: 1; /*1:the data in DMA/APB transform from low bits*/ + uint32_t rx_lsb_first_dma: 1; /*1:the data in DMA/APB transform from low bits*/ + uint32_t sig_loopback: 1; /*Enable signal loopback mode with transmitter module and receiver module sharing the same WS and BCK signals.*/ + uint32_t tx_fifo_reset_st: 1; /*1:i2s_tx_fifo reset is not ok 0:i2s_tx_fifo_reset is ok*/ + uint32_t rx_fifo_reset_st: 1; /*1:i2s_rx_fifo_reset is not ok 0:i2s_rx_fifo reset is ok*/ + uint32_t tx_reset_st: 1; /*1: i2s_tx_reset is not ok 0: i2s_tx_reset is ok*/ + uint32_t tx_dma_equal: 1; /*1:data in left channel is equal to data in right channel*/ + uint32_t rx_dma_equal: 1; /*1:data in left channel is equal to data in right channel*/ + uint32_t pre_req_en: 1; /*set this bit to enable i2s to prepare data earlier*/ uint32_t tx_big_endian: 1; uint32_t rx_big_endian: 1; uint32_t rx_reset_st: 1; @@ -58,167 +58,171 @@ typedef volatile struct { } conf; union { struct { - uint32_t rx_take_data: 1; /*The raw interrupt status bit for the i2s_rx_take_data_int interrupt*/ - uint32_t tx_put_data: 1; /*The raw interrupt status bit for the i2s_tx_put_data_int interrupt*/ - uint32_t rx_wfull: 1; /*The raw interrupt status bit for the i2s_rx_wfull_int interrupt*/ - uint32_t rx_rempty: 1; /*The raw interrupt status bit for the i2s_rx_rempty_int interrupt*/ - uint32_t tx_wfull: 1; /*The raw interrupt status bit for the i2s_tx_wfull_int interrupt*/ - uint32_t tx_rempty: 1; /*The raw interrupt status bit for the i2s_tx_rempty_int interrupt*/ - uint32_t rx_hung: 1; /*The raw interrupt status bit for the i2s_rx_hung_int interrupt*/ - uint32_t tx_hung: 1; /*The raw interrupt status bit for the i2s_tx_hung_int interrupt*/ - uint32_t in_done: 1; /*The raw interrupt status bit for the i2s_in_done_int interrupt*/ - uint32_t in_suc_eof: 1; /*The raw interrupt status bit for the i2s_in_suc_eof_int interrupt*/ - uint32_t in_err_eof: 1; /*don't use*/ - uint32_t out_done: 1; /*The raw interrupt status bit for the i2s_out_done_int interrupt*/ - uint32_t out_eof: 1; /*The raw interrupt status bit for the i2s_out_eof_int interrupt*/ - uint32_t in_dscr_err: 1; /*The raw interrupt status bit for the i2s_in_dscr_err_int interrupt*/ - uint32_t out_dscr_err: 1; /*The raw interrupt status bit for the i2s_out_dscr_err_int interrupt*/ - uint32_t in_dscr_empty: 1; /*The raw interrupt status bit for the i2s_in_dscr_empty_int interrupt*/ - uint32_t out_total_eof: 1; /*The raw interrupt status bit for the i2s_out_total_eof_int interrupt*/ - uint32_t reserved17: 15; + uint32_t rx_take_data: 1; /*The raw interrupt status bit for the i2s_rx_take_data_int interrupt*/ + uint32_t tx_put_data: 1; /*The raw interrupt status bit for the i2s_tx_put_data_int interrupt*/ + uint32_t rx_wfull: 1; /*The raw interrupt status bit for the i2s_rx_wfull_int interrupt*/ + uint32_t rx_rempty: 1; /*The raw interrupt status bit for the i2s_rx_rempty_int interrupt*/ + uint32_t tx_wfull: 1; /*The raw interrupt status bit for the i2s_tx_wfull_int interrupt*/ + uint32_t tx_rempty: 1; /*The raw interrupt status bit for the i2s_tx_rempty_int interrupt*/ + uint32_t rx_hung: 1; /*The raw interrupt status bit for the i2s_rx_hung_int interrupt*/ + uint32_t tx_hung: 1; /*The raw interrupt status bit for the i2s_tx_hung_int interrupt*/ + uint32_t in_done: 1; /*The raw interrupt status bit for the i2s_in_done_int interrupt*/ + uint32_t in_suc_eof: 1; /*The raw interrupt status bit for the i2s_in_suc_eof_int interrupt*/ + uint32_t in_err_eof: 1; /*don't use*/ + uint32_t out_done: 1; /*The raw interrupt status bit for the i2s_out_done_int interrupt*/ + uint32_t out_eof: 1; /*The raw interrupt status bit for the i2s_out_eof_int interrupt*/ + uint32_t in_dscr_err: 1; /*The raw interrupt status bit for the i2s_in_dscr_err_int interrupt*/ + uint32_t out_dscr_err: 1; /*The raw interrupt status bit for the i2s_out_dscr_err_int interrupt*/ + uint32_t in_dscr_empty: 1; /*The raw interrupt status bit for the i2s_in_dscr_empty_int interrupt*/ + uint32_t out_total_eof: 1; /*The raw interrupt status bit for the i2s_out_total_eof_int interrupt*/ + uint32_t v_sync: 1; /*The raw interrupt status bit for the i2s_v_sync_int interrupt*/ + uint32_t reserved18: 14; }; uint32_t val; } int_raw; union { struct { - uint32_t rx_take_data: 1; /*The masked interrupt status bit for the i2s_rx_take_data_int interrupt*/ - uint32_t tx_put_data: 1; /*The masked interrupt status bit for the i2s_tx_put_data_int interrupt*/ - uint32_t rx_wfull: 1; /*The masked interrupt status bit for the i2s_rx_wfull_int interrupt*/ - uint32_t rx_rempty: 1; /*The masked interrupt status bit for the i2s_rx_rempty_int interrupt*/ - uint32_t tx_wfull: 1; /*The masked interrupt status bit for the i2s_tx_wfull_int interrupt*/ - uint32_t tx_rempty: 1; /*The masked interrupt status bit for the i2s_tx_rempty_int interrupt*/ - uint32_t rx_hung: 1; /*The masked interrupt status bit for the i2s_rx_hung_int interrupt*/ - uint32_t tx_hung: 1; /*The masked interrupt status bit for the i2s_tx_hung_int interrupt*/ - uint32_t in_done: 1; /*The masked interrupt status bit for the i2s_in_done_int interrupt*/ - uint32_t in_suc_eof: 1; /*The masked interrupt status bit for the i2s_in_suc_eof_int interrupt*/ - uint32_t in_err_eof: 1; /*don't use*/ - uint32_t out_done: 1; /*The masked interrupt status bit for the i2s_out_done_int interrupt*/ - uint32_t out_eof: 1; /*The masked interrupt status bit for the i2s_out_eof_int interrupt*/ - uint32_t in_dscr_err: 1; /*The masked interrupt status bit for the i2s_in_dscr_err_int interrupt*/ - uint32_t out_dscr_err: 1; /*The masked interrupt status bit for the i2s_out_dscr_err_int interrupt*/ - uint32_t in_dscr_empty: 1; /*The masked interrupt status bit for the i2s_in_dscr_empty_int interrupt*/ - uint32_t out_total_eof: 1; /*The masked interrupt status bit for the i2s_out_total_eof_int interrupt*/ - uint32_t reserved17: 15; + uint32_t rx_take_data: 1; /*The masked interrupt status bit for the i2s_rx_take_data_int interrupt*/ + uint32_t tx_put_data: 1; /*The masked interrupt status bit for the i2s_tx_put_data_int interrupt*/ + uint32_t rx_wfull: 1; /*The masked interrupt status bit for the i2s_rx_wfull_int interrupt*/ + uint32_t rx_rempty: 1; /*The masked interrupt status bit for the i2s_rx_rempty_int interrupt*/ + uint32_t tx_wfull: 1; /*The masked interrupt status bit for the i2s_tx_wfull_int interrupt*/ + uint32_t tx_rempty: 1; /*The masked interrupt status bit for the i2s_tx_rempty_int interrupt*/ + uint32_t rx_hung: 1; /*The masked interrupt status bit for the i2s_rx_hung_int interrupt*/ + uint32_t tx_hung: 1; /*The masked interrupt status bit for the i2s_tx_hung_int interrupt*/ + uint32_t in_done: 1; /*The masked interrupt status bit for the i2s_in_done_int interrupt*/ + uint32_t in_suc_eof: 1; /*The masked interrupt status bit for the i2s_in_suc_eof_int interrupt*/ + uint32_t in_err_eof: 1; /*don't use*/ + uint32_t out_done: 1; /*The masked interrupt status bit for the i2s_out_done_int interrupt*/ + uint32_t out_eof: 1; /*The masked interrupt status bit for the i2s_out_eof_int interrupt*/ + uint32_t in_dscr_err: 1; /*The masked interrupt status bit for the i2s_in_dscr_err_int interrupt*/ + uint32_t out_dscr_err: 1; /*The masked interrupt status bit for the i2s_out_dscr_err_int interrupt*/ + uint32_t in_dscr_empty: 1; /*The masked interrupt status bit for the i2s_in_dscr_empty_int interrupt*/ + uint32_t out_total_eof: 1; /*The masked interrupt status bit for the i2s_out_total_eof_int interrupt*/ + uint32_t v_sync: 1; /*The masked interrupt status bit for the i2s_v_sync_int interrupt*/ + uint32_t reserved18: 14; }; uint32_t val; } int_st; union { struct { - uint32_t rx_take_data: 1; /*The interrupt enable bit for the i2s_rx_take_data_int interrupt*/ - uint32_t tx_put_data: 1; /*The interrupt enable bit for the i2s_tx_put_data_int interrupt*/ - uint32_t rx_wfull: 1; /*The interrupt enable bit for the i2s_rx_wfull_int interrupt*/ - uint32_t rx_rempty: 1; /*The interrupt enable bit for the i2s_rx_rempty_int interrupt*/ - uint32_t tx_wfull: 1; /*The interrupt enable bit for the i2s_tx_wfull_int interrupt*/ - uint32_t tx_rempty: 1; /*The interrupt enable bit for the i2s_tx_rempty_int interrupt*/ - uint32_t rx_hung: 1; /*The interrupt enable bit for the i2s_rx_hung_int interrupt*/ - uint32_t tx_hung: 1; /*The interrupt enable bit for the i2s_tx_hung_int interrupt*/ - uint32_t in_done: 1; /*The interrupt enable bit for the i2s_in_done_int interrupt*/ - uint32_t in_suc_eof: 1; /*The interrupt enable bit for the i2s_in_suc_eof_int interrupt*/ - uint32_t in_err_eof: 1; /*don't use*/ - uint32_t out_done: 1; /*The interrupt enable bit for the i2s_out_done_int interrupt*/ - uint32_t out_eof: 1; /*The interrupt enable bit for the i2s_out_eof_int interrupt*/ - uint32_t in_dscr_err: 1; /*The interrupt enable bit for the i2s_in_dscr_err_int interrupt*/ - uint32_t out_dscr_err: 1; /*The interrupt enable bit for the i2s_out_dscr_err_int interrupt*/ - uint32_t in_dscr_empty: 1; /*The interrupt enable bit for the i2s_in_dscr_empty_int interrupt*/ - uint32_t out_total_eof: 1; /*The interrupt enable bit for the i2s_out_total_eof_int interrupt*/ - uint32_t reserved17: 15; + uint32_t rx_take_data: 1; /*The interrupt enable bit for the i2s_rx_take_data_int interrupt*/ + uint32_t tx_put_data: 1; /*The interrupt enable bit for the i2s_tx_put_data_int interrupt*/ + uint32_t rx_wfull: 1; /*The interrupt enable bit for the i2s_rx_wfull_int interrupt*/ + uint32_t rx_rempty: 1; /*The interrupt enable bit for the i2s_rx_rempty_int interrupt*/ + uint32_t tx_wfull: 1; /*The interrupt enable bit for the i2s_tx_wfull_int interrupt*/ + uint32_t tx_rempty: 1; /*The interrupt enable bit for the i2s_tx_rempty_int interrupt*/ + uint32_t rx_hung: 1; /*The interrupt enable bit for the i2s_rx_hung_int interrupt*/ + uint32_t tx_hung: 1; /*The interrupt enable bit for the i2s_tx_hung_int interrupt*/ + uint32_t in_done: 1; /*The interrupt enable bit for the i2s_in_done_int interrupt*/ + uint32_t in_suc_eof: 1; /*The interrupt enable bit for the i2s_in_suc_eof_int interrupt*/ + uint32_t in_err_eof: 1; /*don't use*/ + uint32_t out_done: 1; /*The interrupt enable bit for the i2s_out_done_int interrupt*/ + uint32_t out_eof: 1; /*The interrupt enable bit for the i2s_out_eof_int interrupt*/ + uint32_t in_dscr_err: 1; /*The interrupt enable bit for the i2s_in_dscr_err_int interrupt*/ + uint32_t out_dscr_err: 1; /*The interrupt enable bit for the i2s_out_dscr_err_int interrupt*/ + uint32_t in_dscr_empty: 1; /*The interrupt enable bit for the i2s_in_dscr_empty_int interrupt*/ + uint32_t out_total_eof: 1; /*The interrupt enable bit for the i2s_out_total_eof_int interrupt*/ + uint32_t v_sync: 1; /*The interrupt enable bit for the i2s_v_sync_int interrupt*/ + uint32_t reserved18: 14; }; uint32_t val; } int_ena; union { struct { - uint32_t take_data: 1; /*Set this bit to clear the i2s_rx_take_data_int interrupt*/ - uint32_t put_data: 1; /*Set this bit to clear the i2s_tx_put_data_int interrupt*/ - uint32_t rx_wfull: 1; /*Set this bit to clear the i2s_rx_wfull_int interrupt*/ - uint32_t rx_rempty: 1; /*Set this bit to clear the i2s_rx_rempty_int interrupt*/ - uint32_t tx_wfull: 1; /*Set this bit to clear the i2s_tx_wfull_int interrupt*/ - uint32_t tx_rempty: 1; /*Set this bit to clear the i2s_tx_rempty_int interrupt*/ - uint32_t rx_hung: 1; /*Set this bit to clear the i2s_rx_hung_int interrupt*/ - uint32_t tx_hung: 1; /*Set this bit to clear the i2s_tx_hung_int interrupt*/ - uint32_t in_done: 1; /*Set this bit to clear the i2s_in_done_int interrupt*/ - uint32_t in_suc_eof: 1; /*Set this bit to clear the i2s_in_suc_eof_int interrupt*/ - uint32_t in_err_eof: 1; /*don't use*/ - uint32_t out_done: 1; /*Set this bit to clear the i2s_out_done_int interrupt*/ - uint32_t out_eof: 1; /*Set this bit to clear the i2s_out_eof_int interrupt*/ - uint32_t in_dscr_err: 1; /*Set this bit to clear the i2s_in_dscr_err_int interrupt*/ - uint32_t out_dscr_err: 1; /*Set this bit to clear the i2s_out_dscr_err_int interrupt*/ - uint32_t in_dscr_empty: 1; /*Set this bit to clear the i2s_in_dscr_empty_int interrupt*/ - uint32_t out_total_eof: 1; /*Set this bit to clear the i2s_out_total_eof_int interrupt*/ - uint32_t reserved17: 15; + uint32_t take_data: 1; /*Set this bit to clear the i2s_rx_take_data_int interrupt*/ + uint32_t put_data: 1; /*Set this bit to clear the i2s_tx_put_data_int interrupt*/ + uint32_t rx_wfull: 1; /*Set this bit to clear the i2s_rx_wfull_int interrupt*/ + uint32_t rx_rempty: 1; /*Set this bit to clear the i2s_rx_rempty_int interrupt*/ + uint32_t tx_wfull: 1; /*Set this bit to clear the i2s_tx_wfull_int interrupt*/ + uint32_t tx_rempty: 1; /*Set this bit to clear the i2s_tx_rempty_int interrupt*/ + uint32_t rx_hung: 1; /*Set this bit to clear the i2s_rx_hung_int interrupt*/ + uint32_t tx_hung: 1; /*Set this bit to clear the i2s_tx_hung_int interrupt*/ + uint32_t in_done: 1; /*Set this bit to clear the i2s_in_done_int interrupt*/ + uint32_t in_suc_eof: 1; /*Set this bit to clear the i2s_in_suc_eof_int interrupt*/ + uint32_t in_err_eof: 1; /*don't use*/ + uint32_t out_done: 1; /*Set this bit to clear the i2s_out_done_int interrupt*/ + uint32_t out_eof: 1; /*Set this bit to clear the i2s_out_eof_int interrupt*/ + uint32_t in_dscr_err: 1; /*Set this bit to clear the i2s_in_dscr_err_int interrupt*/ + uint32_t out_dscr_err: 1; /*Set this bit to clear the i2s_out_dscr_err_int interrupt*/ + uint32_t in_dscr_empty: 1; /*Set this bit to clear the i2s_in_dscr_empty_int interrupt*/ + uint32_t out_total_eof: 1; /*Set this bit to clear the i2s_out_total_eof_int interrupt*/ + uint32_t v_sync: 1; /*Set this bit to clear the i2s_v_sync_int interrupt*/ + uint32_t reserved18: 14; }; uint32_t val; } int_clr; union { struct { - uint32_t tx_bck_in_delay: 2; /*Number of delay cycles for BCK into the transmitter*/ - uint32_t tx_ws_in_delay: 2; /*Number of delay cycles for WS into the transmitter*/ - uint32_t rx_bck_in_delay: 2; /*Number of delay cycles for BCK into the receiver*/ - uint32_t rx_ws_in_delay: 2; /*Number of delay cycles for WS into the receiver*/ - uint32_t rx_sd_in_delay: 2; /*Number of delay cycles for SD into the receiver*/ - uint32_t tx_bck_out_delay: 2; /*Number of delay cycles for BCK out of the transmitter*/ - uint32_t tx_ws_out_delay: 2; /*Number of delay cycles for WS out of the transmitter*/ - uint32_t tx_sd_out_delay: 2; /*Number of delay cycles for SD out of the transmitter*/ - uint32_t rx_ws_out_delay: 2; /*Number of delay cycles for WS out of the receiver*/ - uint32_t rx_bck_out_delay: 2; /*Number of delay cycles for BCK out of the receiver*/ - uint32_t tx_dsync_sw: 1; /*Set this bit to synchronize signals with the double sync method into the transmitter*/ - uint32_t rx_dsync_sw: 1; /*Set this bit to synchronize signals with the double sync method into the receiver*/ - uint32_t data_enable_delay: 2; /*Number of delay cycles for data valid flag.*/ - uint32_t tx_bck_in_inv: 1; /*Set this bit to invert BCK signal input to the slave transmitter*/ + uint32_t tx_bck_in_delay: 2; /*Number of delay cycles for BCK into the transmitter*/ + uint32_t tx_ws_in_delay: 2; /*Number of delay cycles for WS into the transmitter*/ + uint32_t rx_bck_in_delay: 2; /*Number of delay cycles for BCK into the receiver*/ + uint32_t rx_ws_in_delay: 2; /*Number of delay cycles for WS into the receiver*/ + uint32_t rx_sd_in_delay: 2; /*Number of delay cycles for SD into the receiver*/ + uint32_t tx_bck_out_delay: 2; /*Number of delay cycles for BCK out of the transmitter*/ + uint32_t tx_ws_out_delay: 2; /*Number of delay cycles for WS out of the transmitter*/ + uint32_t tx_sd_out_delay: 2; /*Number of delay cycles for SD out of the transmitter*/ + uint32_t rx_ws_out_delay: 2; /*Number of delay cycles for WS out of the receiver*/ + uint32_t rx_bck_out_delay: 2; /*Number of delay cycles for BCK out of the receiver*/ + uint32_t tx_dsync_sw: 1; /*Set this bit to synchronize signals with the double sync method into the transmitter*/ + uint32_t rx_dsync_sw: 1; /*Set this bit to synchronize signals with the double sync method into the receiver*/ + uint32_t data_enable_delay: 2; /*Number of delay cycles for data valid flag.*/ + uint32_t tx_bck_in_inv: 1; /*Set this bit to invert BCK signal input to the slave transmitter*/ uint32_t reserved25: 7; }; uint32_t val; } timing; union { struct { - uint32_t rx_data_num: 6; /*Threshold of data length in receiver FIFO*/ - uint32_t tx_data_num: 6; /*Threshold of data length in transmitter FIFO*/ - uint32_t dscr_en: 1; /*Set this bit to enable I2S DMA mode*/ - uint32_t tx_fifo_mod: 3; /*Transmitter FIFO mode configuration bits*/ - uint32_t rx_fifo_mod: 3; /*Receiver FIFO mode configuration bits*/ - uint32_t tx_fifo_mod_force_en: 1; /*The bit should always be set to 1*/ - uint32_t rx_fifo_mod_force_en: 1; /*The bit should always be set to 1*/ - uint32_t rx_fifo_sync: 1; /*force write back rx data to memory*/ - uint32_t rx_24msb_en: 1; /*Only useful in rx 24bit mode. 1: the high 24 bits are effective in i2s fifo 0: the low 24 bits are effective in i2s fifo*/ - uint32_t tx_24msb_en: 1; /*Only useful in tx 24bit mode. 1: the high 24 bits are effective in i2s fifo 0: the low 24 bits are effective in i2s fifo*/ + uint32_t rx_data_num: 6; /*Threshold of data length in receiver FIFO*/ + uint32_t tx_data_num: 6; /*Threshold of data length in transmitter FIFO*/ + uint32_t dscr_en: 1; /*Set this bit to enable I2S DMA mode*/ + uint32_t tx_fifo_mod: 3; /*Transmitter FIFO mode configuration bits*/ + uint32_t rx_fifo_mod: 3; /*Receiver FIFO mode configuration bits*/ + uint32_t tx_fifo_mod_force_en: 1; /*The bit should always be set to 1*/ + uint32_t rx_fifo_mod_force_en: 1; /*The bit should always be set to 1*/ + uint32_t rx_fifo_sync: 1; /*force write back rx data to memory*/ + uint32_t rx_24msb_en: 1; /*Only useful in rx 24bit mode. 1: the high 24 bits are effective in i2s fifo 0: the low 24 bits are effective in i2s fifo*/ + uint32_t tx_24msb_en: 1; /*Only useful in tx 24bit mode. 1: the high 24 bits are effective in i2s fifo 0: the low 24 bits are effective in i2s fifo*/ uint32_t reserved24: 8; }; uint32_t val; } fifo_conf; - uint32_t rx_eof_num; /*the length of data to be received. It will trigger i2s_in_suc_eof_int.*/ - uint32_t conf_single_data; /*the right channel or left channel put out constant value stored in this register according to tx_chan_mod and reg_tx_msb_right*/ + uint32_t rx_eof_num; /*the length of data to be received. It will trigger i2s_in_suc_eof_int.*/ + uint32_t conf_single_data; /*the right channel or left channel put out constant value stored in this register according to tx_chan_mod and reg_tx_msb_right*/ union { struct { - uint32_t tx_chan_mod: 3; /*I2S transmitter channel mode configuration bits.*/ - uint32_t rx_chan_mod: 2; /*I2S receiver channel mode configuration bits.*/ + uint32_t tx_chan_mod: 3; /*I2S transmitter channel mode configuration bits.*/ + uint32_t rx_chan_mod: 2; /*I2S receiver channel mode configuration bits.*/ uint32_t reserved5: 27; }; uint32_t val; } conf_chan; union { struct { - uint32_t addr: 20; /*The address of first outlink descriptor*/ + uint32_t addr: 20; /*The address of first outlink descriptor*/ uint32_t reserved20: 8; - uint32_t stop: 1; /*Set this bit to stop outlink descriptor*/ - uint32_t start: 1; /*Set this bit to start outlink descriptor*/ - uint32_t restart: 1; /*Set this bit to restart outlink descriptor*/ + uint32_t stop: 1; /*Set this bit to stop outlink descriptor*/ + uint32_t start: 1; /*Set this bit to start outlink descriptor*/ + uint32_t restart: 1; /*Set this bit to restart outlink descriptor*/ uint32_t park: 1; }; uint32_t val; } out_link; union { struct { - uint32_t addr: 20; /*The address of first inlink descriptor*/ + uint32_t addr: 20; /*The address of first inlink descriptor*/ uint32_t reserved20: 8; - uint32_t stop: 1; /*Set this bit to stop inlink descriptor*/ - uint32_t start: 1; /*Set this bit to start inlink descriptor*/ - uint32_t restart: 1; /*Set this bit to restart inlink descriptor*/ + uint32_t stop: 1; /*Set this bit to stop inlink descriptor*/ + uint32_t start: 1; /*Set this bit to start inlink descriptor*/ + uint32_t restart: 1; /*Set this bit to restart inlink descriptor*/ uint32_t park: 1; }; uint32_t val; } in_link; - uint32_t out_eof_des_addr; /*The address of outlink descriptor that produces EOF*/ - uint32_t in_eof_des_addr; /*The address of inlink descriptor that produces EOF*/ - uint32_t out_eof_bfr_des_addr; /*The address of buffer relative to the outlink descriptor that produces EOF*/ + uint32_t out_eof_des_addr; /*The address of outlink descriptor that produces EOF*/ + uint32_t in_eof_des_addr; /*The address of inlink descriptor that produces EOF*/ + uint32_t out_eof_bfr_des_addr; /*The address of buffer relative to the outlink descriptor that produces EOF*/ union { struct { uint32_t mode: 3; @@ -228,29 +232,29 @@ typedef volatile struct { }; uint32_t val; } ahb_test; - uint32_t in_link_dscr; /*The address of current inlink descriptor*/ - uint32_t in_link_dscr_bf0; /*The address of next inlink descriptor*/ - uint32_t in_link_dscr_bf1; /*The address of next inlink data buffer*/ - uint32_t out_link_dscr; /*The address of current outlink descriptor*/ - uint32_t out_link_dscr_bf0; /*The address of next outlink descriptor*/ - uint32_t out_link_dscr_bf1; /*The address of next outlink data buffer*/ + uint32_t in_link_dscr; /*The address of current inlink descriptor*/ + uint32_t in_link_dscr_bf0; /*The address of next inlink descriptor*/ + uint32_t in_link_dscr_bf1; /*The address of next inlink data buffer*/ + uint32_t out_link_dscr; /*The address of current outlink descriptor*/ + uint32_t out_link_dscr_bf0; /*The address of next outlink descriptor*/ + uint32_t out_link_dscr_bf1; /*The address of next outlink data buffer*/ union { struct { - uint32_t in_rst: 1; /*Set this bit to reset in dma FSM*/ - uint32_t out_rst: 1; /*Set this bit to reset out dma FSM*/ - uint32_t ahbm_fifo_rst: 1; /*Set this bit to reset ahb interface cmdFIFO of DMA*/ - uint32_t ahbm_rst: 1; /*Set this bit to reset ahb interface of DMA*/ - uint32_t out_loop_test: 1; /*Set this bit to loop test inlink*/ - uint32_t in_loop_test: 1; /*Set this bit to loop test outlink*/ - uint32_t out_auto_wrback: 1; /*Set this bit to enable outlink-written-back automatically when out buffer is transmitted done.*/ - uint32_t out_no_restart_clr: 1; /*don't use*/ - uint32_t out_eof_mode: 1; /*DMA out EOF flag generation mode . 1: when dma has popped all data from the FIFO 0:when ahb has pushed all data to the FIFO*/ - uint32_t outdscr_burst_en: 1; /*DMA outlink descriptor transfer mode configuration bit. 1: to prepare outlink descriptor with burst mode 0: to prepare outlink descriptor with byte mode*/ - uint32_t indscr_burst_en: 1; /*DMA inlink descriptor transfer mode configuration bit. 1: to prepare inlink descriptor with burst mode 0: to prepare inlink descriptor with byte mode*/ - uint32_t out_data_burst_en: 1; /*Transmitter data transfer mode configuration bit. 1: to prepare out data with burst mode 0: to prepare out data with byte mode*/ - uint32_t check_owner: 1; /*Set this bit to enable check owner bit by hardware*/ - uint32_t mem_trans_en: 1; /*don't use*/ - uint32_t ext_mem_bk_size: 2; /*DMA access external memory block size. 0: 16 bytes 1: 32 bytes 2:64 bytes 3:reserved*/ + uint32_t in_rst: 1; /*Set this bit to reset in dma FSM*/ + uint32_t out_rst: 1; /*Set this bit to reset out dma FSM*/ + uint32_t ahbm_fifo_rst: 1; /*Set this bit to reset ahb interface cmdFIFO of DMA*/ + uint32_t ahbm_rst: 1; /*Set this bit to reset ahb interface of DMA*/ + uint32_t out_loop_test: 1; /*Set this bit to loop test inlink*/ + uint32_t in_loop_test: 1; /*Set this bit to loop test outlink*/ + uint32_t out_auto_wrback: 1; /*Set this bit to enable outlink-written-back automatically when out buffer is transmitted done.*/ + uint32_t out_no_restart_clr: 1; /*don't use*/ + uint32_t out_eof_mode: 1; /*DMA out EOF flag generation mode . 1: when dma has popped all data from the FIFO 0:when ahb has pushed all data to the FIFO*/ + uint32_t outdscr_burst_en: 1; /*DMA outlink descriptor transfer mode configuration bit. 1: to prepare outlink descriptor with burst mode 0: to prepare outlink descriptor with byte mode*/ + uint32_t indscr_burst_en: 1; /*DMA inlink descriptor transfer mode configuration bit. 1: to prepare inlink descriptor with burst mode 0: to prepare inlink descriptor with byte mode*/ + uint32_t out_data_burst_en: 1; /*Transmitter data transfer mode configuration bit. 1: to prepare out data with burst mode 0: to prepare out data with byte mode*/ + uint32_t check_owner: 1; /*Set this bit to enable check owner bit by hardware*/ + uint32_t mem_trans_en: 1; /*don't use*/ + uint32_t ext_mem_bk_size: 2; /*DMA access external memory block size. 0: 16 bytes 1: 32 bytes 2:64 bytes 3:reserved*/ uint32_t reserved16: 16; }; uint32_t val; @@ -280,7 +284,7 @@ typedef volatile struct { uint32_t out_state: 3; uint32_t cnt: 7; uint32_t out_full: 1; - uint32_t out_empty: 1; /*DMA transmitter status register*/ + uint32_t out_empty: 1; /*DMA transmitter status register*/ }; uint32_t val; } lc_state0; @@ -291,134 +295,66 @@ typedef volatile struct { uint32_t in_state: 3; uint32_t cnt_debug: 7; uint32_t in_full: 1; - uint32_t in_empty: 1; /*DMA receiver status register*/ + uint32_t in_empty: 1; /*DMA receiver status register*/ }; uint32_t val; } lc_state1; union { struct { - uint32_t fifo_timeout: 8; /*the i2s_tx_hung_int interrupt or the i2s_rx_hung_int interrupt will be triggered when fifo hung counter is equal to this value*/ - uint32_t fifo_timeout_shift: 3; /*The bits are used to scale tick counter threshold. The tick counter is reset when counter value >= 88000/2^i2s_lc_fifo_timeout_shift*/ - uint32_t fifo_timeout_ena: 1; /*The enable bit for FIFO timeout*/ + uint32_t fifo_timeout: 8; /*the i2s_tx_hung_int interrupt or the i2s_rx_hung_int interrupt will be triggered when fifo hung counter is equal to this value*/ + uint32_t fifo_timeout_shift: 3; /*The bits are used to scale tick counter threshold. The tick counter is reset when counter value >= 88000/2^i2s_lc_fifo_timeout_shift*/ + uint32_t fifo_timeout_ena: 1; /*The enable bit for FIFO timeout*/ uint32_t reserved12: 20; }; uint32_t val; } lc_hung_conf; uint32_t reserved_78; uint32_t reserved_7c; + uint32_t reserved_80; + uint32_t reserved_84; + uint32_t reserved_88; + uint32_t reserved_8c; + uint32_t reserved_90; + uint32_t reserved_94; + uint32_t reserved_98; + uint32_t reserved_9c; union { struct { - uint32_t y_max: 16; /*don't use*/ - uint32_t y_min: 16; /*don't use*/ - }; - uint32_t val; - } cvsd_conf0; - union { - struct { - uint32_t sigma_max: 16; /*don't use*/ - uint32_t sigma_min: 16; /*don't use*/ - }; - uint32_t val; - } cvsd_conf1; - union { - struct { - uint32_t cvsd_k: 3; /*don't use*/ - uint32_t cvsd_j: 3; /*don't use*/ - uint32_t cvsd_beta: 10; /*don't use*/ - uint32_t cvsd_h: 3; /*don't use*/ - uint32_t reserved19:13; /*don't use*/ - }; - uint32_t val; - } cvsd_conf2; - union { - struct { - uint32_t good_pack_max: 6; /*don't use*/ - uint32_t n_err_seg: 3; /*don't use*/ - uint32_t shift_rate: 3; /*don't use*/ - uint32_t max_slide_sample: 8; /*don't use*/ - uint32_t pack_len_8k: 5; /*don't use*/ - uint32_t n_min_err: 3; /*don't use*/ - uint32_t reserved28: 4; /*don't use*/ - }; - uint32_t val; - } plc_conf0; - union { - struct { - uint32_t bad_cef_atten_para: 8; /*don't use*/ - uint32_t bad_cef_atten_para_shift: 4; /*don't use*/ - uint32_t bad_ola_win2_para_shift: 4; /*don't use*/ - uint32_t bad_ola_win2_para: 8; /*don't use*/ - uint32_t slide_win_len: 8; /*don't use*/ - }; - uint32_t val; - } plc_conf1; - union { - struct { - uint32_t cvsd_seg_mod: 2; /*don't use*/ - uint32_t min_period: 5; /*don't use*/ - uint32_t reserved7: 25; /*don't use*/ - }; - uint32_t val; - } plc_conf2; - union { - struct { - uint32_t en: 1; /*don't use*/ - uint32_t chan_mod: 1; /*don't use*/ - uint32_t cvsd_dec_pack_err: 1; /*don't use*/ - uint32_t cvsd_pack_len_8k: 5; /*don't use*/ - uint32_t cvsd_inf_en: 1; /*don't use*/ - uint32_t cvsd_dec_start: 1; /*don't use*/ - uint32_t cvsd_dec_reset: 1; /*don't use*/ - uint32_t plc_en: 1; /*don't use*/ - uint32_t plc2dma_en: 1; /*don't use*/ - uint32_t reserved13: 19; /*don't use*/ - }; - uint32_t val; - } esco_conf0; - union { - struct { - uint32_t with_en: 1; /*don't use*/ - uint32_t no_en: 1; /*don't use*/ - uint32_t cvsd_enc_start: 1; /*don't use*/ - uint32_t cvsd_enc_reset: 1; /*don't use*/ - uint32_t reserved4: 28; /*don't use*/ - }; - uint32_t val; - } sco_conf0; - union { - struct { - uint32_t tx_pcm_conf: 3; /*Compress/Decompress module configuration bits. 0: decompress transmitted data 1:compress transmitted data*/ - uint32_t tx_pcm_bypass: 1; /*Set this bit to bypass Compress/Decompress module for transmitted data.*/ - uint32_t rx_pcm_conf: 3; /*Compress/Decompress module configuration bits. 0: decompress received data 1:compress received data*/ - uint32_t rx_pcm_bypass: 1; /*Set this bit to bypass Compress/Decompress module for received data.*/ - uint32_t tx_stop_en: 1; /*Set this bit to stop disable output BCK signal and WS signal when tx FIFO is emtpy*/ - uint32_t tx_zeros_rm_en: 1; /*don't use*/ + uint32_t tx_pcm_conf: 3; /*Compress/Decompress module configuration bits. 0: decompress transmitted data 1:compress transmitted data*/ + uint32_t tx_pcm_bypass: 1; /*Set this bit to bypass Compress/Decompress module for transmitted data.*/ + uint32_t rx_pcm_conf: 3; /*Compress/Decompress module configuration bits. 0: decompress received data 1:compress received data*/ + uint32_t rx_pcm_bypass: 1; /*Set this bit to bypass Compress/Decompress module for received data.*/ + uint32_t tx_stop_en: 1; /*Set this bit to stop disable output BCK signal and WS signal when tx FIFO is emtpy*/ + uint32_t tx_zeros_rm_en: 1; /*don't use*/ uint32_t reserved10: 22; }; uint32_t val; } conf1; union { struct { - uint32_t fifo_force_pd: 1; /*Force FIFO power-down*/ - uint32_t fifo_force_pu: 1; /*Force FIFO power-up*/ + uint32_t fifo_force_pd: 1; /*Force FIFO power-down*/ + uint32_t fifo_force_pu: 1; /*Force FIFO power-up*/ uint32_t plc_mem_force_pd: 1; uint32_t plc_mem_force_pu: 1; - uint32_t reserved4: 28; + uint32_t dma_ram_force_pd: 1; + uint32_t dma_ram_force_pu: 1; + uint32_t dma_ram_clk_fo: 1; + uint32_t reserved7: 25; }; uint32_t val; } pd_conf; union { struct { - uint32_t camera_en: 1; /*Set this bit to enable camera mode*/ - uint32_t lcd_tx_wrx2_en: 1; /*LCD WR double for one datum.*/ - uint32_t lcd_tx_sdx2_en: 1; /*Set this bit to duplicate data pairs (Frame Form 2) in LCD mode.*/ - uint32_t data_enable_test_en: 1; /*for debug camera mode enable*/ - uint32_t data_enable: 1; /*for debug camera mode enable*/ - uint32_t lcd_en: 1; /*Set this bit to enable LCD mode*/ - uint32_t ext_adc_start_en: 1; /*Set this bit to enable the function that ADC mode is triggered by external signal.*/ - uint32_t inter_valid_en: 1; /*Set this bit to enable camera internal valid*/ - uint32_t cam_sync_fifo_reset: 1; /*Set this bit to reset cam_sync_fifo*/ - uint32_t cam_clk_loopback: 1; /*Set this bit to loopback cam_clk from i2s_rx*/ + uint32_t camera_en: 1; /*Set this bit to enable camera mode*/ + uint32_t lcd_tx_wrx2_en: 1; /*LCD WR double for one datum.*/ + uint32_t lcd_tx_sdx2_en: 1; /*Set this bit to duplicate data pairs (Frame Form 2) in LCD mode.*/ + uint32_t data_enable_test_en: 1; /*for debug camera mode enable*/ + uint32_t data_enable: 1; /*for debug camera mode enable*/ + uint32_t lcd_en: 1; /*Set this bit to enable LCD mode*/ + uint32_t ext_adc_start_en: 1; /*Set this bit to enable the function that ADC mode is triggered by external signal.*/ + uint32_t inter_valid_en: 1; /*Set this bit to enable camera internal valid*/ + uint32_t cam_sync_fifo_reset: 1; /*Set this bit to reset cam_sync_fifo*/ + uint32_t cam_clk_loopback: 1; /*Set this bit to loopback cam_clk from i2s_rx*/ uint32_t i_v_sync_filter_en: 1; uint32_t i_v_sync_filter_thres: 3; uint32_t reserved14: 18; @@ -427,57 +363,31 @@ typedef volatile struct { } conf2; union { struct { - uint32_t clkm_div_num: 8; /*Integral I2S clock divider value*/ - uint32_t clkm_div_b: 6; /*Fractional clock divider numerator value*/ - uint32_t clkm_div_a: 6; /*Fractional clock divider denominator value*/ - uint32_t clk_en: 1; /*Set this bit to enable clk gate*/ - uint32_t clk_sel: 2; /*Set this bit to enable clk_apll*/ + uint32_t clkm_div_num: 8; /*Integral I2S clock divider value*/ + uint32_t clkm_div_b: 6; /*Fractional clock divider numerator value*/ + uint32_t clkm_div_a: 6; /*Fractional clock divider denominator value*/ + uint32_t clk_en: 1; /*Set this bit to enable clk gate*/ + uint32_t clk_sel: 2; /*Set this bit to enable clk_apll*/ uint32_t reserved23: 9; }; uint32_t val; } clkm_conf; union { struct { - uint32_t tx_bck_div_num: 6; /*Bit clock configuration bits in transmitter mode.*/ - uint32_t rx_bck_div_num: 6; /*Bit clock configuration bits in receiver mode.*/ - uint32_t tx_bits_mod: 6; /*Set the bits to configure bit length of I2S transmitter channel.*/ - uint32_t rx_bits_mod: 6; /*Set the bits to configure bit length of I2S receiver channel.*/ + uint32_t tx_bck_div_num: 6; /*Bit clock configuration bits in transmitter mode.*/ + uint32_t rx_bck_div_num: 6; /*Bit clock configuration bits in receiver mode.*/ + uint32_t tx_bits_mod: 6; /*Set the bits to configure bit length of I2S transmitter channel.*/ + uint32_t rx_bits_mod: 6; /*Set the bits to configure bit length of I2S receiver channel.*/ uint32_t reserved24: 8; }; uint32_t val; } sample_rate_conf; + uint32_t reserved_b4; + uint32_t reserved_b8; union { struct { - uint32_t tx_pdm_en: 1; /*Set this bit to enable transmitter PDM mode*/ - uint32_t rx_pdm_en: 1; /*Set this bit to enable receiver PDM mode*/ - uint32_t pcm2pdm_conv_en: 1; /*Set this bit to enable PCM-to-PDM converter*/ - uint32_t pdm2pcm_conv_en: 1; /*Set this bit to enable PDM-to-PCM converter*/ - uint32_t tx_sinc_osr2: 4; /*upsample rate = 64 * reg_tx_pdm_sinc_osr2*/ - uint32_t tx_prescale: 8; /*set to 0*/ - uint32_t tx_hp_in_shift: 2; /*Adjust size of input signal to filter module. 0: divided by 2 1:multiplied by 1 2:multiplied by 2 3:multiplied by 4*/ - uint32_t tx_lp_in_shift: 2; /*Adjust size of input signal to filter module. 0: divided by 2 1:multiplied by 1 2:multiplied by 2 3:multiplied by 4*/ - uint32_t tx_sinc_in_shift: 2; /*Adjust size of input signal to filter module. 0: divided by 2 1:multiplied by 1 2:multiplied by 2 3:multiplied by 4*/ - uint32_t tx_sigmadelta_in_shift: 2; /*Adjust size of input signal to filter module. 0: divided by 2 1:multiplied by 1 2:multiplied by 2 3:multiplied by 4*/ - uint32_t rx_sinc_dsr_16_en: 1; /*PDM down-sampling rate for filter group1 in receiver mode. 0: downsample rate = 64 1:downsample rate = 128*/ - uint32_t txhp_bypass: 1; /*Set this bit to enable tx pdm hp filter bypass*/ - uint32_t tx_chan_mod: 2; /*pdm tx channel mode*/ - uint32_t tx_way_mode: 2; /*0/1 pdm rx use one-way*/ - uint32_t rx_way_mode: 2; /*0/1 pdm rx use one-way*/ - }; - uint32_t val; - } pdm_conf; - union { - struct { - uint32_t tx_pdm_fs: 10; /*PCM-to-PDM converter PCM frequency parameter*/ - uint32_t tx_pdm_fp: 10; /*PCM-to-PDM converter PDM frequency parameter*/ - uint32_t reserved20:12; - }; - uint32_t val; - } pdm_freq_conf; - union { - struct { - uint32_t tx_idle: 1; /*1: i2s_tx is idle state*/ - uint32_t reserved1: 31; + uint32_t tx_idle: 1; + uint32_t reserved1: 31; /*1: i2s_tx is idle state*/ }; uint32_t val; } state; @@ -496,12 +406,14 @@ typedef volatile struct { uint32_t reserved_f0; uint32_t reserved_f4; uint32_t reserved_f8; - uint32_t date; /**/ + uint32_t date; /**/ } i2s_dev_t; extern i2s_dev_t I2S0; -extern i2s_dev_t I2S1; + +_Static_assert(sizeof(i2s_dev_t)==0x100, "invalid i2s_dev_t size"); + #ifdef __cplusplus } #endif -#endif /* _SOC_I2S_STRUCT_H_ */ +#endif /* _SOC_I2S_STRUCT_H_ */ \ No newline at end of file diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/soc_caps.h b/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/soc_caps.h index 0b24ddbb..3aa4973c 100644 --- a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/soc_caps.h +++ b/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/soc_caps.h @@ -5,4 +5,6 @@ #pragma once -#define SOC_CPU_CORES_NUM 1 \ No newline at end of file +#define SOC_CPU_CORES_NUM 1 + +#define SOC_SUPPORTS_SECURE_DL_MODE 1 diff --git a/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/adc_hal.h b/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/adc_hal.h index 76ab02ea..a533ec18 100644 --- a/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/adc_hal.h +++ b/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/adc_hal.h @@ -61,6 +61,7 @@ void adc_hal_digi_controller_config(const adc_digi_config_t *cfg); /** * Sets the number of interval clock cycles for the digital controller to trigger the measurement. + * Expression: `trigger_meas_freq` = `controller_clk` / 2 / interval. Refer to ``adc_digi_clk_t``. * * @note The trigger interval should not be less than the sampling time of the SAR ADC. * @param cycle The number of clock cycles for the trigger interval. The unit is the divided clock. Range: 40 ~ 4095. @@ -80,9 +81,9 @@ void adc_hal_digi_disable(void); /** * Set ADC digital controller clock division factor. The clock divided from `APLL` or `APB` clock. * Enable clock and select clock source for ADC digital controller. - * Expression: controller_clk = APLL/APB * (div_num + div_b / div_a). + * Expression: controller_clk = (`APLL` or `APB`) / (div_num + div_a / div_b + 1). * - * @param clk Refer to `adc_digi_clk_t`. + * @param clk Refer to ``adc_digi_clk_t``. */ void adc_hal_digi_clk_config(const adc_digi_clk_t *clk); @@ -133,7 +134,7 @@ void adc_hal_digi_clk_config(const adc_digi_clk_t *clk); * * @note The monitor will monitor all the enabled channel data of the each ADC unit at the same time. * @param adc_n ADC unit. - * @param config Refer to `adc_digi_monitor_t`. + * @param config Refer to ``adc_digi_monitor_t``. */ void adc_hal_digi_monitor_config(adc_ll_num_t adc_n, adc_digi_monitor_t *config); @@ -223,7 +224,7 @@ void adc_hal_digi_monitor_config(adc_ll_num_t adc_n, adc_digi_monitor_t *config) * @note The arbiter's working clock is APB_CLK. When the APB_CLK clock drops below 8 MHz, the arbiter must be in shield mode. * @note Default priority: Wi-Fi > RTC > Digital; * - * @param config Refer to `adc_arbiter_t`. + * @param config Refer to ``adc_arbiter_t``. */ void adc_hal_arbiter_config(adc_arbiter_t *config); diff --git a/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/adc_ll.h b/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/adc_ll.h index bfff6dae..3eaadfb8 100644 --- a/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/adc_ll.h +++ b/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/adc_ll.h @@ -1,11 +1,13 @@ #pragma once +#include #include "soc/adc_periph.h" #include "hal/adc_types.h" #include "soc/apb_saradc_struct.h" #include "soc/apb_saradc_reg.h" #include "soc/rtc_cntl_struct.h" -#include +#include "soc/rtc_cntl_reg.h" +#include "i2c_rtc_clk.h" #ifdef __cplusplus extern "C" { @@ -51,7 +53,7 @@ typedef struct { /** * @brief ADC controller type selection. - * + * * @note For ADC2, use the force option with care. The system power consumption detection will use ADC2. * If it is forced to switch to another controller, it may cause the system to obtain incorrect values. * @note Normally, there is no need to switch the controller manually. @@ -67,6 +69,49 @@ typedef enum { ADC2_CTRL_FORCE_DIG = 6, /*!> 8; uint8_t lsb = param & 0xFF; - /* Enable i2s_write_reg function. */ + /* Should be called before writing I2C registers. */ void phy_get_romfunc_addr(void); phy_get_romfunc_addr(); SET_PERI_REG_MASK(RTC_CNTL_ANA_CONF_REG, RTC_CNTL_SAR_I2C_FORCE_PU_M); CLEAR_PERI_REG_MASK(ANA_CONFIG_REG, BIT(18)); - SET_PERI_REG_MASK(ANA_CONFIG2_REG, BIT(16)); + SET_PERI_REG_MASK(ADC_LL_ANA_CONFIG2_REG, BIT(16)); if (adc_n == ADC_NUM_1) { - I2C_WRITEREG_MASK_RTC(I2C_ADC, SAR1_INITIAL_CODE_HIGH_ADDR, msb); - I2C_WRITEREG_MASK_RTC(I2C_ADC, SAR1_INITIAL_CODE_LOW_ADDR, lsb); + I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SAR1_INITIAL_CODE_HIGH_ADDR, msb); + I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SAR1_INITIAL_CODE_LOW_ADDR, lsb); } else { - I2C_WRITEREG_MASK_RTC(I2C_ADC, SAR2_INITIAL_CODE_HIGH_ADDR, msb); - I2C_WRITEREG_MASK_RTC(I2C_ADC, SAR2_INITIAL_CODE_LOW_ADDR, lsb); + I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SAR2_INITIAL_CODE_HIGH_ADDR, msb); + I2C_WRITEREG_MASK_RTC(ADC_LL_I2C_ADC, ADC_LL_SAR2_INITIAL_CODE_LOW_ADDR, lsb); } } /* Temp code end. */ diff --git a/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/cpu_ll.h b/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/cpu_ll.h index ffb4271f..4e8a2e38 100644 --- a/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/cpu_ll.h +++ b/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/cpu_ll.h @@ -110,7 +110,7 @@ static inline void cpu_ll_set_watchpoint(int id, //We support watching 2^n byte values, from 1 to 64. Calculate the mask for that. for (int x = 0; x < 7; x++) { - if (size == (1 << x)) { + if (size == (size_t)(1 << x)) { break; } dbreakc <<= 1; diff --git a/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/dac_ll.h b/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/dac_ll.h index c4da302f..469c8ee2 100644 --- a/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/dac_ll.h +++ b/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/dac_ll.h @@ -86,6 +86,18 @@ static inline void dac_ll_rtc_reset(void) SENS.sar_dac_ctrl1.dac_reset = 0; } +/** + * Enable/disable the synchronization operation function of ADC1 and DAC. + * + * @note If enabled(default), ADC RTC controller sampling will cause the DAC channel output voltage. + * + * @param enable Enable or disable adc and dac synchronization function. + */ +static inline void dac_ll_rtc_sync_by_adc(bool enable) +{ + SENS.sar_amp_ctrl3.sar1_dac_xpd_fsm = enable; +} + /************************************/ /* DAC cosine wave generator API's */ /************************************/ diff --git a/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/i2s_ll.h b/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/i2s_ll.h index b4f63f1e..4fe18da2 100644 --- a/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/i2s_ll.h +++ b/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/i2s_ll.h @@ -529,50 +529,6 @@ static inline void i2s_ll_set_camera_en(i2s_dev_t *hw, bool val) hw->conf2.camera_en = val; } -/** - * @brief Set I2S tx msb shift - * - * @param hw Peripheral I2S hardware instance address. - * @param val value to set tx msb shift - */ -static inline void i2s_ll_set_tx_msb_shift(i2s_dev_t *hw, uint32_t val) -{ - hw->conf.tx_msb_shift = val; -} - -/** - * @brief Set I2S rx msb shift - * - * @param hw Peripheral I2S hardware instance address. - * @param val value to set rx msb shift - */ -static inline void i2s_ll_set_rx_msb_shift(i2s_dev_t *hw, uint32_t val) -{ - hw->conf.rx_msb_shift = val; -} - -/** - * @brief Set I2S tx short sync - * - * @param hw Peripheral I2S hardware instance address. - * @param val value to set tx short sync - */ -static inline void i2s_ll_set_tx_short_sync(i2s_dev_t *hw, uint32_t val) -{ - hw->conf.tx_short_sync = val; -} - -/** - * @brief Set I2S rx short sync - * - * @param hw Peripheral I2S hardware instance address. - * @param val value to set rx short sync - */ -static inline void i2s_ll_set_rx_short_sync(i2s_dev_t *hw, uint32_t val) -{ - hw->conf.rx_short_sync = val; -} - /** * @brief Set I2S tx fifo mod force en * @@ -716,6 +672,94 @@ static inline void i2s_ll_set_sig_loopback(i2s_dev_t *hw, uint32_t val) hw->conf.sig_loopback = val; } +/** + * @brief Set I2S TX to philip standard + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_set_tx_format_philip(i2s_dev_t *hw) +{ + hw->conf.tx_short_sync = 0; + hw->conf.tx_msb_shift = 1; +} + +/** + * @brief Set I2S RX to philip standard + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_set_rx_format_philip(i2s_dev_t *hw) +{ + hw->conf.rx_short_sync = 0; + hw->conf.rx_msb_shift = 1; +} + +/** + * @brief Set I2S TX to MSB Alignment Standard + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_set_tx_format_msb_align(i2s_dev_t *hw) +{ + hw->conf.tx_short_sync = 0; + hw->conf.tx_msb_shift = 0; +} + +/** + * @brief Set I2S RX to MSB Alignment Standard + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_set_rx_format_msb_align(i2s_dev_t *hw) +{ + hw->conf.rx_short_sync = 0; + hw->conf.rx_msb_shift = 0; +} + +/** + * @brief Set I2S TX to PCM short standard + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_set_tx_pcm_short(i2s_dev_t *hw) +{ + hw->conf.tx_short_sync = 1; + hw->conf.tx_msb_shift = 0; +} + +/** + * @brief Set I2S RX to PCM short standard + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_set_rx_pcm_short(i2s_dev_t *hw) +{ + hw->conf.rx_short_sync = 1; + hw->conf.rx_msb_shift = 0; +} + +/** + * @brief Set I2S TX to PCM long standard + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_set_tx_pcm_long(i2s_dev_t *hw) +{ + hw->conf.tx_short_sync = 0; + hw->conf.tx_msb_shift = 0; +} + +/** + * @brief Set I2S RX to PCM long standard + * + * @param hw Peripheral I2S hardware instance address. + */ +static inline void i2s_ll_set_rx_pcm_long(i2s_dev_t *hw) +{ + hw->conf.rx_short_sync = 0; + hw->conf.rx_msb_shift = 0; +} + #ifdef __cplusplus } #endif diff --git a/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/rmt_ll.h b/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/rmt_ll.h index ada667ef..322f2a9a 100644 --- a/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/rmt_ll.h +++ b/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/rmt_ll.h @@ -21,6 +21,9 @@ extern "C" { #include "soc/rmt_struct.h" #include "soc/rmt_caps.h" +#define RMT_LL_HW_BASE (&RMT) +#define RMT_LL_MEM_BASE (&RMTMEM) + static inline void rmt_ll_enable_drive_clock(rmt_dev_t *dev, bool enable) { dev->apb_conf.clk_en = enable; // register clock gating @@ -367,9 +370,10 @@ static inline void rmt_ll_tx_set_carrier_always_on(rmt_dev_t *dev, uint32_t chan dev->conf_ch[channel].conf0.carrier_eff_en = !enable; } +//Writes items to the specified TX channel memory with the given offset and writen length. +//the caller should ensure that (length + off) <= (memory block * SOC_RMT_CHANNEL_MEM_WORDS) static inline void rmt_ll_write_memory(rmt_mem_t *mem, uint32_t channel, const rmt_item32_t *data, uint32_t length, uint32_t off) { - length = (off + length) > SOC_RMT_CHANNEL_MEM_WORDS ? (SOC_RMT_CHANNEL_MEM_WORDS - off) : length; for (uint32_t i = 0; i < length; i++) { mem->chan[channel].data32[i + off].val = data[i].val; } diff --git a/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/touch_sensor_hal.h b/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/touch_sensor_hal.h index 5aab1110..d0aaff52 100644 --- a/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/touch_sensor_hal.h +++ b/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/touch_sensor_hal.h @@ -202,14 +202,14 @@ void touch_hal_filter_get_config(touch_filter_config_t *filter_info); * Set filter mode. The input to the filter is raw data and the output is the baseline value. * Larger filter coefficients increase the stability of the baseline. * - * @param mode Filter mode type. Refer to `touch_filter_mode_t`. + * @param mode Filter mode type. Refer to ``touch_filter_mode_t``. */ #define touch_hal_filter_set_filter_mode(mode) touch_ll_filter_set_filter_mode(mode) /** * Get filter mode. The input to the filter is raw data and the output is the baseline value. * - * @param mode Filter mode type. Refer to `touch_filter_mode_t`. + * @param mode Filter mode type. Refer to ``touch_filter_mode_t``. */ #define touch_hal_filter_get_filter_mode(mode) touch_ll_filter_get_filter_mode(mode) @@ -566,7 +566,7 @@ void touch_hal_sleep_channel_get_config(touch_pad_sleep_channel_t *slp_config); * After the sleep channel is configured, users should query the channel reading using a specific function. * * @note ESP32S2 only support one channel to be set sleep channel. - * + * * @param pad_num touch sleep pad number. * @param enable Enable/disable sleep pad function. */ diff --git a/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/touch_sensor_ll.h b/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/touch_sensor_ll.h index 992066c5..2d59dfe0 100644 --- a/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/touch_sensor_ll.h +++ b/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/touch_sensor_ll.h @@ -669,7 +669,7 @@ static inline void touch_ll_filter_reset_baseline(touch_pad_t touch_num) * Set filter mode. The input to the filter is raw data and the output is the baseline value. * Larger filter coefficients increase the stability of the baseline. * - * @param mode Filter mode type. Refer to `touch_filter_mode_t`. + * @param mode Filter mode type. Refer to ``touch_filter_mode_t``. */ static inline void touch_ll_filter_set_filter_mode(touch_filter_mode_t mode) { @@ -679,7 +679,7 @@ static inline void touch_ll_filter_set_filter_mode(touch_filter_mode_t mode) /** * Get filter mode. The input to the filter is raw data and the output is the baseline value. * - * @param mode Filter mode type. Refer to `touch_filter_mode_t`. + * @param mode Filter mode type. Refer to ``touch_filter_mode_t``. */ static inline void touch_ll_filter_get_filter_mode(touch_filter_mode_t *mode) { @@ -690,7 +690,7 @@ static inline void touch_ll_filter_get_filter_mode(touch_filter_mode_t *mode) * Set filter mode. The input to the filter is raw data and the output is the smooth data. * The smooth data is used to determine the touch status. * - * @param mode Filter mode type. Refer to `touch_smooth_mode_t`. + * @param mode Filter mode type. Refer to ``touch_smooth_mode_t``. */ static inline void touch_ll_filter_set_smooth_mode(touch_smooth_mode_t mode) { @@ -700,7 +700,7 @@ static inline void touch_ll_filter_set_smooth_mode(touch_smooth_mode_t mode) /** * Get filter mode. The smooth data is used to determine the touch status. * - * @param mode Filter mode type. Refer to `touch_smooth_mode_t`. + * @param mode Filter mode type. Refer to ``touch_smooth_mode_t``. */ static inline void touch_ll_filter_get_smooth_mode(touch_smooth_mode_t *mode) { diff --git a/tools/sdk/esp32s2/include/tinyusb/port/common/include/usb_descriptors.h b/tools/sdk/esp32s2/include/tinyusb/port/common/include/usb_descriptors.h index 550dbeaf..e4681f74 100644 --- a/tools/sdk/esp32s2/include/tinyusb/port/common/include/usb_descriptors.h +++ b/tools/sdk/esp32s2/include/tinyusb/port/common/include/usb_descriptors.h @@ -24,7 +24,7 @@ extern "C" { #define USB_ESPRESSIF_VID 0x303A -#define USB_STRING_DESCRIPTOR_ARRAY_SIZE 9 +#define USB_STRING_DESCRIPTOR_ARRAY_SIZE 10 typedef char *tusb_desc_strarray_device_t[USB_STRING_DESCRIPTOR_ARRAY_SIZE]; extern tusb_desc_device_t descriptor_tinyusb; diff --git a/tools/sdk/esp32s2/include/xtensa/include/xt_instr_macros.h b/tools/sdk/esp32s2/include/xtensa/include/xt_instr_macros.h index 9df78f5f..e7931f4b 100644 --- a/tools/sdk/esp32s2/include/xtensa/include/xt_instr_macros.h +++ b/tools/sdk/esp32s2/include/xtensa/include/xt_instr_macros.h @@ -21,4 +21,78 @@ #define RER(reg, at) asm volatile ("rer %0, %1" : "=r" (at) : "r" (reg)) #define WITLB(at, as) asm volatile ("witlb %0, %1; \n isync \n " : : "r" (at), "r" (as)) -#define WDTLB(at, as) asm volatile ("wdtlb %0, %1; \n dsync \n " : : "r" (at), "r" (as)) \ No newline at end of file +#define WDTLB(at, as) asm volatile ("wdtlb %0, %1; \n dsync \n " : : "r" (at), "r" (as)) + +/* The SET_STACK implements a setting a new stack pointer (sp or a1). + * to do this the need reset PS_WOE, reset WINDOWSTART, update SP, and return PS_WOE. + * + * Note: It has 2 implementations one for using in assembler files (*.S) and one for using in C. + * + * C code prototype for SET_STACK: + * uint32_t ps_reg; + * uint32_t w_base; + * RSR(PS, ps_reg); + * ps_reg &= ~(PS_WOE_MASK | PS_OWB_MASK | PS_CALLINC_MASK); + * WSR(PS, ps_reg); + * + * RSR(WINDOWBASE, w_base); + * WSR(WINDOWSTART, (1 << w_base)); + * + * asm volatile ( "movi sp, "XTSTR( (SOC_DRAM_LOW + (SOC_DRAM_HIGH - SOC_DRAM_LOW) / 2) )""); + * + * RSR(PS, ps_reg); + * ps_reg |= (PS_WOE_MASK); + * WSR(PS, ps_reg); +*/ +#ifdef __ASSEMBLER__ + .macro SET_STACK new_sp tmp1 tmp2 + rsr.ps \tmp1 + movi \tmp2, ~(PS_WOE_MASK | PS_OWB_MASK | PS_CALLINC_MASK) + and \tmp1, \tmp1, \tmp2 + wsr.ps \tmp1 + rsync + + rsr.windowbase \tmp1 + ssl \tmp1 + movi \tmp1, 1 + sll \tmp1, \tmp1 + wsr.windowstart \tmp1 + rsync + + mov sp, \new_sp + + rsr.ps \tmp1 + movi \tmp2, (PS_WOE) + or \tmp1, \tmp1, \tmp2 + wsr.ps \tmp1 + rsync + .endm +#else +#define SET_STACK(new_sp) \ + do { \ + uint32_t tmp1 = 0, tmp2 = 0; \ + asm volatile ( \ + "rsr.ps %1 \n"\ + "movi %2, ~" XTSTR( PS_WOE_MASK | PS_OWB_MASK | PS_CALLINC_MASK ) " \n"\ + "and %1, %1, %2 \n"\ + "wsr.ps %1 \n"\ + "rsync \n"\ + " \n"\ + "rsr.windowbase %1 \n"\ + "ssl %1 \n"\ + "movi %1, 1 \n"\ + "sll %1, %1 \n"\ + "wsr.windowstart %1 \n"\ + "rsync \n"\ + " \n"\ + "mov sp, %0 \n"\ + "rsr.ps %1 \n"\ + " \n"\ + "movi %2, " XTSTR( PS_WOE_MASK ) "\n"\ + " \n"\ + "or %1, %1, %2 \n"\ + "wsr.ps %1 \n"\ + "rsync \n"\ + : "+r"(new_sp), "+r"(tmp1), "+r"(tmp2)); \ + } while (0); +#endif // __ASSEMBLER__ diff --git a/tools/sdk/esp32s2/ld/esp32s2.ld b/tools/sdk/esp32s2/ld/esp32s2.ld index b742f333..87f4c9ba 100644 --- a/tools/sdk/esp32s2/ld/esp32s2.ld +++ b/tools/sdk/esp32s2/ld/esp32s2.ld @@ -9,6 +9,13 @@ */ #include "sdkconfig.h" +#ifdef CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC +#define ESP_BOOTLOADER_RESERVE_RTC (CONFIG_BOOTLOADER_RESERVE_RTC_SIZE + CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC_SIZE) +#elif defined(CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP) +#define ESP_BOOTLOADER_RESERVE_RTC (CONFIG_BOOTLOADER_RESERVE_RTC_SIZE) +#else +#define ESP_BOOTLOADER_RESERVE_RTC 0 +#endif #ifdef CONFIG_ESP32S2_INSTRUCTION_CACHE_8KB #define CONFIG_ESP32S2_INSTRUCTION_CACHE_SIZE 0x2000 @@ -83,7 +90,7 @@ MEMORY len = 0x2000 - CONFIG_ESP32S2_ULP_COPROC_RESERVE_MEM /* RTC fast memory (same block as above), viewed from data bus */ - rtc_data_seg(RW) : org = 0x3ff9e000, len = 0x2000 + rtc_data_seg(RW) : org = 0x3ff9e000, len = 0x2000 - ESP_BOOTLOADER_RESERVE_RTC } _static_data_end = _bss_end; @@ -96,7 +103,7 @@ _data_seg_org = ORIGIN(rtc_data_seg); When the option is not defined then use slow memory segment else the data will be placed in fast memory segment TODO: check whether the rtc_data_location is correct for esp32s2 - IDF-761 */ -#ifndef CONFIG_ESP32_RTCDATA_IN_FAST_MEM +#ifndef CONFIG_ESP32S2_RTCDATA_IN_FAST_MEM REGION_ALIAS("rtc_data_location", rtc_slow_seg ); #else REGION_ALIAS("rtc_data_location", rtc_data_seg ); diff --git a/tools/sdk/esp32s2/ld/esp32s2.project.ld b/tools/sdk/esp32s2/ld/esp32s2.project.ld index 6995e118..e82604fb 100644 --- a/tools/sdk/esp32s2/ld/esp32s2.project.ld +++ b/tools/sdk/esp32s2/ld/esp32s2.project.ld @@ -53,7 +53,7 @@ SECTIONS named rtc_wake_stub*.c and the data marked with RTC_DATA_ATTR, RTC_RODATA_ATTR attributes. The memory location of the data is dependent on - CONFIG_ESP32_RTCDATA_IN_FAST_MEM option. + CONFIG_ESP32S2_RTCDATA_IN_FAST_MEM option. */ .rtc.data : { @@ -86,7 +86,7 @@ SECTIONS User data marked with RTC_NOINIT_ATTR will be placed into this section. See the file "esp_attr.h" for more information. The memory location of the data is dependent on - CONFIG_ESP32_RTCDATA_IN_FAST_MEM option. + CONFIG_ESP32S2_RTCDATA_IN_FAST_MEM option. */ .rtc_noinit (NOLOAD): { @@ -376,15 +376,16 @@ SECTIONS /* When modifying the alignment, update tls_section_alignment in pxPortInitialiseStack */ .flash.rodata : ALIGN(0x10) { + _rodata_reserved_start = ABSOLUTE(.); _rodata_start = ABSOLUTE(.); *(.rodata_desc .rodata_desc.*) /* Should be the first. App version info. DO NOT PUT ANYTHING BEFORE IT! */ *(.rodata_custom_desc .rodata_custom_desc.*) /* Should be the second. Custom app version info. DO NOT PUT ANYTHING BEFORE IT! */ - *(EXCLUDE_FILE(*libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:i2c_hal_iram.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:uart_hal_iram.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:ledc_hal_iram.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libphy.a) .rodata EXCLUDE_FILE(*libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *liblog.a:log_freertos.* *liblog.a:log.* *libesp_event.a:esp_event.* *libesp_event.a:default_event_loop.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:system_api.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:i2c_hal_iram.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:uart_hal_iram.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:ledc_hal_iram.* *libdriver.a:gpio.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libfreertos.a:queue.* *libphy.a) .rodata.*) + *(EXCLUDE_FILE(*libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:uart_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:ledc_hal_iram.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libphy.a) .rodata EXCLUDE_FILE(*libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *liblog.a:log_freertos.* *liblog.a:log.* *libesp_event.a:esp_event.* *libesp_event.a:default_event_loop.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:system_api.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:uart_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:ledc_hal_iram.* *libdriver.a:gpio.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libfreertos.a:queue.* *libphy.a) .rodata.*) *libdriver.a:gpio.*(.rodata.gpio_input_enable.str1.4 .rodata.gpio_output_enable.str1.4 .rodata.gpio_set_intr_type.str1.4 .rodata.gpio_set_pull_mode.str1.4 .rodata.gpio_set_direction.str1.4 .rodata.gpio_config.str1.4 .rodata.gpio_reset_pin.str1.4 .rodata.gpio_isr_handler_add.str1.4 .rodata.gpio_isr_register.str1.4 .rodata.gpio_install_isr_service.str1.4 .rodata.gpio_wakeup_enable.str1.4 .rodata.gpio_set_drive_capability.str1.4 .rodata.gpio_get_drive_capability.str1.4 .rodata.gpio_hold_en.str1.4 .rodata.__FUNCTION__$7299 .rodata.__FUNCTION__$7294 .rodata.__FUNCTION__$7289 .rodata.__FUNCTION__$7283 .rodata.__FUNCTION__$7277 .rodata.__FUNCTION__$7272 .rodata.__FUNCTION__$7265 .rodata.__FUNCTION__$7250 .rodata.__FUNCTION__$7246 .rodata.__FUNCTION__$7239 .rodata.__func__$7220 .rodata.__FUNCTION__$7173 .rodata.__FUNCTION__$7177 .rodata.__FUNCTION__$7165 .rodata.__FUNCTION__$7169 .rodata.__FUNCTION__$7157 .rodata.__FUNCTION__$7161 .rodata.__FUNCTION__$7202 .rodata.__FUNCTION__$7190 .rodata.__FUNCTION__$7182 .rodata.__FUNCTION__$7153 .rodata.__FUNCTION__$7145 .rodata.__FUNCTION__$7149 .rodata.__FUNCTION__$7140 .rodata.__FUNCTION__$7135 .rodata.__FUNCTION__$7131 .rodata.__FUNCTION__$7127 .rodata.__FUNCTION__$7123) *libesp_event.a:default_event_loop.*(.rodata.esp_event_loop_create_default.str1.4 .rodata.esp_event_send_to_default_loop) - *libesp_event.a:esp_event.*(.rodata.base_node_add_handler.str1.4 .rodata.loop_node_add_handler.str1.4 .rodata.esp_event_loop_create.str1.4 .rodata.esp_event_loop_run.str1.4 .rodata.esp_event_loop_run_task.str1.4 .rodata.esp_event_handler_register_with_internal.str1.4 .rodata.esp_event_handler_unregister_with_internal.str1.4 .rodata.__func__$9783 .rodata.__func__$9770 .rodata.__func__$9737 .rodata.__func__$9705 .rodata.__func__$9680 .rodata.__func__$9639 .rodata.__func__$9630) + *libesp_event.a:esp_event.*(.rodata.base_node_add_handler.str1.4 .rodata.loop_node_add_handler.str1.4 .rodata.esp_event_loop_create.str1.4 .rodata.esp_event_loop_run.str1.4 .rodata.esp_event_loop_run_task.str1.4 .rodata.esp_event_handler_register_with_internal.str1.4 .rodata.esp_event_handler_unregister_with_internal.str1.4 .rodata.__func__$9784 .rodata.__func__$9771 .rodata.__func__$9738 .rodata.__func__$9706 .rodata.__func__$9681 .rodata.__func__$9640 .rodata.__func__$9631) *libesp_system.a:system_api.*(.rodata.esp_get_idf_version.str1.4) *libfreertos.a:queue.*(.rodata.prvNotifyQueueSetContainer.str1.4 .rodata.xQueueGenericReset.str1.4 .rodata.__FUNCTION__$5259 .rodata.__FUNCTION__$5249 .rodata.__FUNCTION__$5229 .rodata.__FUNCTION__$5224 .rodata.__FUNCTION__$5218 .rodata.__FUNCTION__$5212 .rodata.__FUNCTION__$5206 .rodata.__FUNCTION__$5197 .rodata.__FUNCTION__$5187 .rodata.__FUNCTION__$5176 .rodata.__FUNCTION__$5168 .rodata.__FUNCTION__$5295 .rodata.__FUNCTION__$5157 .rodata.__FUNCTION__$5146 .rodata.__FUNCTION__$5140 .rodata.__FUNCTION__$5133 .rodata.__FUNCTION__$5126 .rodata.__FUNCTION__$5092 .rodata.__FUNCTION__$5082 .rodata.__func__$4285 .rodata.__FUNCTION__$5073) *libfreertos.a:queue.*(.rodata.xQueueGenericCreateStatic) @@ -442,15 +443,17 @@ SECTIONS *(.tbss) *(.tbss.*) _thread_local_end = ABSOLUTE(.); + _rodata_reserved_end = ABSOLUTE(.); . = ALIGN(4); } >default_rodata_seg .flash.text : { _stext = .; + _instruction_reserved_start = ABSOLUTE(.); _text_start = ABSOLUTE(.); - *(EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libgcc.a:lib2funcs.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:i2c_hal_iram.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .literal EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *liblog.a:log.* *liblog.a:log_freertos.* *libgcc.a:lib2funcs.* *libesp_event.a:default_event_loop.* *libesp_event.a:esp_event.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:system_api.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:i2c_hal_iram.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libdriver.a:gpio.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .literal.* EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libgcc.a:lib2funcs.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:i2c_hal_iram.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .text EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *liblog.a:log.* *liblog.a:log_freertos.* *libgcc.a:lib2funcs.* *libesp_event.a:default_event_loop.* *libesp_event.a:esp_event.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:system_api.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:i2c_hal_iram.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:soc_hal.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libdriver.a:gpio.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .text.* EXCLUDE_FILE(*libpp.a *libnet80211.a *libsoc.a:uart_hal_iram.*) .wifi0iram EXCLUDE_FILE(*libpp.a *libnet80211.a *libsoc.a:uart_hal_iram.* *libfreertos.a:queue.*) .wifi0iram.* EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .wifirxiram EXCLUDE_FILE(*libsoc.a:uart_hal_iram.* *libfreertos.a:queue.*) .wifirxiram.*) + *(EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libgcc.a:lib2funcs.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:rtc_wdt.* *libsoc.a:soc_hal.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .literal EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *liblog.a:log.* *liblog.a:log_freertos.* *libgcc.a:lib2funcs.* *libesp_event.a:default_event_loop.* *libesp_event.a:esp_event.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:system_api.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:rtc_wdt.* *libsoc.a:soc_hal.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libdriver.a:gpio.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .literal.* EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libgcc.a:lib2funcs.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:rtc_wdt.* *libsoc.a:soc_hal.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .text EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:app_trace_util.* *libapp_trace.a:app_trace.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *liblog.a:log.* *liblog.a:log_freertos.* *libgcc.a:lib2funcs.* *libesp_event.a:default_event_loop.* *libesp_event.a:esp_event.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libesp_system.a:system_api.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_generic.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_gd.* *libsoc.a:wdt_hal_iram.* *libsoc.a:i2c_hal_iram.* *libsoc.a:lldesc.* *libsoc.a:rtc_time.* *libsoc.a:systimer_hal.* *libsoc.a:cpu_hal.* *libsoc.a:spi_slave_hal_iram.* *libsoc.a:spi_hal_iram.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_sleep.* *libsoc.a:uart_hal_iram.* *libsoc.a:rtc_wdt.* *libsoc.a:soc_hal.* *libsoc.a:rtc_clk_init.* *libsoc.a:rtc_periph.* *libsoc.a:spi_flash_hal_iram.* *libsoc.a:rtc_init.* *libsoc.a:spi_flash_hal_gpspi.* *libsoc.a:rtc_clk.* *libsoc.a:cpu_util.* *libsoc.a:ledc_hal_iram.* *libdriver.a:gpio.* *libxtensa.a:eri.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a *libfreertos.a) .text.* EXCLUDE_FILE(*libpp.a *libnet80211.a *libsoc.a:uart_hal_iram.*) .wifi0iram EXCLUDE_FILE(*libpp.a *libnet80211.a *libsoc.a:uart_hal_iram.* *libfreertos.a:queue.*) .wifi0iram.* EXCLUDE_FILE(*libsoc.a:uart_hal_iram.*) .wifirxiram EXCLUDE_FILE(*libsoc.a:uart_hal_iram.* *libfreertos.a:queue.*) .wifirxiram.*) *libdriver.a:gpio.*(.literal.gpio_input_enable .literal.gpio_input_disable .literal.gpio_output_disable .literal.gpio_od_enable .literal.gpio_od_disable .literal.gpio_intr_enable_on_core .literal.gpio_output_enable .literal.gpio_isr_register_on_core_static .literal.gpio_pullup_en .literal.gpio_pullup_dis .literal.gpio_pulldown_en .literal.gpio_pulldown_dis .literal.gpio_set_intr_type .literal.gpio_intr_enable .literal.gpio_intr_disable .literal.gpio_set_level .literal.gpio_get_level .literal.gpio_set_pull_mode .literal.gpio_set_direction .literal.gpio_config .literal.gpio_reset_pin .literal.gpio_isr_handler_add .literal.gpio_isr_handler_remove .literal.gpio_uninstall_isr_service .literal.gpio_isr_register .literal.gpio_install_isr_service .literal.gpio_wakeup_enable .literal.gpio_wakeup_disable .literal.gpio_set_drive_capability .literal.gpio_get_drive_capability .literal.gpio_hold_en .literal.gpio_hold_dis .literal.gpio_deep_sleep_hold_en .literal.gpio_deep_sleep_hold_dis .literal.gpio_force_hold_all .literal.gpio_force_unhold_all .text.gpio_input_enable .text.gpio_input_disable .text.gpio_output_disable .text.gpio_od_enable .text.gpio_od_disable .text.gpio_intr_enable_on_core .text.gpio_output_enable .text.gpio_isr_register_on_core_static .text.gpio_pullup_en .text.gpio_pullup_dis .text.gpio_pulldown_en .text.gpio_pulldown_dis .text.gpio_set_intr_type .text.gpio_intr_enable .text.gpio_intr_disable .text.gpio_set_level .text.gpio_get_level .text.gpio_set_pull_mode .text.gpio_set_direction .text.gpio_config .text.gpio_reset_pin .text.gpio_isr_handler_add .text.gpio_isr_handler_remove .text.gpio_uninstall_isr_service .text.gpio_isr_register .text.gpio_install_isr_service .text.gpio_wakeup_enable .text.gpio_wakeup_disable .text.gpio_set_drive_capability .text.gpio_get_drive_capability .text.gpio_hold_en .text.gpio_hold_dis .text.gpio_deep_sleep_hold_en .text.gpio_deep_sleep_hold_dis .text.gpio_force_hold_all .text.gpio_force_unhold_all) *libesp_event.a:default_event_loop.*(.literal.esp_event_handler_register .literal.esp_event_handler_instance_register .literal.esp_event_handler_unregister .literal.esp_event_handler_instance_unregister .literal.esp_event_post .literal.esp_event_loop_create_default .literal.esp_event_loop_delete_default .literal.esp_event_send_to_default_loop .text.esp_event_handler_register .text.esp_event_handler_instance_register .text.esp_event_handler_unregister .text.esp_event_handler_instance_unregister .text.esp_event_post .text.esp_event_loop_create_default .text.esp_event_loop_delete_default .text.esp_event_send_to_default_loop) *libesp_event.a:esp_event.*(.literal.handler_instances_remove_all .literal.base_node_remove_all_handler .literal.loop_node_remove_all_handler .literal.handler_instances_add .literal.base_node_add_handler .literal.loop_node_add_handler .literal.handler_instances_remove .literal.base_node_remove_handler .literal.loop_node_remove_handler .literal.esp_event_loop_create .literal.esp_event_loop_run .literal.esp_event_loop_run_task .literal.esp_event_loop_delete .literal.esp_event_handler_register_with_internal .literal.esp_event_handler_register_with .literal.esp_event_handler_instance_register_with .literal.esp_event_handler_unregister_with_internal .literal.esp_event_handler_unregister_with .literal.esp_event_handler_instance_unregister_with .literal.esp_event_post_to .text.handler_execute .text.handler_instances_remove_all .text.base_node_remove_all_handler .text.loop_node_remove_all_handler .text.handler_instances_add .text.base_node_add_handler .text.loop_node_add_handler .text.handler_instances_remove .text.base_node_remove_handler .text.loop_node_remove_handler .text.esp_event_loop_create .text.esp_event_loop_run .text.esp_event_loop_run_task .text.esp_event_loop_delete .text.esp_event_handler_register_with_internal .text.esp_event_handler_register_with .text.esp_event_handler_instance_register_with .text.esp_event_handler_unregister_with_internal .text.esp_event_handler_unregister_with .text.esp_event_handler_instance_unregister_with .text.esp_event_post_to .text.esp_event_dump) @@ -467,6 +470,7 @@ SECTIONS *(.fini) *(.gnu.version) _text_end = ABSOLUTE(.); + _instruction_reserved_end = ABSOLUTE(.); _etext = .; /* Similar to _iram_start, this symbol goes here so it is diff --git a/tools/sdk/esp32s2/ld/esp32s2_out.ld b/tools/sdk/esp32s2/ld/esp32s2_out.ld index a4da5a91..7d6e5ec6 100644 --- a/tools/sdk/esp32s2/ld/esp32s2_out.ld +++ b/tools/sdk/esp32s2/ld/esp32s2_out.ld @@ -45,7 +45,7 @@ MEMORY rtc_slow_seg(RW) : org = 0x50000000 + 0, len = 0x2000 - 0 /* RTC fast memory (same block as above), viewed from data bus */ - rtc_data_seg(RW) : org = 0x3ff9e000, len = 0x2000 + rtc_data_seg(RW) : org = 0x3ff9e000, len = 0x2000 - (0x10) } _static_data_end = _bss_end; _heap_end = 0x40000000; diff --git a/tools/sdk/esp32s2/lib/libapp_trace.a b/tools/sdk/esp32s2/lib/libapp_trace.a index 1222ed1c..0b1e2899 100644 Binary files a/tools/sdk/esp32s2/lib/libapp_trace.a and b/tools/sdk/esp32s2/lib/libapp_trace.a differ diff --git a/tools/sdk/esp32s2/lib/libapp_update.a b/tools/sdk/esp32s2/lib/libapp_update.a index 88b33aa4..5d1de6f4 100644 Binary files a/tools/sdk/esp32s2/lib/libapp_update.a and b/tools/sdk/esp32s2/lib/libapp_update.a differ diff --git a/tools/sdk/esp32s2/lib/libasio.a b/tools/sdk/esp32s2/lib/libasio.a index 17695fd3..48fb57db 100644 Binary files a/tools/sdk/esp32s2/lib/libasio.a and b/tools/sdk/esp32s2/lib/libasio.a differ diff --git a/tools/sdk/esp32s2/lib/libbootloader_support.a b/tools/sdk/esp32s2/lib/libbootloader_support.a index 6f1f8fc2..7d008ea6 100644 Binary files a/tools/sdk/esp32s2/lib/libbootloader_support.a and b/tools/sdk/esp32s2/lib/libbootloader_support.a differ diff --git a/tools/sdk/esp32s2/lib/libcbor.a b/tools/sdk/esp32s2/lib/libcbor.a index c21db152..56d89e02 100644 Binary files a/tools/sdk/esp32s2/lib/libcbor.a and b/tools/sdk/esp32s2/lib/libcbor.a differ diff --git a/tools/sdk/esp32s2/lib/libcoap.a b/tools/sdk/esp32s2/lib/libcoap.a index af102187..639ac086 100644 Binary files a/tools/sdk/esp32s2/lib/libcoap.a and b/tools/sdk/esp32s2/lib/libcoap.a differ diff --git a/tools/sdk/esp32s2/lib/libcoexist.a b/tools/sdk/esp32s2/lib/libcoexist.a index 74fb11e3..376d59e0 100644 Binary files a/tools/sdk/esp32s2/lib/libcoexist.a and b/tools/sdk/esp32s2/lib/libcoexist.a differ diff --git a/tools/sdk/esp32s2/lib/libconsole.a b/tools/sdk/esp32s2/lib/libconsole.a index 960a6c12..f6488647 100644 Binary files a/tools/sdk/esp32s2/lib/libconsole.a and b/tools/sdk/esp32s2/lib/libconsole.a differ diff --git a/tools/sdk/esp32s2/lib/libcore.a b/tools/sdk/esp32s2/lib/libcore.a index 9a01237a..e724b611 100644 Binary files a/tools/sdk/esp32s2/lib/libcore.a and b/tools/sdk/esp32s2/lib/libcore.a differ diff --git a/tools/sdk/esp32s2/lib/libcxx.a b/tools/sdk/esp32s2/lib/libcxx.a index b95caad4..f3efcc9c 100644 Binary files a/tools/sdk/esp32s2/lib/libcxx.a and b/tools/sdk/esp32s2/lib/libcxx.a differ diff --git a/tools/sdk/esp32s2/lib/libdriver.a b/tools/sdk/esp32s2/lib/libdriver.a index 1589f3a2..48d8fd66 100644 Binary files a/tools/sdk/esp32s2/lib/libdriver.a and b/tools/sdk/esp32s2/lib/libdriver.a differ diff --git a/tools/sdk/esp32s2/lib/libefuse.a b/tools/sdk/esp32s2/lib/libefuse.a index 077927ff..7a2ecf3c 100644 Binary files a/tools/sdk/esp32s2/lib/libefuse.a and b/tools/sdk/esp32s2/lib/libefuse.a differ diff --git a/tools/sdk/esp32s2/lib/libesp-tls.a b/tools/sdk/esp32s2/lib/libesp-tls.a index 6543eea4..fd732db3 100644 Binary files a/tools/sdk/esp32s2/lib/libesp-tls.a and b/tools/sdk/esp32s2/lib/libesp-tls.a differ diff --git a/tools/sdk/esp32s2/lib/libesp32s2.a b/tools/sdk/esp32s2/lib/libesp32s2.a index 6a7a928d..58f83ffc 100644 Binary files a/tools/sdk/esp32s2/lib/libesp32s2.a and b/tools/sdk/esp32s2/lib/libesp32s2.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_common.a b/tools/sdk/esp32s2/lib/libesp_common.a index 324dc42b..ee91c98b 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_common.a and b/tools/sdk/esp32s2/lib/libesp_common.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_eth.a b/tools/sdk/esp32s2/lib/libesp_eth.a index 801ff722..b62870b6 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_eth.a and b/tools/sdk/esp32s2/lib/libesp_eth.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_event.a b/tools/sdk/esp32s2/lib/libesp_event.a index 30f37bd9..f13b5c89 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_event.a and b/tools/sdk/esp32s2/lib/libesp_event.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_gdbstub.a b/tools/sdk/esp32s2/lib/libesp_gdbstub.a index ee29862c..8e09ab41 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_gdbstub.a and b/tools/sdk/esp32s2/lib/libesp_gdbstub.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_hid.a b/tools/sdk/esp32s2/lib/libesp_hid.a index 4e66d0d6..2909bfb6 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_hid.a and b/tools/sdk/esp32s2/lib/libesp_hid.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_http_client.a b/tools/sdk/esp32s2/lib/libesp_http_client.a index 5d595c85..2752e255 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_http_client.a and b/tools/sdk/esp32s2/lib/libesp_http_client.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_http_server.a b/tools/sdk/esp32s2/lib/libesp_http_server.a index f30702fb..883fbc24 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_http_server.a and b/tools/sdk/esp32s2/lib/libesp_http_server.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_https_ota.a b/tools/sdk/esp32s2/lib/libesp_https_ota.a index 85603875..997417e3 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_https_ota.a and b/tools/sdk/esp32s2/lib/libesp_https_ota.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_https_server.a b/tools/sdk/esp32s2/lib/libesp_https_server.a index 31bcbd7d..0e0c4813 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_https_server.a and b/tools/sdk/esp32s2/lib/libesp_https_server.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_ipc.a b/tools/sdk/esp32s2/lib/libesp_ipc.a new file mode 100644 index 00000000..5c90845a Binary files /dev/null and b/tools/sdk/esp32s2/lib/libesp_ipc.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_local_ctrl.a b/tools/sdk/esp32s2/lib/libesp_local_ctrl.a index a3f82469..86c99d22 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_local_ctrl.a and b/tools/sdk/esp32s2/lib/libesp_local_ctrl.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_netif.a b/tools/sdk/esp32s2/lib/libesp_netif.a index e14a9fce..9036c3fc 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_netif.a and b/tools/sdk/esp32s2/lib/libesp_netif.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_ringbuf.a b/tools/sdk/esp32s2/lib/libesp_ringbuf.a index 5bb5b2b6..b87fc0c0 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_ringbuf.a and b/tools/sdk/esp32s2/lib/libesp_ringbuf.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_serial_slave_link.a b/tools/sdk/esp32s2/lib/libesp_serial_slave_link.a index 94329f04..d27c342c 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_serial_slave_link.a and b/tools/sdk/esp32s2/lib/libesp_serial_slave_link.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_system.a b/tools/sdk/esp32s2/lib/libesp_system.a index 74308202..de93058e 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_system.a and b/tools/sdk/esp32s2/lib/libesp_system.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_timer.a b/tools/sdk/esp32s2/lib/libesp_timer.a index c65809e8..8d057010 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_timer.a and b/tools/sdk/esp32s2/lib/libesp_timer.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_websocket_client.a b/tools/sdk/esp32s2/lib/libesp_websocket_client.a index 05ccf7b7..3d7caae5 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_websocket_client.a and b/tools/sdk/esp32s2/lib/libesp_websocket_client.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_wifi.a b/tools/sdk/esp32s2/lib/libesp_wifi.a index fe7c0c43..70b60901 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_wifi.a and b/tools/sdk/esp32s2/lib/libesp_wifi.a differ diff --git a/tools/sdk/esp32s2/lib/libespcoredump.a b/tools/sdk/esp32s2/lib/libespcoredump.a index 3e995989..a39806ed 100644 Binary files a/tools/sdk/esp32s2/lib/libespcoredump.a and b/tools/sdk/esp32s2/lib/libespcoredump.a differ diff --git a/tools/sdk/esp32s2/lib/libespnow.a b/tools/sdk/esp32s2/lib/libespnow.a index da9fc677..f86093eb 100644 Binary files a/tools/sdk/esp32s2/lib/libespnow.a and b/tools/sdk/esp32s2/lib/libespnow.a differ diff --git a/tools/sdk/esp32s2/lib/libexpat.a b/tools/sdk/esp32s2/lib/libexpat.a index 11b24770..d43ea2d1 100644 Binary files a/tools/sdk/esp32s2/lib/libexpat.a and b/tools/sdk/esp32s2/lib/libexpat.a differ diff --git a/tools/sdk/esp32s2/lib/libfatfs.a b/tools/sdk/esp32s2/lib/libfatfs.a index 023c1412..1a2737b8 100644 Binary files a/tools/sdk/esp32s2/lib/libfatfs.a and b/tools/sdk/esp32s2/lib/libfatfs.a differ diff --git a/tools/sdk/esp32s2/lib/libfb_gfx.a b/tools/sdk/esp32s2/lib/libfb_gfx.a index e1182547..9e463936 100644 Binary files a/tools/sdk/esp32s2/lib/libfb_gfx.a and b/tools/sdk/esp32s2/lib/libfb_gfx.a differ diff --git a/tools/sdk/esp32s2/lib/libfreemodbus.a b/tools/sdk/esp32s2/lib/libfreemodbus.a index ad29e577..b84080fa 100644 Binary files a/tools/sdk/esp32s2/lib/libfreemodbus.a and b/tools/sdk/esp32s2/lib/libfreemodbus.a differ diff --git a/tools/sdk/esp32s2/lib/libfreertos.a b/tools/sdk/esp32s2/lib/libfreertos.a index 429cc5bc..edcb44ea 100644 Binary files a/tools/sdk/esp32s2/lib/libfreertos.a and b/tools/sdk/esp32s2/lib/libfreertos.a differ diff --git a/tools/sdk/esp32s2/lib/libheap.a b/tools/sdk/esp32s2/lib/libheap.a index 70f3f097..5bffa577 100644 Binary files a/tools/sdk/esp32s2/lib/libheap.a and b/tools/sdk/esp32s2/lib/libheap.a differ diff --git a/tools/sdk/esp32s2/lib/libjsmn.a b/tools/sdk/esp32s2/lib/libjsmn.a index 1113552c..7e5fa3e1 100644 Binary files a/tools/sdk/esp32s2/lib/libjsmn.a and b/tools/sdk/esp32s2/lib/libjsmn.a differ diff --git a/tools/sdk/esp32s2/lib/libjson.a b/tools/sdk/esp32s2/lib/libjson.a index 9891841b..338f5800 100644 Binary files a/tools/sdk/esp32s2/lib/libjson.a and b/tools/sdk/esp32s2/lib/libjson.a differ diff --git a/tools/sdk/esp32s2/lib/liblibsodium.a b/tools/sdk/esp32s2/lib/liblibsodium.a index 24f21c05..1cb81cd0 100644 Binary files a/tools/sdk/esp32s2/lib/liblibsodium.a and b/tools/sdk/esp32s2/lib/liblibsodium.a differ diff --git a/tools/sdk/esp32s2/lib/liblog.a b/tools/sdk/esp32s2/lib/liblog.a index 9d5a76de..77f52404 100644 Binary files a/tools/sdk/esp32s2/lib/liblog.a and b/tools/sdk/esp32s2/lib/liblog.a differ diff --git a/tools/sdk/esp32s2/lib/liblwip.a b/tools/sdk/esp32s2/lib/liblwip.a index 8fb3f635..d2421785 100644 Binary files a/tools/sdk/esp32s2/lib/liblwip.a and b/tools/sdk/esp32s2/lib/liblwip.a differ diff --git a/tools/sdk/esp32s2/lib/libmbedcrypto.a b/tools/sdk/esp32s2/lib/libmbedcrypto.a index f3f21d68..5d927753 100644 Binary files a/tools/sdk/esp32s2/lib/libmbedcrypto.a and b/tools/sdk/esp32s2/lib/libmbedcrypto.a differ diff --git a/tools/sdk/esp32s2/lib/libmbedtls.a b/tools/sdk/esp32s2/lib/libmbedtls.a index 37ffc70e..52c513ab 100644 Binary files a/tools/sdk/esp32s2/lib/libmbedtls.a and b/tools/sdk/esp32s2/lib/libmbedtls.a differ diff --git a/tools/sdk/esp32s2/lib/libmbedx509.a b/tools/sdk/esp32s2/lib/libmbedx509.a index b707fd3c..7b46f3ad 100644 Binary files a/tools/sdk/esp32s2/lib/libmbedx509.a and b/tools/sdk/esp32s2/lib/libmbedx509.a differ diff --git a/tools/sdk/esp32s2/lib/libmdns.a b/tools/sdk/esp32s2/lib/libmdns.a index 37679d35..c7303d59 100644 Binary files a/tools/sdk/esp32s2/lib/libmdns.a and b/tools/sdk/esp32s2/lib/libmdns.a differ diff --git a/tools/sdk/esp32s2/lib/libmesh.a b/tools/sdk/esp32s2/lib/libmesh.a index b77d1ceb..de419468 100644 Binary files a/tools/sdk/esp32s2/lib/libmesh.a and b/tools/sdk/esp32s2/lib/libmesh.a differ diff --git a/tools/sdk/esp32s2/lib/libmqtt.a b/tools/sdk/esp32s2/lib/libmqtt.a index 0a49e3e8..56d1147c 100644 Binary files a/tools/sdk/esp32s2/lib/libmqtt.a and b/tools/sdk/esp32s2/lib/libmqtt.a differ diff --git a/tools/sdk/esp32s2/lib/libnet80211.a b/tools/sdk/esp32s2/lib/libnet80211.a index 6e411985..785d2c66 100644 Binary files a/tools/sdk/esp32s2/lib/libnet80211.a and b/tools/sdk/esp32s2/lib/libnet80211.a differ diff --git a/tools/sdk/esp32s2/lib/libnewlib.a b/tools/sdk/esp32s2/lib/libnewlib.a index b1197fdc..5baf135e 100644 Binary files a/tools/sdk/esp32s2/lib/libnewlib.a and b/tools/sdk/esp32s2/lib/libnewlib.a differ diff --git a/tools/sdk/esp32s2/lib/libnghttp.a b/tools/sdk/esp32s2/lib/libnghttp.a index dfbe6e5d..d9d20449 100644 Binary files a/tools/sdk/esp32s2/lib/libnghttp.a and b/tools/sdk/esp32s2/lib/libnghttp.a differ diff --git a/tools/sdk/esp32s2/lib/libnvs_flash.a b/tools/sdk/esp32s2/lib/libnvs_flash.a index 4399c450..e16f788a 100644 Binary files a/tools/sdk/esp32s2/lib/libnvs_flash.a and b/tools/sdk/esp32s2/lib/libnvs_flash.a differ diff --git a/tools/sdk/esp32s2/lib/libopenssl.a b/tools/sdk/esp32s2/lib/libopenssl.a index 2ecb2841..18eb7f1f 100644 Binary files a/tools/sdk/esp32s2/lib/libopenssl.a and b/tools/sdk/esp32s2/lib/libopenssl.a differ diff --git a/tools/sdk/esp32s2/lib/libperfmon.a b/tools/sdk/esp32s2/lib/libperfmon.a index 8be20c01..cb652a9f 100644 Binary files a/tools/sdk/esp32s2/lib/libperfmon.a and b/tools/sdk/esp32s2/lib/libperfmon.a differ diff --git a/tools/sdk/esp32s2/lib/libpp.a b/tools/sdk/esp32s2/lib/libpp.a index a4357076..927b052a 100644 Binary files a/tools/sdk/esp32s2/lib/libpp.a and b/tools/sdk/esp32s2/lib/libpp.a differ diff --git a/tools/sdk/esp32s2/lib/libprotobuf-c.a b/tools/sdk/esp32s2/lib/libprotobuf-c.a index 4d7075e8..ae9d21dd 100644 Binary files a/tools/sdk/esp32s2/lib/libprotobuf-c.a and b/tools/sdk/esp32s2/lib/libprotobuf-c.a differ diff --git a/tools/sdk/esp32s2/lib/libprotocomm.a b/tools/sdk/esp32s2/lib/libprotocomm.a index 20247019..37c8d364 100644 Binary files a/tools/sdk/esp32s2/lib/libprotocomm.a and b/tools/sdk/esp32s2/lib/libprotocomm.a differ diff --git a/tools/sdk/esp32s2/lib/libpthread.a b/tools/sdk/esp32s2/lib/libpthread.a index 677c9138..266c3cd1 100644 Binary files a/tools/sdk/esp32s2/lib/libpthread.a and b/tools/sdk/esp32s2/lib/libpthread.a differ diff --git a/tools/sdk/esp32s2/lib/libsdmmc.a b/tools/sdk/esp32s2/lib/libsdmmc.a index ac36b9d2..72ff0188 100644 Binary files a/tools/sdk/esp32s2/lib/libsdmmc.a and b/tools/sdk/esp32s2/lib/libsdmmc.a differ diff --git a/tools/sdk/esp32s2/lib/libsmartconfig.a b/tools/sdk/esp32s2/lib/libsmartconfig.a index 1f0dcc7e..81576423 100644 Binary files a/tools/sdk/esp32s2/lib/libsmartconfig.a and b/tools/sdk/esp32s2/lib/libsmartconfig.a differ diff --git a/tools/sdk/esp32s2/lib/libsoc.a b/tools/sdk/esp32s2/lib/libsoc.a index 4bcddd10..16840d4c 100644 Binary files a/tools/sdk/esp32s2/lib/libsoc.a and b/tools/sdk/esp32s2/lib/libsoc.a differ diff --git a/tools/sdk/esp32s2/lib/libsoc_esp32s2.a b/tools/sdk/esp32s2/lib/libsoc_esp32s2.a index 74c7e4b9..f0bd288e 100644 Binary files a/tools/sdk/esp32s2/lib/libsoc_esp32s2.a and b/tools/sdk/esp32s2/lib/libsoc_esp32s2.a differ diff --git a/tools/sdk/esp32s2/lib/libspi_flash.a b/tools/sdk/esp32s2/lib/libspi_flash.a index 8a04be1e..a68672d0 100644 Binary files a/tools/sdk/esp32s2/lib/libspi_flash.a and b/tools/sdk/esp32s2/lib/libspi_flash.a differ diff --git a/tools/sdk/esp32s2/lib/libspiffs.a b/tools/sdk/esp32s2/lib/libspiffs.a index 66552554..c2be5dda 100644 Binary files a/tools/sdk/esp32s2/lib/libspiffs.a and b/tools/sdk/esp32s2/lib/libspiffs.a differ diff --git a/tools/sdk/esp32s2/lib/libtcp_transport.a b/tools/sdk/esp32s2/lib/libtcp_transport.a index 68dce5af..14fcce82 100644 Binary files a/tools/sdk/esp32s2/lib/libtcp_transport.a and b/tools/sdk/esp32s2/lib/libtcp_transport.a differ diff --git a/tools/sdk/esp32s2/lib/libtcpip_adapter.a b/tools/sdk/esp32s2/lib/libtcpip_adapter.a index d3b844e9..07ba76e9 100644 Binary files a/tools/sdk/esp32s2/lib/libtcpip_adapter.a and b/tools/sdk/esp32s2/lib/libtcpip_adapter.a differ diff --git a/tools/sdk/esp32s2/lib/libtinyusb.a b/tools/sdk/esp32s2/lib/libtinyusb.a index 110d0f1c..2181c69c 100644 Binary files a/tools/sdk/esp32s2/lib/libtinyusb.a and b/tools/sdk/esp32s2/lib/libtinyusb.a differ diff --git a/tools/sdk/esp32s2/lib/libulp.a b/tools/sdk/esp32s2/lib/libulp.a index 15c0cb8b..0163fea3 100644 Binary files a/tools/sdk/esp32s2/lib/libulp.a and b/tools/sdk/esp32s2/lib/libulp.a differ diff --git a/tools/sdk/esp32s2/lib/libunity.a b/tools/sdk/esp32s2/lib/libunity.a index 416f56a1..8a2cf945 100644 Binary files a/tools/sdk/esp32s2/lib/libunity.a and b/tools/sdk/esp32s2/lib/libunity.a differ diff --git a/tools/sdk/esp32s2/lib/libvfs.a b/tools/sdk/esp32s2/lib/libvfs.a index e6087539..981a049a 100644 Binary files a/tools/sdk/esp32s2/lib/libvfs.a and b/tools/sdk/esp32s2/lib/libvfs.a differ diff --git a/tools/sdk/esp32s2/lib/libwear_levelling.a b/tools/sdk/esp32s2/lib/libwear_levelling.a index 7c564077..867061cd 100644 Binary files a/tools/sdk/esp32s2/lib/libwear_levelling.a and b/tools/sdk/esp32s2/lib/libwear_levelling.a differ diff --git a/tools/sdk/esp32s2/lib/libwifi_provisioning.a b/tools/sdk/esp32s2/lib/libwifi_provisioning.a index b8599b03..193ef792 100644 Binary files a/tools/sdk/esp32s2/lib/libwifi_provisioning.a and b/tools/sdk/esp32s2/lib/libwifi_provisioning.a differ diff --git a/tools/sdk/esp32s2/lib/libwpa_supplicant.a b/tools/sdk/esp32s2/lib/libwpa_supplicant.a index e8131936..5c492763 100644 Binary files a/tools/sdk/esp32s2/lib/libwpa_supplicant.a and b/tools/sdk/esp32s2/lib/libwpa_supplicant.a differ diff --git a/tools/sdk/esp32s2/lib/libxtensa.a b/tools/sdk/esp32s2/lib/libxtensa.a index 7d45a4e5..924d5b71 100644 Binary files a/tools/sdk/esp32s2/lib/libxtensa.a and b/tools/sdk/esp32s2/lib/libxtensa.a differ diff --git a/tools/sdk/esp32s2/sdkconfig b/tools/sdk/esp32s2/sdkconfig index 2e183202..9022a8a2 100644 --- a/tools/sdk/esp32s2/sdkconfig +++ b/tools/sdk/esp32s2/sdkconfig @@ -49,7 +49,6 @@ CONFIG_BOOTLOADER_LOG_LEVEL_NONE=y # CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set CONFIG_BOOTLOADER_LOG_LEVEL=0 CONFIG_BOOTLOADER_SPI_WP_PIN=7 -# CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_8V is not set CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y # CONFIG_BOOTLOADER_FACTORY_RESET is not set # CONFIG_BOOTLOADER_APP_TEST is not set @@ -68,22 +67,25 @@ CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0x10 # CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set # CONFIG_SECURE_BOOT is not set # CONFIG_SECURE_FLASH_ENC_ENABLED is not set +# CONFIG_SECURE_DISABLE_ROM_DL_MODE is not set +# CONFIG_SECURE_ENABLE_SECURE_ROM_DL_MODE is not set # end of Security features # # Serial flasher config # CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200 +CONFIG_ESPTOOLPY_WITH_STUB=y CONFIG_ESPTOOLPY_FLASHMODE_QIO=y # CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set # CONFIG_ESPTOOLPY_FLASHMODE_DIO is not set # CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set CONFIG_ESPTOOLPY_FLASHMODE="dio" -# CONFIG_ESPTOOLPY_FLASHFREQ_80M is not set -CONFIG_ESPTOOLPY_FLASHFREQ_40M=y +CONFIG_ESPTOOLPY_FLASHFREQ_80M=y +# CONFIG_ESPTOOLPY_FLASHFREQ_40M is not set # CONFIG_ESPTOOLPY_FLASHFREQ_26M is not set # CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set -CONFIG_ESPTOOLPY_FLASHFREQ="40m" +CONFIG_ESPTOOLPY_FLASHFREQ="80m" # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set # CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y @@ -352,6 +354,7 @@ CONFIG_ESP32S2_RTC_CLK_SRC_INT_RC=y # CONFIG_ESP32S2_RTC_CLK_SRC_INT_8MD256 is not set CONFIG_ESP32S2_RTC_CLK_CAL_CYCLES=576 # CONFIG_ESP32S2_NO_BLOBS is not set +# CONFIG_ESP32S2_RTCDATA_IN_FAST_MEM is not set # end of ESP32S2-specific # @@ -653,6 +656,7 @@ CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y CONFIG_LWIP_TIMERS_ONDEMAND=y CONFIG_LWIP_MAX_SOCKETS=10 # CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set +# CONFIG_LWIP_SO_LINGER is not set CONFIG_LWIP_SO_REUSE=y CONFIG_LWIP_SO_REUSE_RXTOALL=y CONFIG_LWIP_SO_RCVBUF=y @@ -988,13 +992,13 @@ CONFIG_SPIFFS_USE_MTIME=y # TinyUSB # CONFIG_USB_ENABLED=y -CONFIG_USB_MAX_POWER_USAGE=500 +CONFIG_USB_MAX_POWER_USAGE=100 # CONFIG_USB_USE_BUILTIN_DESCRIPTORS is not set CONFIG_USB_DYNAMIC_DRIVER_LOADING=y CONFIG_USB_DYNAMIC_DRIVER_MAX=16 CONFIG_USB_CDC_ENABLED=y -CONFIG_USB_CDC_RX_BUFSIZE=1024 -CONFIG_USB_CDC_TX_BUFSIZE=1024 +CONFIG_USB_CDC_RX_BUFSIZE=64 +CONFIG_USB_CDC_TX_BUFSIZE=64 CONFIG_USB_DFU_RT_ENABLED=y CONFIG_USB_MSC_ENABLED=y CONFIG_USB_MSC_BUFSIZE=512 @@ -1013,9 +1017,9 @@ CONFIG_USB_VENDOR_ENABLED=y CONFIG_USB_DESC_USE_ESPRESSIF_VID=y CONFIG_USB_DESC_USE_DEFAULT_PID=y CONFIG_USB_DESC_BCDDEVICE=0x0100 -CONFIG_USB_DESC_MANUFACTURER_STRING="Espressif" +CONFIG_USB_DESC_MANUFACTURER_STRING="Espressif Systems" CONFIG_USB_DESC_PRODUCT_STRING="Espressif Device" -CONFIG_USB_DESC_SERIAL_STRING="123456" +CONFIG_USB_DESC_SERIAL_STRING="0" CONFIG_USB_DESC_CDC_STRING="Espressif CDC Device" CONFIG_USB_DESC_DFU_RT_STRING="Espressif DFU Device" CONFIG_USB_DESC_MSC_STRING="Espressif MSC Device"