diff --git a/platform.txt b/platform.txt index 7f9d6fc5..3befa068 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.3-dev-1561-g357a27760-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/include" "-I{compiler.sdk.path}/include/soc/src/esp32" "-I{compiler.sdk.path}/include/hal/esp32/include" "-I{compiler.sdk.path}/include/hal/include" "-I{compiler.sdk.path}/include/esp_rom/include" "-I{compiler.sdk.path}/include/esp_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/esp_pm/include" "-I{compiler.sdk.path}/include/soc/soc/esp32/include" "-I{compiler.sdk.path}/include/soc/soc/include" "-I{compiler.sdk.path}/include/soc/soc/esp32/private_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/nvs_flash/include" "-I{compiler.sdk.path}/include/pthread/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/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/unity/include" "-I{compiler.sdk.path}/include/unity/unity/src" "-I{compiler.sdk.path}/include/unity/unity/extras/fixture/src" "-I{compiler.sdk.path}/include/cmock/CMock/src" "-I{compiler.sdk.path}/include/coap/port/include" "-I{compiler.sdk.path}/include/coap/port/include/coap" "-I{compiler.sdk.path}/include/coap/libcoap/include" "-I{compiler.sdk.path}/include/coap/libcoap/include/coap2" "-I{compiler.sdk.path}/include/console" "-I{compiler.sdk.path}/include/nghttp/port/include" "-I{compiler.sdk.path}/include/nghttp/nghttp2/lib/includes" "-I{compiler.sdk.path}/include/esp-tls" "-I{compiler.sdk.path}/include/esp_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/wifi_provisioning/include" "-I{compiler.sdk.path}/include/button/button/include" "-I{compiler.sdk.path}/include/json_parser" "-I{compiler.sdk.path}/include/json_parser/jsmn/include" "-I{compiler.sdk.path}/include/json_generator" "-I{compiler.sdk.path}/include/esp_schedule/include" "-I{compiler.sdk.path}/include/esp_rainmaker/include" "-I{compiler.sdk.path}/include/qrcode/include" "-I{compiler.sdk.path}/include/ws2812_led" "-I{compiler.sdk.path}/include/esp-face/face_detection/include" "-I{compiler.sdk.path}/include/esp-face/face_recognition/include" "-I{compiler.sdk.path}/include/esp-face/object_detection/include" "-I{compiler.sdk.path}/include/esp-face/image_util/include" "-I{compiler.sdk.path}/include/esp-face/pose_estimation/include" "-I{compiler.sdk.path}/include/esp-face/lib/include" "-I{compiler.sdk.path}/include/esp32-camera/driver/include" "-I{compiler.sdk.path}/include/esp32-camera/conversions/include" "-I{compiler.sdk.path}/include/esp_littlefs/src" "-I{compiler.sdk.path}/include/esp_littlefs/include" "-I{compiler.sdk.path}/include/fb_gfx/include" -compiler.c.elf.libs.esp32=-lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lasio -lbt -lcbor -lunity -lcmock -lcoap -lconsole -lnghttp -lesp-tls -lesp_adc_cal -lesp_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 -lwifi_provisioning -lbutton -ljson_parser -ljson_generator -lesp_schedule -lesp_rainmaker -lqrcode -lws2812_led -lesp-face -lesp32-camera -lesp_littlefs -lfb_gfx -lasio -lcbor -lcmock -lunity -lcoap -lesp_gdbstub -lesp_hid -lesp_local_ctrl -lesp_websocket_client -lexpat -lfreemodbus -ljsmn -llibsodium -lbutton -lesp_rainmaker -lmqtt -lwifi_provisioning -lprotocomm -lprotobuf-c -ljson -ljson_parser -ljson_generator -lesp_schedule -lqrcode -lws2812_led -lesp-face -lpe -lfd -lfr -ldetection_cat_face -ldetection -ldl -lesp32-camera -lesp_littlefs -lfb_gfx -lbt -lbtdm_app -lesp_adc_cal -lmdns -lconsole -lfatfs -lwear_levelling -lopenssl -lspiffs -lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxt_hal -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.3-dev-1720-g494a124d9-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/esp_hw_support/include" "-I{compiler.sdk.path}/include/esp_hw_support/port/esp32" "-I{compiler.sdk.path}/include/heap/include" "-I{compiler.sdk.path}/include/log/include" "-I{compiler.sdk.path}/include/lwip/include/apps" "-I{compiler.sdk.path}/include/lwip/include/apps/sntp" "-I{compiler.sdk.path}/include/lwip/lwip/src/include" "-I{compiler.sdk.path}/include/lwip/port/esp32/include" "-I{compiler.sdk.path}/include/lwip/port/esp32/include/arch" "-I{compiler.sdk.path}/include/lwip/port/esp32/tcp_isn" "-I{compiler.sdk.path}/include/soc/include" "-I{compiler.sdk.path}/include/soc/esp32" "-I{compiler.sdk.path}/include/soc/esp32/include" "-I{compiler.sdk.path}/include/hal/esp32/include" "-I{compiler.sdk.path}/include/hal/include" "-I{compiler.sdk.path}/include/esp_rom/include" "-I{compiler.sdk.path}/include/esp_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/esp_pm/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/nvs_flash/include" "-I{compiler.sdk.path}/include/pthread/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/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/unity/include" "-I{compiler.sdk.path}/include/unity/unity/src" "-I{compiler.sdk.path}/include/unity/unity/extras/fixture/src" "-I{compiler.sdk.path}/include/cmock/CMock/src" "-I{compiler.sdk.path}/include/coap/port/include" "-I{compiler.sdk.path}/include/coap/port/include/coap" "-I{compiler.sdk.path}/include/coap/libcoap/include" "-I{compiler.sdk.path}/include/coap/libcoap/include/coap2" "-I{compiler.sdk.path}/include/console" "-I{compiler.sdk.path}/include/nghttp/port/include" "-I{compiler.sdk.path}/include/nghttp/nghttp2/lib/includes" "-I{compiler.sdk.path}/include/esp-tls" "-I{compiler.sdk.path}/include/esp-tls/esp-tls-crypto" "-I{compiler.sdk.path}/include/esp_adc_cal/include" "-I{compiler.sdk.path}/include/esp_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/wifi_provisioning/include" "-I{compiler.sdk.path}/include/button/button/include" "-I{compiler.sdk.path}/include/json_parser" "-I{compiler.sdk.path}/include/json_parser/jsmn/include" "-I{compiler.sdk.path}/include/json_generator" "-I{compiler.sdk.path}/include/esp_schedule/include" "-I{compiler.sdk.path}/include/esp_rainmaker/include" "-I{compiler.sdk.path}/include/qrcode/include" "-I{compiler.sdk.path}/include/ws2812_led" "-I{compiler.sdk.path}/include/esp-face/face_detection/include" "-I{compiler.sdk.path}/include/esp-face/face_recognition/include" "-I{compiler.sdk.path}/include/esp-face/object_detection/include" "-I{compiler.sdk.path}/include/esp-face/image_util/include" "-I{compiler.sdk.path}/include/esp-face/pose_estimation/include" "-I{compiler.sdk.path}/include/esp-face/lib/include" "-I{compiler.sdk.path}/include/esp32-camera/driver/include" "-I{compiler.sdk.path}/include/esp32-camera/conversions/include" "-I{compiler.sdk.path}/include/esp_littlefs/src" "-I{compiler.sdk.path}/include/esp_littlefs/include" "-I{compiler.sdk.path}/include/fb_gfx/include" +compiler.c.elf.libs.esp32=-lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_ringbuf -ldriver -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lasio -lbt -lcbor -lunity -lcmock -lcoap -lconsole -lnghttp -lesp-tls -lesp_adc_cal -lesp_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 -lwifi_provisioning -lbutton -ljson_parser -ljson_generator -lesp_schedule -lesp_rainmaker -lqrcode -lws2812_led -lesp-face -lesp32-camera -lesp_littlefs -lfb_gfx -lasio -lcbor -lcmock -lunity -lcoap -lesp_gdbstub -lesp_hid -lesp_local_ctrl -lesp_websocket_client -lexpat -lfreemodbus -ljsmn -llibsodium -lbutton -lesp_rainmaker -lmqtt -lwifi_provisioning -lprotocomm -lprotobuf-c -ljson -ljson_parser -ljson_generator -lesp_schedule -lqrcode -lws2812_led -lesp-face -lpe -lfd -lfr -ldetection_cat_face -ldetection -ldl -lesp32-camera -lesp_littlefs -lfb_gfx -lbt -lbtdm_app -lesp_adc_cal -lmdns -lconsole -lfatfs -lwear_levelling -lopenssl -lspiffs -lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_ringbuf -ldriver -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_ringbuf -ldriver -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_ringbuf -ldriver -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_ringbuf -ldriver -lespcoredump -lperfmon -lesp32 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxt_hal -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 -O2 -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 -O2 -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 -O2 -fstack-protector -x assembler-with-cpp -MMD -c @@ -37,8 +37,8 @@ build.extra_flags.esp32=-DARDUINO_SERIAL_PORT=0 # # ESP32S2 Support Start # -compiler.cpreprocessor.flags.esp32s2=-DHAVE_CONFIG_H -DMBEDTLS_CONFIG_FILE="mbedtls/esp_config.h" -DUNITY_INCLUDE_CONFIG_H -DWITH_POSIX -D_GNU_SOURCE -DIDF_VER="v4.3-dev-1561-g357a27760-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/include" "-I{compiler.sdk.path}/include/soc/src/esp32s2" "-I{compiler.sdk.path}/include/soc/src/esp32s2/include" "-I{compiler.sdk.path}/include/hal/esp32s2/include" "-I{compiler.sdk.path}/include/hal/include" "-I{compiler.sdk.path}/include/esp_rom/include" "-I{compiler.sdk.path}/include/esp_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/esp_pm/include" "-I{compiler.sdk.path}/include/soc/soc/esp32s2/include" "-I{compiler.sdk.path}/include/soc/soc/include" "-I{compiler.sdk.path}/include/soc/soc/esp32s2/private_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/nvs_flash/include" "-I{compiler.sdk.path}/include/pthread/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/asio/asio/asio/include" "-I{compiler.sdk.path}/include/asio/port/include" "-I{compiler.sdk.path}/include/cbor/port/include" "-I{compiler.sdk.path}/include/unity/include" "-I{compiler.sdk.path}/include/unity/unity/src" "-I{compiler.sdk.path}/include/unity/unity/extras/fixture/src" "-I{compiler.sdk.path}/include/cmock/CMock/src" "-I{compiler.sdk.path}/include/coap/port/include" "-I{compiler.sdk.path}/include/coap/port/include/coap" "-I{compiler.sdk.path}/include/coap/libcoap/include" "-I{compiler.sdk.path}/include/coap/libcoap/include/coap2" "-I{compiler.sdk.path}/include/console" "-I{compiler.sdk.path}/include/nghttp/port/include" "-I{compiler.sdk.path}/include/nghttp/nghttp2/lib/includes" "-I{compiler.sdk.path}/include/esp-tls" "-I{compiler.sdk.path}/include/esp_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/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/freertos/include/freertos" "-I{compiler.sdk.path}/include/tinyusb/tinyusb/src" "-I{compiler.sdk.path}/include/tinyusb/additions/include" "-I{compiler.sdk.path}/include/ulp/include" "-I{compiler.sdk.path}/include/wifi_provisioning/include" "-I{compiler.sdk.path}/include/esp-face/face_detection/include" "-I{compiler.sdk.path}/include/esp-face/face_recognition/include" "-I{compiler.sdk.path}/include/esp-face/object_detection/include" "-I{compiler.sdk.path}/include/esp-face/image_util/include" "-I{compiler.sdk.path}/include/esp-face/pose_estimation/include" "-I{compiler.sdk.path}/include/esp-face/lib/include" "-I{compiler.sdk.path}/include/esp_littlefs/src" "-I{compiler.sdk.path}/include/esp_littlefs/include" "-I{compiler.sdk.path}/include/fb_gfx/include" -compiler.c.elf.libs.esp32s2=-lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lasio -lcbor -lunity -lcmock -lcoap -lconsole -lnghttp -lesp-tls -lesp_adc_cal -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 -lulp -lwifi_provisioning -lesp-face -lesp_littlefs -lfb_gfx -lasio -lcbor -lcmock -lunity -lcoap -lesp_gdbstub -lesp_hid -lesp_local_ctrl -lesp_https_server -lesp_websocket_client -lexpat -lfreemodbus -ljsmn -llibsodium -lmqtt -lperfmon -lwifi_provisioning -lprotocomm -lprotobuf-c -ljson -lesp-face -lpe -lfd -lfr -ldetection_cat_face -ldetection -ldl -lesp_littlefs -lfb_gfx -lesp_adc_cal -lmdns -lconsole -lfatfs -lwear_levelling -lopenssl -lspiffs -ltinyusb -lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32s2 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32s2 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32s2 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lsoc -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lesp_ringbuf -ldriver -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lsoc_esp32s2 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxt_hal -lesp32s2 -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.3-dev-1720-g494a124d9-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/esp_hw_support/include" "-I{compiler.sdk.path}/include/esp_hw_support/port/esp32s2" "-I{compiler.sdk.path}/include/esp_hw_support/port/esp32s2/private_include" "-I{compiler.sdk.path}/include/heap/include" "-I{compiler.sdk.path}/include/log/include" "-I{compiler.sdk.path}/include/lwip/include/apps" "-I{compiler.sdk.path}/include/lwip/include/apps/sntp" "-I{compiler.sdk.path}/include/lwip/lwip/src/include" "-I{compiler.sdk.path}/include/lwip/port/esp32/include" "-I{compiler.sdk.path}/include/lwip/port/esp32/include/arch" "-I{compiler.sdk.path}/include/lwip/port/esp32/tcp_isn" "-I{compiler.sdk.path}/include/soc/include" "-I{compiler.sdk.path}/include/soc/esp32s2" "-I{compiler.sdk.path}/include/soc/esp32s2/include" "-I{compiler.sdk.path}/include/hal/esp32s2/include" "-I{compiler.sdk.path}/include/hal/include" "-I{compiler.sdk.path}/include/esp_rom/include" "-I{compiler.sdk.path}/include/esp_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/esp_pm/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/nvs_flash/include" "-I{compiler.sdk.path}/include/pthread/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/asio/asio/asio/include" "-I{compiler.sdk.path}/include/asio/port/include" "-I{compiler.sdk.path}/include/cbor/port/include" "-I{compiler.sdk.path}/include/unity/include" "-I{compiler.sdk.path}/include/unity/unity/src" "-I{compiler.sdk.path}/include/unity/unity/extras/fixture/src" "-I{compiler.sdk.path}/include/cmock/CMock/src" "-I{compiler.sdk.path}/include/coap/port/include" "-I{compiler.sdk.path}/include/coap/port/include/coap" "-I{compiler.sdk.path}/include/coap/libcoap/include" "-I{compiler.sdk.path}/include/coap/libcoap/include/coap2" "-I{compiler.sdk.path}/include/console" "-I{compiler.sdk.path}/include/nghttp/port/include" "-I{compiler.sdk.path}/include/nghttp/nghttp2/lib/includes" "-I{compiler.sdk.path}/include/esp-tls" "-I{compiler.sdk.path}/include/esp-tls/esp-tls-crypto" "-I{compiler.sdk.path}/include/esp_adc_cal/include" "-I{compiler.sdk.path}/include/esp_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/freertos/include/freertos" "-I{compiler.sdk.path}/include/tinyusb/tinyusb/src" "-I{compiler.sdk.path}/include/tinyusb/additions/include" "-I{compiler.sdk.path}/include/ulp/include" "-I{compiler.sdk.path}/include/wifi_provisioning/include" "-I{compiler.sdk.path}/include/esp-face/face_detection/include" "-I{compiler.sdk.path}/include/esp-face/face_recognition/include" "-I{compiler.sdk.path}/include/esp-face/object_detection/include" "-I{compiler.sdk.path}/include/esp-face/image_util/include" "-I{compiler.sdk.path}/include/esp-face/pose_estimation/include" "-I{compiler.sdk.path}/include/esp-face/lib/include" "-I{compiler.sdk.path}/include/esp_littlefs/src" "-I{compiler.sdk.path}/include/esp_littlefs/include" "-I{compiler.sdk.path}/include/fb_gfx/include" +compiler.c.elf.libs.esp32s2=-lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_ringbuf -ldriver -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lasio -lcbor -lunity -lcmock -lcoap -lconsole -lnghttp -lesp-tls -lesp_adc_cal -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 -lulp -lwifi_provisioning -lesp-face -lesp_littlefs -lfb_gfx -lasio -lcbor -lcmock -lunity -lcoap -lesp_gdbstub -lesp_hid -lesp_local_ctrl -lesp_https_server -lesp_websocket_client -lexpat -lfreemodbus -ljsmn -llibsodium -lmqtt -lperfmon -lwifi_provisioning -lprotocomm -lprotobuf-c -ljson -lesp-face -lpe -lfd -lfr -ldetection_cat_face -ldetection -ldl -lesp_littlefs -lfb_gfx -lesp_adc_cal -lmdns -lconsole -lfatfs -lwear_levelling -lopenssl -lspiffs -ltinyusb -lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_ringbuf -ldriver -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_ringbuf -ldriver -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_ringbuf -ldriver -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxtensa -lesp_pm -lmbedtls -lefuse -lbootloader_support -lapp_update -lesp_ipc -lspi_flash -lnvs_flash -lpthread -lesp_system -lesp_rom -lhal -lvfs -lesp_eth -ltcpip_adapter -lesp_netif -lesp_event -lwpa_supplicant -lesp_wifi -llwip -llog -lheap -lsoc -lesp_hw_support -lesp_ringbuf -ldriver -lespcoredump -lesp32s2 -lesp_common -lesp_timer -lfreertos -lnewlib -lcxx -lapp_trace -lnghttp -lesp-tls -ltcp_transport -lesp_http_client -lesp_http_server -lesp_https_ota -lsdmmc -lesp_serial_slave_link -lulp -lmbedtls -lmbedcrypto -lmbedx509 -lcoexist -lcore -lespnow -lmesh -lnet80211 -lpp -lrtc -lsmartconfig -lphy -lxt_hal -lesp32s2 -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 -O2 -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 -O2 -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 -O2 -fstack-protector -x assembler-with-cpp -MMD -c diff --git a/tools/esptool.py b/tools/esptool.py index 9a908433..94c41a53 100755 --- a/tools/esptool.py +++ b/tools/esptool.py @@ -24,15 +24,15 @@ import binascii import copy import hashlib import inspect -import itertools import io +import itertools import os import shlex +import string import struct import sys import time import zlib -import string try: import serial @@ -103,7 +103,7 @@ def check_supported_function(func, check_func): bootloader function to check if it's supported. This is used to capture the multidimensional differences in - functionality between the ESP8266 & ESP32/32S2/32S3 ROM loaders, and the + functionality between the ESP8266 & ESP32/32S2/32S3/32C3 ROM loaders, and the software stub that runs on both. Not possible to do this cleanly via inheritance alone. """ @@ -122,7 +122,7 @@ def stub_function_only(func): def stub_and_esp32_function_only(func): - """ Attribute for a function only supported by software stubs or ESP32/32S2/32S3 ROM """ + """ Attribute for a function only supported by software stubs or ESP32/32S2/32S3/32C3 ROM """ return check_supported_function(func, lambda o: o.IS_STUB or isinstance(o, ESP32ROM)) @@ -208,7 +208,7 @@ class ESPLoader(object): ESP_FLASH_DEFL_END = 0x12 ESP_SPI_FLASH_MD5 = 0x13 - # Commands supported by ESP32-S2/S3 ROM bootloader only + # Commands supported by ESP32-S2/S3/C3 ROM bootloader only ESP_GET_SECURITY_INFO = 0x14 # Some commands supported by stub only @@ -312,7 +312,7 @@ class ESPLoader(object): sys.stdout.flush() chip_magic_value = detect_port.read_reg(ESPLoader.CHIP_DETECT_MAGIC_REG_ADDR) - for cls in [ESP8266ROM, ESP32ROM, ESP32S2ROM, ESP32S3BETA2ROM]: + for cls in [ESP8266ROM, ESP32ROM, ESP32S2ROM, ESP32S3BETA2ROM, ESP32C3ROM]: if chip_magic_value == cls.CHIP_DETECT_MAGIC_VALUE: # don't connect a second time inst = cls(detect_port._port, baud, trace_enabled=trace_enabled) @@ -320,7 +320,7 @@ class ESPLoader(object): print(' %s' % inst.CHIP_NAME, end='') return inst except UnsupportedCommandError: - raise FatalError("Unsupported Command Error received. Probably this means Secure Download Mode is enabled, " + + 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 @@ -333,7 +333,7 @@ class ESPLoader(object): """ Write bytes to the serial port while performing SLIP escaping """ def write(self, packet): buf = b'\xc0' \ - + (packet.replace(b'\xdb',b'\xdb\xdd').replace(b'\xc0',b'\xdb\xdc')) \ + + (packet.replace(b'\xdb', b'\xdb\xdd').replace(b'\xc0', b'\xdb\xdc')) \ + b'\xc0' self.trace("Write %d bytes: %s", len(buf), HexFormatter(buf)) self._port.write(buf) @@ -534,12 +534,12 @@ class ESPLoader(object): chip_magic_value = self.read_reg(ESPLoader.CHIP_DETECT_MAGIC_REG_ADDR) if chip_magic_value != self.CHIP_DETECT_MAGIC_VALUE: actually = None - for cls in [ESP8266ROM, ESP32ROM, ESP32S2ROM, ESP32S3BETA2ROM]: + for cls in [ESP8266ROM, ESP32ROM, ESP32S2ROM, ESP32S3BETA2ROM, ESP32C3ROM]: if chip_magic_value == cls.CHIP_DETECT_MAGIC_VALUE: actually = cls break if actually is None: - print(("WARNING: This chip doesn't appear to be a %s (chip magic value 0x%08x). " + + print(("WARNING: This chip doesn't appear to be a %s (chip magic value 0x%08x). " "Probably it is unsupported by this version of esptool.") % (self.CHIP_NAME, chip_magic_value)) else: raise FatalError("This chip is %s not %s. Wrong --chip argument?" % (actually.CHIP_NAME, self.CHIP_NAME)) @@ -596,9 +596,9 @@ class ESPLoader(object): for (start, end) in [(stub["data_start"], stub["data_start"] + len(stub["data"])), (stub["text_start"], stub["text_start"] + len(stub["text"]))]: if load_start < end and load_end > start: - raise FatalError(("Software loader is resident at 0x%08x-0x%08x. " + - "Can't load binary at overlapping address range 0x%08x-0x%08x. " + - "Either change binary loading address, or use the --no-stub " + + raise FatalError(("Software loader is resident at 0x%08x-0x%08x. " + "Can't load binary at overlapping address range 0x%08x-0x%08x. " + "Either change binary loading address, or use the --no-stub " "option to disable the software loader.") % (start, end, load_start, load_end)) return self.check_command("enter RAM download mode", self.ESP_MEM_BEGIN, @@ -641,7 +641,7 @@ class ESPLoader(object): timeout = timeout_per_mb(ERASE_REGION_TIMEOUT_PER_MB, size) # ROM performs the erase up front params = struct.pack('> 21) & 0x0F + return pkg_version + + def get_chip_description(self): + chip_name = { + 0: "ESP32-C3", + }.get(self.get_pkg_version(), "unknown ESP32-C3") + + return "%s" % (chip_name) + + def get_chip_features(self): + return ["Wi-Fi"] + + def get_crystal_freq(self): + # ESP32C3 XTAL is fixed to 40MHz + return 40 + + def override_vddsdio(self, new_voltage): + raise NotImplementedInROMError("VDD_SDIO overrides are not supported for ESP32-C3") + + def read_mac(self): + mac0 = self.read_reg(self.MAC_EFUSE_REG) + mac1 = self.read_reg(self.MAC_EFUSE_REG + 4) # only bottom 16 bits are MAC + bitstring = struct.pack(">II", mac1, mac0)[2:] + try: + return tuple(ord(b) for b in bitstring) + except TypeError: # Python 3, bitstring elements are already bytes + return tuple(bitstring) + + class ESP32StubLoader(ESP32ROM): """ Access class for ESP32 stub loader, runs on top of ROM. """ @@ -1814,6 +1891,26 @@ class ESP32S3BETA2StubLoader(ESP32S3BETA2ROM): ESP32S3BETA2ROM.STUB_CLASS = ESP32S3BETA2StubLoader +class ESP32C3StubLoader(ESP32C3ROM): + """ Access class for ESP32C3 stub loader, runs on top of ROM. + + (Basically the same as ESP32StubLoader, but different base class. + Can possibly be made into a mixin.) + """ + FLASH_WRITE_SIZE = 0x4000 # matches MAX_WRITE_BLOCK in stub_loader.c + STATUS_BYTES_LENGTH = 2 # same as ESP8266, different to ESP32 ROM + IS_STUB = True + + def __init__(self, rom_loader): + self.secure_download_mode = rom_loader.secure_download_mode + self._port = rom_loader._port + self._trace_enabled = rom_loader._trace_enabled + self.flush_input() # resets _slip_reader + + +ESP32C3ROM.STUB_CLASS = ESP32C3StubLoader + + class ESPBOOTLOADER(object): """ These are constants related to software ESP bootloader, working with 'v2' image files """ @@ -1840,6 +1937,8 @@ def LoadFirmwareImage(chip, filename): return ESP32S2FirmwareImage(f) elif chip == "esp32s3beta2": return ESP32S3BETA2FirmwareImage(f) + elif chip == 'esp32c3': + return ESP32C3FirmwareImage(f) else: # Otherwise, ESP8266 so look at magic to determine the image type magic = ord(f.read(1)) f.seek(0) @@ -1949,7 +2048,7 @@ class BaseFirmwareImage(object): patch_offset = self.elf_sha256_offset - file_pos # Sanity checks if patch_offset < self.SEG_HEADER_LEN or patch_offset + self.SHA256_DIGEST_LEN > segment_len: - raise FatalError('Cannot place SHA256 digest on segment boundary' + + raise FatalError('Cannot place SHA256 digest on segment boundary' '(elf_sha256_offset=%d, file_pos=%d, segment_size=%d)' % (self.elf_sha256_offset, file_pos, segment_len)) if segment_data[patch_offset:patch_offset + self.SHA256_DIGEST_LEN] != b'\x00' * self.SHA256_DIGEST_LEN: @@ -2254,7 +2353,7 @@ class ESP32FirmwareImage(BaseFirmwareImage): last_addr = flash_segments[0].addr for segment in flash_segments[1:]: if segment.addr // self.IROM_ALIGN == last_addr // self.IROM_ALIGN: - raise FatalError(("Segment loaded at 0x%08x lands in same 64KB flash mapping as segment loaded at 0x%08x. " + + raise FatalError(("Segment loaded at 0x%08x lands in same 64KB flash mapping as segment loaded at 0x%08x. " "Can't generate binary. Suggest changing linker script or ELF to merge sections.") % (segment.addr, last_addr)) last_addr = segment.addr @@ -2372,7 +2471,7 @@ class ESP32FirmwareImage(BaseFirmwareImage): chip_id = fields[4] if chip_id != self.ROM_LOADER.IMAGE_CHIP_ID: - print(("Unexpected chip id in image. Expected %d but value was %d. " + + print(("Unexpected chip id in image. Expected %d but value was %d. " "Is this image for a different chip model?") % (self.ROM_LOADER.IMAGE_CHIP_ID, chip_id)) # reserved fields in the middle should all be zero @@ -2386,7 +2485,7 @@ class ESP32FirmwareImage(BaseFirmwareImage): raise RuntimeError("Invalid value for append_digest field (0x%02x). Should be 0 or 1.", append_digest) def save_extended_header(self, save_file): - def join_byte(ln,hn): + def join_byte(ln, hn): return (ln & 0x0F) + ((hn & 0x0F) << 4) append_digest = 1 if self.append_digest else 0 @@ -2423,6 +2522,14 @@ class ESP32S3BETA2FirmwareImage(ESP32FirmwareImage): ESP32S3BETA2ROM.BOOTLOADER_IMAGE = ESP32S3BETA2FirmwareImage +class ESP32C3FirmwareImage(ESP32FirmwareImage): + """ ESP32C3 Firmware Image almost exactly the same as ESP32FirmwareImage """ + ROM_LOADER = ESP32C3ROM + + +ESP32C3ROM.BOOTLOADER_IMAGE = ESP32C3FirmwareImage + + class ELFFile(object): SEC_TYPE_PROGBITS = 0x01 SEC_TYPE_STRTAB = 0x03 @@ -2445,17 +2552,17 @@ class ELFFile(object): # read the ELF file header LEN_FILE_HEADER = 0x34 try: - (ident,_type,machine,_version, - self.entrypoint,_phoff,shoff,_flags, - _ehsize, _phentsize,_phnum, shentsize, - shnum,shstrndx) = struct.unpack("<16sHHLLLLLHHHHHH", f.read(LEN_FILE_HEADER)) + (ident, _type, machine, _version, + self.entrypoint, _phoff, shoff, _flags, + _ehsize, _phentsize, _phnum, shentsize, + shnum, shstrndx) = struct.unpack("<16sHHLLLLLHHHHHH", f.read(LEN_FILE_HEADER)) except struct.error as e: raise FatalError("Failed to read a valid ELF header from %s: %s" % (self.name, e)) if byte(ident, 0) != 0x7f or ident[1:4] != b'ELF': raise FatalError("%s has invalid ELF magic header" % self.name) - if machine != 0x5e: - raise FatalError("%s does not appear to be an Xtensa ELF file. e_machine=%04x" % (self.name, machine)) + if machine not in [0x5e, 0xf3]: + raise FatalError("%s does not appear to be an Xtensa or an RISCV ELF file. e_machine=%04x" % (self.name, machine)) if shentsize != self.LEN_SEC_HEADER: raise FatalError("%s has unexpected section header entry size 0x%x (not 0x%x)" % (self.name, shentsize, self.LEN_SEC_HEADER)) if shnum == 0: @@ -2475,7 +2582,7 @@ class ELFFile(object): section_header_offsets = range(0, len(section_header), self.LEN_SEC_HEADER) def read_section_header(offs): - name_offs,sec_type,_flags,lma,sec_offs,size = struct.unpack_from(" flash_end: - raise FatalError(("File %s (length %d) at offset %d will not fit in %d bytes of flash. " + + raise FatalError(("File %s (length %d) at offset %d will not fit in %d bytes of flash. " "Use --flash-size argument, or change flashing address.") % (argfile.name, argfile.tell(), address, flash_end)) argfile.seek(0) @@ -2991,15 +3098,20 @@ def elf2image(args): if args.secure_pad_v2: image.secure_pad = '2' image.min_rev = 0 + elif args.chip == 'esp32c3': + image = ESP32C3FirmwareImage() + if args.secure_pad_v2: + image.secure_pad = '2' + image.min_rev = 0 elif args.version == '1': # ESP8266 image = ESP8266ROMFirmwareImage() else: image = ESP8266V2FirmwareImage() image.entrypoint = e.entrypoint image.segments = e.sections # ELFSection is a subclass of ImageSegment - image.flash_mode = {'qio':0, 'qout':1, 'dio':2, 'dout': 3}[args.flash_mode] + image.flash_mode = {'qio': 0, 'qout': 1, 'dio': 2, 'dout': 3}[args.flash_mode] image.flash_size_freq = image.ROM_LOADER.FLASH_SIZES[args.flash_size] - image.flash_size_freq += {'40m':0, '26m':1, '20m':2, '80m': 0xf}[args.flash_freq] + image.flash_size_freq += {'40m': 0, '26m': 1, '20m': 2, '80m': 0xf}[args.flash_freq] if args.elf_sha256_offset: image.elf_sha256 = e.sha256() @@ -3155,7 +3267,7 @@ def main(custom_commandline=None): parser.add_argument('--chip', '-c', help='Target chip type', type=lambda c: c.lower().replace('-', ''), # support ESP32-S2, etc. - choices=['auto', 'esp8266', 'esp32', 'esp32s2', 'esp32s3beta2'], + choices=['auto', 'esp8266', 'esp32', 'esp32s2', 'esp32s3beta2', 'esp32c3'], default=os.environ.get('ESPTOOL_CHIP', 'auto')) parser.add_argument( @@ -3209,7 +3321,7 @@ def main(custom_commandline=None): help='Run esptool {command} -h for additional help') def add_spi_connection_arg(parent): - parent.add_argument('--spi-connection', '-sc', help='ESP32-only argument. Override default SPI Flash connection. ' + + parent.add_argument('--spi-connection', '-sc', help='ESP32-only argument. Override default SPI Flash connection. ' 'Value can be SPI, HSPI or a comma-separated list of 5 I/O numbers to use for SPI flash (CLK,Q,D,HD,CS).', action=SpiConnectionAction) @@ -3271,7 +3383,7 @@ def main(custom_commandline=None): add_spi_flash_subparsers(parser_write_flash, is_elf2image=False) parser_write_flash.add_argument('--no-progress', '-p', help='Suppress progress output', action="store_true") - parser_write_flash.add_argument('--verify', help='Verify just-written data on flash ' + + parser_write_flash.add_argument('--verify', help='Verify just-written data on flash ' '(mostly superfluous, data is read back during flashing)', action='store_true') parser_write_flash.add_argument('--encrypt', help='Apply flash encryption when writing data (required correct efuse settings)', action='store_true') @@ -3279,8 +3391,10 @@ def main(custom_commandline=None): action='store_true') compress_args = parser_write_flash.add_mutually_exclusive_group(required=False) - compress_args.add_argument('--compress', '-z', help='Compress data in transfer (default unless --no-stub is specified)',action="store_true", default=None) - compress_args.add_argument('--no-compress', '-u', help='Disable data compression during transfer (default if --no-stub is specified)',action="store_true") + compress_args.add_argument('--compress', '-z', help='Compress data in transfer (default unless --no-stub is specified)', + action="store_true", default=None) + compress_args.add_argument('--no-compress', '-u', help='Disable data compression during transfer (default if --no-stub is specified)', + action="store_true") subparsers.add_parser( 'run', @@ -3304,8 +3418,8 @@ def main(custom_commandline=None): help='Create an application image from ELF file') parser_elf2image.add_argument('input', help='Input ELF file') parser_elf2image.add_argument('--output', '-o', help='Output filename prefix (for version 1 image), or filename (for version 2 single image)', type=str) - parser_elf2image.add_argument('--version', '-e', help='Output image version', choices=['1','2'], default='1') - parser_elf2image.add_argument('--min-rev', '-r', help='Minimum chip revision', choices=['0','1','2','3'], default='0') + parser_elf2image.add_argument('--version', '-e', help='Output image version', choices=['1', '2'], default='1') + parser_elf2image.add_argument('--min-rev', '-r', help='Minimum chip revision', choices=['0', '1', '2', '3'], default='0') parser_elf2image.add_argument('--secure-pad', action='store_true', help='Pad image so once signed it will end on a 64KB boundary. For Secure Boot v1 images only.') parser_elf2image.add_argument('--secure-pad-v2', action='store_true', @@ -3334,7 +3448,7 @@ def main(custom_commandline=None): help='Read SPI flash status register') add_spi_connection_arg(parser_read_status) - parser_read_status.add_argument('--bytes', help='Number of bytes to read (1-3)', type=int, choices=[1,2,3], default=2) + parser_read_status.add_argument('--bytes', help='Number of bytes to read (1-3)', type=int, choices=[1, 2, 3], default=2) parser_write_status = subparsers.add_parser( 'write_flash_status', @@ -3342,7 +3456,7 @@ def main(custom_commandline=None): add_spi_connection_arg(parser_write_status) parser_write_status.add_argument('--non-volatile', help='Write non-volatile bits (use with caution)', action='store_true') - parser_write_status.add_argument('--bytes', help='Number of status bytes to write (1-3)', type=int, choices=[1,2,3], default=2) + parser_write_status.add_argument('--bytes', help='Number of status bytes to write (1-3)', type=int, choices=[1, 2, 3], default=2) parser_write_status.add_argument('value', help='New value', type=arg_auto_int) parser_read_flash = subparsers.add_parser( @@ -3432,6 +3546,7 @@ def main(custom_commandline=None): 'esp32': ESP32ROM, 'esp32s2': ESP32S2ROM, 'esp32s3beta2': ESP32S3BETA2ROM, + 'esp32c3': ESP32C3ROM, }[args.chip] esp = chip_class(each_port, initial_baud, args.trace) esp.connect(args.before, args.connect_attempts) @@ -3526,7 +3641,7 @@ def expand_file_arguments(): for arg in sys.argv: if arg.startswith("@"): expanded = True - with open(arg[1:],"r") as f: + with open(arg[1:], "r") as f: for line in f.readlines(): new_args += shlex.split(line) else: @@ -3585,17 +3700,17 @@ class SpiConnectionAction(argparse.Action): if len(values) != 5: raise argparse.ArgumentError(self, '%s is not a valid list of comma-separate pin numbers. Must be 5 numbers - CLK,Q,D,HD,CS.' % value) try: - values = tuple(int(v,0) for v in values) + values = tuple(int(v, 0) for v in values) except ValueError: raise argparse.ArgumentError(self, '%s is not a valid argument. All pins must be numeric values' % values) if any([v for v in values if v > 33 or v < 0]): raise argparse.ArgumentError(self, 'Pin numbers must be in the range 0-33.') # encode the pin numbers as a 32-bit integer with packed 6-bit values, the same way ESP32 ROM takes them # TODO: make this less ESP32 ROM specific somehow... - clk,q,d,hd,cs = values + clk, q, d, hd, cs = values value = (hd << 24) | (cs << 18) | (d << 12) | (q << 6) | clk else: - raise argparse.ArgumentError(self, '%s is not a valid spi-connection value. ' + + raise argparse.ArgumentError(self, '%s is not a valid spi-connection value. ' 'Values are SPI, HSPI, or a sequence of 5 pin numbers CLK,Q,D,HD,CS).' % value) setattr(namespace, self.dest, value) @@ -3608,23 +3723,23 @@ class AddrFilenamePairAction(argparse.Action): def __call__(self, parser, namespace, values, option_string=None): # validate pair arguments pairs = [] - for i in range(0,len(values),2): + for i in range(0, len(values), 2): try: - address = int(values[i],0) + address = int(values[i], 0) except ValueError: - raise argparse.ArgumentError(self,'Address "%s" must be a number' % values[i]) + raise argparse.ArgumentError(self, 'Address "%s" must be a number' % values[i]) try: argfile = open(values[i + 1], 'rb') except IOError as e: raise argparse.ArgumentError(self, e) except IndexError: - raise argparse.ArgumentError(self,'Must be pairs of an address and the binary filename to write there') + raise argparse.ArgumentError(self, 'Must be pairs of an address and the binary filename to write there') pairs.append((address, argfile)) # Sort the addresses and check for overlapping end = 0 for address, argfile in sorted(pairs): - argfile.seek(0,2) # seek to end + argfile.seek(0, 2) # seek to end size = argfile.tell() argfile.seek(0) sector_start = address & ~(ESPLoader.FLASH_SECTOR_SIZE - 1) @@ -3807,6 +3922,39 @@ ScsrOmg0cMqruQMKMwFzwL0oHR/R8TU/grDGI08RejxgC1Dm4RGaiLahms40fAopv00IjvBEbJbFZsam m2T6N/hWrFYfXs8Y0Bsh/jScUB4CcZ3KhINozqBsulznagvOqb9zfMAyapgGqe82vOGPboWEm1MAIn6Ri78C0+nmBLzvOhBsbf1Wd/eLLzHKLjfnhhj9IoPSNgsmLafniEmFj/wx/uok/Ug6w7cNl2YKc+i9iAxI\ D+rFjfPb+PALWRe9NRLCLWR5tGbUnQPv+19OEWs4+0s+Wdl2RlzLL7pka3nv08iz0pfV/rMR/qDwp99XZgk/K1RxUaRFGReJe9PcrpYfZFDHY5W7wdqszOD3h9Z8tc9vQkJxUpTjMvn0P3ZbiIQ=\ """))) +ESP32C3ROM.STUB_CODE = eval(zlib.decompress(base64.b64decode(b""" +eNrFWmt727YV/iuOndhttvUBxCu8xJFaybLsOE37dPXch1lDgqSXrtMWR2mcrf7vw3suIiVbSr7tg2wJAIFzfc8F/O/BorlZHBzuVAfFjbHFjQ2fKgvf8TGvT4sbn4dvUXFTuuImp9H9MFi+CH/S78OfOAyl4X+z\ +G/54eTqmp4ubtr7MaI9n4Y95HvaPFmEU021xXdw0JvwaDKvxXjggf8g0VINZcVMPxl/PdsOzJinDwYPwCWvzfBj+RMVBMccJ2O992CGh/WiVy27DaDigCTRbF760YcYH4qs2Kw6Irt/Pwro6rK/42bbNsg0TevSI\ +RUOchk9dZ8Qp7wfiU5HZYCm88Amic+HjI/z/5lZoyS/A4xDET7pzTPifuxGL4P5D3bNbOZpPGPZo0JO639Z/AwXw7uG8la1V26S0bAwJBRW5iLcOSg1qcv5MdUsqJ0W+YFqq8LTPzrMH4V8gvLYZ2GHN89M2PwnL\ +6mkwiTqsaMQsrB9jmGUMm2qi0Yz4WAhdRhaBGOjPizTLhGV+02YiMdMx20B6bVFABHs7mbDXl4D1oCciIz6AZD3bdjjrKBzk9h6K+ZE9igGKMa7YoEmW9BqRoxevsVFP+R4SHIW/tmL6MJpbFkWeTDGNRx/A9GFC\ +ho0Ay1p3cYRF/VMhSThgIwfk7hgjgb1aRtr6gvkFLRAftEJb2o62ysDxQDFtFrGNgb62waZT9ZaeOYRHwEcqrmbE2Gy3RDlubXc6TKem04gwOmrA1tD6u1uAsH/ywVU2IYsUB8CKPJmQxMkXvnvmp8IZbDGb9uwX\ +XKnJ5FHPMwXHaqzGjx50fI0lI15vhXKSncFMiplB0JAbyNZ5CqDZE7tU9vubO3vVkUPHx2C5EfUNhEgCRtXM0tDxbFXiCIHeHgsEr6nwu5lz+i24QUfbINYGP4ygFTMidlfrD7DIRz3gmWCJrDoj2ofq1tFEtqz7\ +WzZCcC32+Cm8IYjB16mCTh9v+tgCMwM2iCmWMNuYwcSTHr4cywy81u3Du7HDJVs2A8yJ/0vYpsMb/wq8QjUIG08JaE+G+yLFhp3RiXSBG8AU8mSzE77UAgSJMjUkfyhobTFk+YTHC6KxGAsUxRgcjjmMfgp4bJ28\ +Z//QSL0SeL2NBGN98+xXDY/YY8zU3k89jzVeMMkmDAbVYMqstGTAO0esh9b+uR9hpmqQw3vOqxmTGWnh4IPJZiLIZIA7YKIUqkgiAoQ9UYw0T1HrN4kaTRqsL2866+v5xYLJg5H6PooRRl7dsseTICMmDzMwibw+\ +ZGuDPeE/gh+APMfiao8nGAVHGdOGE1gYLxkY7wvAExF1uxboV8MInNdIBBnororjm8QJR6ijbrWn1R0RVqCFn7uSTSCewXqoINzOuxCx9UjbHcnQD0FU2Uh9P4abD5TVx+wClTh3RWrxTJ2L+ZhA8y6ygcF4XX7I\ +noysolgQTzJ2xSp7/xboYW/fYeoNTk72RbOBhbphRmskJwCuUijKbmElUHMXmBYsjFwAWZEIhLflERPKSLPLlqqAtNnU99c3N8kv3QmEDOU0sFs5TpGDffZCLX1AqBNJMykbSHRC4urjvdOg0mR3G8CBiD1Z4WG1\ +efJM7NckvhNYVQ4fQ1XluJgH8GrTy/YnCPin2dJ1AajOv8MiVdybUwZZKCJPXnyKEDYyGEJTrzy5lYXXHAERYZxT8H04+tjL2xJQkzZ9hCVkFSNVs9ZMh7H3K/bYjYEBth5wj2h7kAHeW8781zYDuN3rkyUGzNu3\ +t+9+BNj8BMT7Gyy1EhijuLsLtN2Hy59CPgiaLYqzGjxHv3Ci1Yjll2IqqrYVYgZfcWpeQV1VyiAH3PGDTWwOmfQ8uQpLG/uBd8yTWm0015Jwuxt9wgYpvqS3/9m8J5m4P2TUJrv2dxeHg6/5EcJ2TbPs7Ehqv2Q9\ +c8vWXJMyFCvZZQ2V4pzWhOTVVOFb1rLnGgi4zDV92JeE3mUv2GzLT5sth0IKKGAHVbdzfvGGDaVSnHYjz8lMnvVn/jBihedEX/RBymsaWaHhx+00MLq/Yc/7XPkgLHoWe5sjXs4QSc/ZonOnM+22o1HgDm4lMYMj\ +JDH/aEp+rLGp/7azXoSqZvBUCvfNhNIgaf17TuTnnMYToQlAWeuYZfqLloKmv9ZOeRC7IWmhhsb/F6Nf44kOoy+Tdb/eImNatArkLx//AHv7oZhfgu7ZL8CV8vT0DJNnj59j8nkxPwfKvzrvJalVdjGaXb7tJI/8\ +EUyGcHEkriCQXSICx1I6DBica8NrvERoLxGa5kqmHSYN0G0GnDejrAE6wSi8mfOCjYhcVpo55s+yD2vlk2ZdmgFhrIIZN7IFClhnJ39HdkmpYL+QWy3CHlwdkXHtSA6txVuSD7XHhm/80JRzLGOPtdxV3S37ZzaZ\ +0F4SOLelYW3ZtfCKYnrXFCraVTknxjJKMwumfhsSwP+2YPRcxMs9Kf+z8FOyDkW482X/TnoPIBDuRaKDGVoaTPgLd04mW0y4pALoKjsTttAFsWsdGWTRedKOWlVE18ChXCbQuUCMpU5U/Y/suap1i6RLqQ5dpeGH\ +bXbZfciE75z5Q0Cm8bgbD3UXF9BzKZ8JGS1rCoshFMuJ7gJLqUaT+TJaXY9PnX5JzaJU6qD0nH72ivL1/GNbukWVj518wQJ0VKgQUXHHps8eilXadhcSf8Wl39Kv0HmwEqQaGficSua1NLJWyphtsdL1SiRKnZtP\ +cGc/Vxo7vLikik37ddpugVCy99LZ7EvH9KVTSneldlIZayBBIdpIAHLU/PTfHEGRlwIxTvWuesZBVbtuHwm1BKk3+9hfAZxZAtZ1E2Y5kRfXNCxtrRBLS5lJiwXNUOW+S+lRF7Koa9JqAy2W3nuS6ojjkRJR7XMN\ +jQyplFDbO2eVvadkx1iWPfG/Ale/IiF6DjENXNY6+kkt5xfFtQpYYA45cK6ZxB3rtYK8HK9EXwn3sNBoRRZNeGSfSJKJeGyP5cA6gwu75FjOlMYaENtbalhOPLdDKCB40XWdn+w9VGBHndUIUKKjhWS9TLpO746X\ +W5NUgnqtp0kjGBN59OiUuhEAQek7mmTHaxa8qtHXTEsp4axkW6FWCeLl8gAvB0DSJHNqCGfMUe2RE+TPEdJPwPsJgHCMK5vxFtzOqbxyAHpu+lC19Qi2fU5kONU/UJWYjkfHvouzwWh/lQlkH3ekQf1UEGsqIbZc\ +M+dlDWbZozxLu5F+ZjybdupsMjXLqUYK2ERd9dDeSRODk7mdPfZAHK8t6DJGa88+EsSi5uoOtdhzMRlrPEP8Us3SgTXciodYaoFRnbLLbo2TXiyaeqvM0xbJ5LGa+Eya/dq2TGV7UvWRDg6XG2eycbkiAhJ2S9Y8\ +6spY4XLpm73Mqif13E47FghZQLWv5YlGEfSHvruONXLP+sGG52qxtMGdGbmwadZAuJF6BKJueq1mKxSWtXSmkvG5dJ7FCny2nhD8HsVqyN9JIyHiHXLh2Rvq/V6xP6tEHGVMdoT9HxwC5usRulauRl8SxNW3WkjU\ +Qx5qcslbKnJc6Uluoq0xH2mbOVcajTh7FX14JNdeODUbvemO8XMp1Mztx270IwBr62Gv0QHArZs75cNa7QFufmbnN3mGpf9wJJdqrUBnI1YqODqWSFHLbaDpwObjocboO6uTbrXzJ17cOdWs7UTAqkYnKNdri+XT\ +4kJNs3y6pqfnolTdQPr6lPagKnGGS+GFXr7E0mGR68Aqk7uadpkyHPMANRkSqfGtNLZrjv3ku8GVudXAcWgqI0RuI+SWwtUyf75HYddP+6KOuhjVxMsYNe7usvlsO2bqUPPT2bkQQvfzFKYJB5u0S/lc9CHrSnVE\ +FPBGHhl9oc9IGRSQQayupYpJpaRN4iZXVEFnokTgrDmEPpSOvGEMvSNga15oysawTmCBsN2KzZWrsnSdNPrMdelNrumNlcsyOwlUzCWg0/8uxLHdLpXIFr/DG+DOhHtHvQilu7dy97Ay6UzvSTvrMiRo0SvuxxON\ +YjJXNdsSVatG3E+EephJeX3NY/zywuyeCBis41ryY4TxyI93kK75v/L7AVqd/RsMyC1K43rmIQl25bvOCHNbMkX8uETOSqzB63gXteT1A1ypEpfx3dwPcSR+xZFvM7y/6l6FYSZHlJm8ozcHdtkDSP1USVYr4d4Q\ +GFqpo1lUCwqQP3YXkSpChl3/kmx2zu0HSmXgpO17zkhp70T3ztOuc6Bqu5+T4SXlLatXlSL/1vUJmUnMKuW6G0JfXaGC4Bh6MKJC9sttp+Nz8acgnVBjNL0CIXnbE64qyIw3YtZs5UUlINRZdzvefzHDkmAupGlr\ +B1KpwYz1PRQ1a309hCnh4BrJRWbWNdHuEelpHwuONvNuzLFUDv7+TJk1/bPcO1teyIPfsiZyqy9J/KbXn2o1KRv5lqYUu2LeHnF7bWlvFI/w6lTYcM5tOG6Uh0xMu/hxd4JJTuQWvuUs5vrkazTlDqUjJ+bqYa7p\ +7nRwIi90sAkFEy2kmyCJn7ZMrH4igV8krptkWRqAzuCCBHAgIRtW4zVcIEBTulQLz9RkHVwgQlAgpXJDLwsSKXhN78UEoYsuBmq8MqAQTi9pELo4BuYmlVY2M/8vWKR0CZy6Y8IBUuLzQmJjJJcsGUtHz2bUX/FL\ +PK8RuZHXo/Qxszm+g6cnd71tc6qYb/S6J3L1HkvSQ2hnOBKVZisVw8PP9JHcaNETS1hDvyN9uY+WdIpCAG2RNp21aEqnp8dw/PRsHwVo+pz6Xbhme9X0X9qiz8Efd+iFx5/fLcprvPZoTZbF1uaxCTPNfHH9cTkY\ +RXEaButyUer7kbCr4FMHMtzfxdg0dia+/R/imbus\ +"""))) def _main(): diff --git a/tools/platformio-build-esp32.py b/tools/platformio-build-esp32.py index 521cd59a..3ee9d7bd 100644 --- a/tools/platformio-build-esp32.py +++ b/tools/platformio-build-esp32.py @@ -111,6 +111,8 @@ env.Append( join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "newlib", "platform_include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "freertos", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "freertos", "xtensa", "include"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp_hw_support", "include"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp_hw_support", "port", "esp32"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "heap", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "log", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "lwip", "include", "apps"), @@ -118,8 +120,10 @@ env.Append( join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "lwip", "lwip", "src", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "lwip", "port", "esp32", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "lwip", "port", "esp32", "include", "arch"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "lwip", "port", "esp32", "tcp_isn"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "soc", "include"), - join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "soc", "src", "esp32"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "soc", "esp32"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "soc", "esp32", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "hal", "esp32", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "hal", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp_rom", "include"), @@ -137,9 +141,6 @@ env.Append( 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", "esp_pm", "include"), - join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "soc", "soc", "esp32", "include"), - join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "soc", "soc", "include"), - join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "soc", "soc", "esp32", "private_include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "vfs", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp_wifi", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp_wifi", "esp32", "include"), @@ -178,6 +179,7 @@ env.Append( join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "nghttp", "port", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "nghttp", "nghttp2", "lib", "includes"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp-tls"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp-tls", "esp-tls-crypto"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp_adc_cal", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp_gdbstub", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32", "include", "esp_hid", "include"), @@ -240,7 +242,7 @@ env.Append( ], LIBS=[ - "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lasio", "-lbt", "-lcbor", "-lunity", "-lcmock", "-lcoap", "-lconsole", "-lnghttp", "-lesp-tls", "-lesp_adc_cal", "-lesp_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", "-lwifi_provisioning", "-lbutton", "-ljson_parser", "-ljson_generator", "-lesp_schedule", "-lesp_rainmaker", "-lqrcode", "-lws2812_led", "-lesp-face", "-lesp32-camera", "-lesp_littlefs", "-lfb_gfx", "-lasio", "-lcbor", "-lcmock", "-lunity", "-lcoap", "-lesp_gdbstub", "-lesp_hid", "-lesp_local_ctrl", "-lesp_websocket_client", "-lexpat", "-lfreemodbus", "-ljsmn", "-llibsodium", "-lbutton", "-lesp_rainmaker", "-lmqtt", "-lwifi_provisioning", "-lprotocomm", "-lprotobuf-c", "-ljson", "-ljson_parser", "-ljson_generator", "-lesp_schedule", "-lqrcode", "-lws2812_led", "-lesp-face", "-lpe", "-lfd", "-lfr", "-ldetection_cat_face", "-ldetection", "-ldl", "-lesp32-camera", "-lesp_littlefs", "-lfb_gfx", "-lbt", "-lbtdm_app", "-lesp_adc_cal", "-lmdns", "-lconsole", "-lfatfs", "-lwear_levelling", "-lopenssl", "-lspiffs", "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxt_hal", "-lm", "-lnewlib", "-lgcc", "-lstdc++", "-lpthread", "-lapp_trace", "-lgcov", "-lapp_trace", "-lgcov", "-lc" + "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lasio", "-lbt", "-lcbor", "-lunity", "-lcmock", "-lcoap", "-lconsole", "-lnghttp", "-lesp-tls", "-lesp_adc_cal", "-lesp_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", "-lwifi_provisioning", "-lbutton", "-ljson_parser", "-ljson_generator", "-lesp_schedule", "-lesp_rainmaker", "-lqrcode", "-lws2812_led", "-lesp-face", "-lesp32-camera", "-lesp_littlefs", "-lfb_gfx", "-lasio", "-lcbor", "-lcmock", "-lunity", "-lcoap", "-lesp_gdbstub", "-lesp_hid", "-lesp_local_ctrl", "-lesp_websocket_client", "-lexpat", "-lfreemodbus", "-ljsmn", "-llibsodium", "-lbutton", "-lesp_rainmaker", "-lmqtt", "-lwifi_provisioning", "-lprotocomm", "-lprotobuf-c", "-ljson", "-ljson_parser", "-ljson_generator", "-lesp_schedule", "-lqrcode", "-lws2812_led", "-lesp-face", "-lpe", "-lfd", "-lfr", "-ldetection_cat_face", "-ldetection", "-ldl", "-lesp32-camera", "-lesp_littlefs", "-lfb_gfx", "-lbt", "-lbtdm_app", "-lesp_adc_cal", "-lmdns", "-lconsole", "-lfatfs", "-lwear_levelling", "-lopenssl", "-lspiffs", "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lperfmon", "-lesp32", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxt_hal", "-lm", "-lnewlib", "-lgcc", "-lstdc++", "-lpthread", "-lapp_trace", "-lgcov", "-lapp_trace", "-lgcov", "-lc" ], CPPDEFINES=[ @@ -249,7 +251,7 @@ env.Append( "UNITY_INCLUDE_CONFIG_H", "WITH_POSIX", "_GNU_SOURCE", - ("IDF_VER", '\\"v4.3-dev-1561-g357a27760-dirty\\"'), + ("IDF_VER", '\\"v4.3-dev-1720-g494a124d9-dirty\\"'), "ESP_PLATFORM", "ARDUINO_ARCH_ESP32", "ESP32", diff --git a/tools/platformio-build-esp32s2.py b/tools/platformio-build-esp32s2.py index 6dd2b73e..33be0fd7 100644 --- a/tools/platformio-build-esp32s2.py +++ b/tools/platformio-build-esp32s2.py @@ -105,6 +105,9 @@ env.Append( join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "newlib", "platform_include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "freertos", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "freertos", "xtensa", "include"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_hw_support", "include"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_hw_support", "port", "esp32s2"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_hw_support", "port", "esp32s2", "private_include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "heap", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "log", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "lwip", "include", "apps"), @@ -112,9 +115,10 @@ env.Append( join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "lwip", "lwip", "src", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "lwip", "port", "esp32", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "lwip", "port", "esp32", "include", "arch"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "lwip", "port", "esp32", "tcp_isn"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "soc", "include"), - join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "soc", "src", "esp32s2"), - join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "soc", "src", "esp32s2", "include"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "soc", "esp32s2"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "soc", "esp32s2", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "hal", "esp32s2", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "hal", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_rom", "include"), @@ -132,9 +136,6 @@ env.Append( 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", "esp_pm", "include"), - join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "soc", "soc", "esp32s2", "include"), - join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "soc", "soc", "include"), - join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "soc", "soc", "esp32s2", "private_include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "vfs", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_wifi", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_wifi", "esp32s2", "include"), @@ -169,6 +170,7 @@ env.Append( join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "nghttp", "port", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "nghttp", "nghttp2", "lib", "includes"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp-tls"), + join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp-tls", "esp-tls-crypto"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_adc_cal", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_gdbstub", "include"), join(FRAMEWORK_DIR, "tools", "sdk", "esp32s2", "include", "esp_hid", "include"), @@ -226,7 +228,7 @@ env.Append( ], LIBS=[ - "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lasio", "-lcbor", "-lunity", "-lcmock", "-lcoap", "-lconsole", "-lnghttp", "-lesp-tls", "-lesp_adc_cal", "-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", "-lulp", "-lwifi_provisioning", "-lesp-face", "-lesp_littlefs", "-lfb_gfx", "-lasio", "-lcbor", "-lcmock", "-lunity", "-lcoap", "-lesp_gdbstub", "-lesp_hid", "-lesp_local_ctrl", "-lesp_https_server", "-lesp_websocket_client", "-lexpat", "-lfreemodbus", "-ljsmn", "-llibsodium", "-lmqtt", "-lperfmon", "-lwifi_provisioning", "-lprotocomm", "-lprotobuf-c", "-ljson", "-lesp-face", "-lpe", "-lfd", "-lfr", "-ldetection_cat_face", "-ldetection", "-ldl", "-lesp_littlefs", "-lfb_gfx", "-lesp_adc_cal", "-lmdns", "-lconsole", "-lfatfs", "-lwear_levelling", "-lopenssl", "-lspiffs", "-ltinyusb", "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32s2", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32s2", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32s2", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lsoc", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lsoc_esp32s2", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxt_hal", "-lesp32s2", "-lm", "-lnewlib", "-lgcc", "-lstdc++", "-lpthread", "-lapp_trace", "-lgcov", "-lapp_trace", "-lgcov", "-lc" + "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lasio", "-lcbor", "-lunity", "-lcmock", "-lcoap", "-lconsole", "-lnghttp", "-lesp-tls", "-lesp_adc_cal", "-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", "-lulp", "-lwifi_provisioning", "-lesp-face", "-lesp_littlefs", "-lfb_gfx", "-lasio", "-lcbor", "-lcmock", "-lunity", "-lcoap", "-lesp_gdbstub", "-lesp_hid", "-lesp_local_ctrl", "-lesp_https_server", "-lesp_websocket_client", "-lexpat", "-lfreemodbus", "-ljsmn", "-llibsodium", "-lmqtt", "-lperfmon", "-lwifi_provisioning", "-lprotocomm", "-lprotobuf-c", "-ljson", "-lesp-face", "-lpe", "-lfd", "-lfr", "-ldetection_cat_face", "-ldetection", "-ldl", "-lesp_littlefs", "-lfb_gfx", "-lesp_adc_cal", "-lmdns", "-lconsole", "-lfatfs", "-lwear_levelling", "-lopenssl", "-lspiffs", "-ltinyusb", "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxtensa", "-lesp_pm", "-lmbedtls", "-lefuse", "-lbootloader_support", "-lapp_update", "-lesp_ipc", "-lspi_flash", "-lnvs_flash", "-lpthread", "-lesp_system", "-lesp_rom", "-lhal", "-lvfs", "-lesp_eth", "-ltcpip_adapter", "-lesp_netif", "-lesp_event", "-lwpa_supplicant", "-lesp_wifi", "-llwip", "-llog", "-lheap", "-lsoc", "-lesp_hw_support", "-lesp_ringbuf", "-ldriver", "-lespcoredump", "-lesp32s2", "-lesp_common", "-lesp_timer", "-lfreertos", "-lnewlib", "-lcxx", "-lapp_trace", "-lnghttp", "-lesp-tls", "-ltcp_transport", "-lesp_http_client", "-lesp_http_server", "-lesp_https_ota", "-lsdmmc", "-lesp_serial_slave_link", "-lulp", "-lmbedtls", "-lmbedcrypto", "-lmbedx509", "-lcoexist", "-lcore", "-lespnow", "-lmesh", "-lnet80211", "-lpp", "-lrtc", "-lsmartconfig", "-lphy", "-lxt_hal", "-lesp32s2", "-lm", "-lnewlib", "-lgcc", "-lstdc++", "-lpthread", "-lapp_trace", "-lgcov", "-lapp_trace", "-lgcov", "-lc" ], CPPDEFINES=[ @@ -235,7 +237,7 @@ env.Append( "UNITY_INCLUDE_CONFIG_H", "WITH_POSIX", "_GNU_SOURCE", - ("IDF_VER", '\\"v4.3-dev-1561-g357a27760-dirty\\"'), + ("IDF_VER", '\\"v4.3-dev-1720-g494a124d9-dirty\\"'), "ESP_PLATFORM", "ARDUINO_ARCH_ESP32", "ESP32", diff --git a/tools/sdk/esp32/bin/bootloader_dio_40m.bin b/tools/sdk/esp32/bin/bootloader_dio_40m.bin index 8773a541..cf10655f 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 c382db85..84180b02 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 8773a541..cf10655f 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 c382db85..84180b02 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 8773a541..cf10655f 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 c382db85..84180b02 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 8773a541..cf10655f 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 c382db85..84180b02 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/bootloader_support/include/esp_app_format.h b/tools/sdk/esp32/include/bootloader_support/include/esp_app_format.h index a67c38ee..33b92cc9 100644 --- a/tools/sdk/esp32/include/bootloader_support/include/esp_app_format.h +++ b/tools/sdk/esp32/include/bootloader_support/include/esp_app_format.h @@ -13,6 +13,8 @@ // limitations under the License. #pragma once +#include + /** * @brief ESP chip ID * diff --git a/tools/sdk/esp32/include/bt/common/osi/include/osi/list.h b/tools/sdk/esp32/include/bt/common/osi/include/osi/list.h index d3373fcc..f066a1f2 100644 --- a/tools/sdk/esp32/include/bt/common/osi/include/osi/list.h +++ b/tools/sdk/esp32/include/bt/common/osi/include/osi/list.h @@ -22,6 +22,10 @@ list_t *list_new(list_free_cb callback); list_node_t *list_free_node(list_t *list, list_node_t *node); + +// similar with list_free_node, this function doesn't free the node data +list_node_t *list_delete_node(list_t *list, list_node_t *node); + // Frees the list. This function accepts NULL as an argument, in which case it // behaves like a no-op. void list_free(list_t *list); @@ -79,6 +83,9 @@ bool list_append(list_t *list, void *data); bool list_remove(list_t *list, void *data); +// similar with list_remove, but do not free the node data +bool list_delete(list_t *list, void *data); + // Removes all elements in the list. Calling this function will return the list to the // same state it was in after |list_new|. |list| may not be NULL. void list_clear(list_t *list); diff --git a/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api/esp_spp_api.h b/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api/esp_spp_api.h index 8f1c0608..c5362f3f 100644 --- a/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api/esp_spp_api.h +++ b/tools/sdk/esp32/include/bt/host/bluedroid/api/include/api/esp_spp_api.h @@ -27,7 +27,10 @@ typedef enum { ESP_SPP_FAILURE, /*!< Generic failure. */ ESP_SPP_BUSY, /*!< Temporarily can not handle this request. */ ESP_SPP_NO_DATA, /*!< no data. */ - ESP_SPP_NO_RESOURCE /*!< No more set pm control block */ + ESP_SPP_NO_RESOURCE, /*!< No more resource */ + ESP_SPP_NEED_INIT, /*!< SPP module shall init first */ + ESP_SPP_NEED_DEINIT, /*!< SPP module shall deinit first */ + ESP_SPP_NO_CONNECTION, /*!< connection may have been closed */ } esp_spp_status_t; /* Security Setting Mask, Suggest to use ESP_SPP_SEC_NONE, ESP_SPP_SEC_AUTHORIZE or ESP_SPP_SEC_AUTHENTICATE only.*/ diff --git a/tools/sdk/esp32/include/bt/include/esp_bt.h b/tools/sdk/esp32/include/bt/include/esp_bt.h index de8b0423..c06ab4e8 100644 --- a/tools/sdk/esp32/include/bt/include/esp_bt.h +++ b/tools/sdk/esp32/include/bt/include/esp_bt.h @@ -476,28 +476,6 @@ esp_err_t esp_bt_sleep_enable(void); */ esp_err_t esp_bt_sleep_disable(void); -/** - * @brief to check whether bluetooth controller is sleeping at the instant, if modem sleep is enabled - * - * Note that this function shall not be invoked before esp_bt_controller_enable() - * This function is supposed to be used ORIG mode of modem sleep - * - * @return true if in modem sleep state, false otherwise - */ -bool esp_bt_controller_is_sleeping(void); - -/** - * @brief request controller to wakeup from sleeping state during sleep mode - * - * Note that this function shall not be invoked before esp_bt_controller_enable() - * Note that this function is supposed to be used ORIG mode of modem sleep - * Note that after this request, bluetooth controller may again enter sleep as long as the modem sleep is enabled - * - * Profiling shows that it takes several milliseconds to wakeup from modem sleep after this request. - * Generally it takes longer if 32kHz XTAL is used than the main XTAL, due to the lower frequency of the former as the bluetooth low power clock source. - */ -void esp_bt_controller_wakeup_request(void); - /** * @brief Manually clear scan duplicate list * diff --git a/tools/sdk/esp32/include/config/sdkconfig.h b/tools/sdk/esp32/include/config/sdkconfig.h index dc7c99e1..a01253d7 100644 --- a/tools/sdk/esp32/include/config/sdkconfig.h +++ b/tools/sdk/esp32/include/config/sdkconfig.h @@ -237,7 +237,8 @@ #define CONFIG_ESP_NETIF_TCPIP_LWIP 1 #define CONFIG_ESP_NETIF_TCPIP_ADAPTER_COMPATIBLE_LAYER 1 #define CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT 1 -#define CONFIG_ESP_TIMER_RTC_USE 1 +#define CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER 1 +#define CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER 1 #define CONFIG_ESP_TIMER_TASK_STACK_SIZE 4096 #define CONFIG_ESP_TIMER_IMPL_TG0_LAC 1 #define CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE 1 @@ -331,8 +332,10 @@ #define CONFIG_LWIP_DHCPS_MAX_STATION_NUM 8 #define CONFIG_LWIP_NETIF_LOOPBACK 1 #define CONFIG_LWIP_LOOPBACK_MAX_PBUFS 8 +#define CONFIG_LWIP_TCP_ISN_HOOK 1 #define CONFIG_LWIP_MAX_ACTIVE_TCP 16 #define CONFIG_LWIP_MAX_LISTENING_TCP 16 +#define CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION 1 #define CONFIG_LWIP_TCP_MAXRTX 12 #define CONFIG_LWIP_TCP_SYNMAXRTX 6 #define CONFIG_LWIP_TCP_MSS 1436 @@ -448,6 +451,7 @@ #define CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP 1 #define CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP 1 #define CONFIG_SPI_FLASH_SUPPORT_GD_CHIP 1 +#define CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP 1 #define CONFIG_SPIFFS_MAX_PARTITIONS 3 #define CONFIG_SPIFFS_CACHE 1 #define CONFIG_SPIFFS_CACHE_WR 1 @@ -613,5 +617,5 @@ #define CONFIG_ULP_COPROC_ENABLED CONFIG_ESP32_ULP_COPROC_ENABLED #define CONFIG_ULP_COPROC_RESERVE_MEM CONFIG_ESP32_ULP_COPROC_RESERVE_MEM #define CONFIG_WARN_WRITE_STRINGS CONFIG_COMPILER_WARN_WRITE_STRINGS -#define CONFIG_ARDUINO_IDF_COMMIT "357a27760" +#define CONFIG_ARDUINO_IDF_COMMIT "494a124d9" #define CONFIG_ARDUINO_IDF_BRANCH "master" diff --git a/tools/sdk/esp32/include/driver/include/driver/dedic_gpio.h b/tools/sdk/esp32/include/driver/include/driver/dedic_gpio.h new file mode 100644 index 00000000..f7d9b4a6 --- /dev/null +++ b/tools/sdk/esp32/include/driver/include/driver/dedic_gpio.h @@ -0,0 +1,173 @@ +// Copyright 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 +// distributed under the License is distributed on an "AS IS" BASIS, +// 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. + +#pragma once + +#include +#include +#include "esp_err.h" +#include "esp_attr.h" +#include "soc/soc_caps.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Type of Dedicated GPIO bundle + */ +typedef struct dedic_gpio_bundle_t *dedic_gpio_bundle_handle_t; + +/** + * @brief Type of Dedicated GPIO bundle configuration + */ +typedef struct { + const int *gpio_array; /*!< Array of GPIO numbers, gpio_array[0] ~ gpio_array[size-1] <=> low_dedic_channel_num ~ high_dedic_channel_num */ + size_t array_size; /*!< Number of GPIOs in gpio_array */ + struct { + int in_en: 1; /*!< Enable input */ + int in_invert: 1; /*!< Invert input signal */ + int out_en: 1; /*!< Enable output */ + int out_invert: 1; /*!< Invert output signal */ + } flags; /*!< Flags to control specific behaviour of GPIO bundle */ +} dedic_gpio_bundle_config_t; + +/** + * @brief Create GPIO bundle and return the handle + * + * @param[in] config Configuration of GPIO bundle + * @param[out] ret_bundle Returned handle of the new created GPIO bundle + * @return + * - ESP_OK: Create GPIO bundle successfully + * - ESP_ERR_INVALID_ARG: Create GPIO bundle failed because of invalid argument + * - ESP_ERR_NO_MEM: Create GPIO bundle failed because of no capable memory + * - ESP_ERR_NOT_FOUND: Create GPIO bundle failed because of no enough continuous dedicated channels + * - ESP_FAIL: Create GPIO bundle failed because of other error + * + * @note One has to enable at least input or output mode in "config" parameter. + */ +esp_err_t dedic_gpio_new_bundle(const dedic_gpio_bundle_config_t *config, dedic_gpio_bundle_handle_t *ret_bundle); + +/** + * @brief Destory GPIO bundle + * + * @param[in] bundle Handle of GPIO bundle that returned from "dedic_gpio_new_bundle" + * @return + * - ESP_OK: Destory GPIO bundle successfully + * - ESP_ERR_INVALID_ARG: Destory GPIO bundle failed because of invalid argument + * - ESP_FAIL: Destory GPIO bundle failed because of other error + */ +esp_err_t dedic_gpio_del_bundle(dedic_gpio_bundle_handle_t bundle); + +/**@{*/ +/** + * @brief Get allocated channel mask + * + * @param[in] bundle Handle of GPIO bundle that returned from "dedic_gpio_new_bundle" + * @param[out] mask Returned mask value for on specific direction (in or out) + * @return + * - ESP_OK: Get channel mask successfully + * - ESP_ERR_INVALID_ARG: Get channel mask failed because of invalid argument + * - ESP_FAIL: Get channel mask failed because of other error + * + * @note Each bundle should have at least one mask (in or/and out), based on bundle configuration. + * @note With the returned mask, user can directly invoke LL function like "cpu_ll_write_dedic_gpio_mask" + * or write assembly code with dedicated GPIO instructions, to get better performance on GPIO manipulation. + */ +esp_err_t dedic_gpio_get_out_mask(dedic_gpio_bundle_handle_t bundle, uint32_t *mask); +esp_err_t dedic_gpio_get_in_mask(dedic_gpio_bundle_handle_t bundle, uint32_t *mask); +/**@}*/ + +/** + * @brief Write value to GPIO bundle + * + * @param[in] bundle Handle of GPIO bundle that returned from "dedic_gpio_new_bundle" + * @param[in] mask Mask of the GPIOs to be written in the given bundle + * @param[in] value Value to write to given GPIO bundle, low bit represents low member in the bundle + * + * @note The mask is seen from the view of GPIO bundle. + * For example, bundleA contains [GPIO10, GPIO12, GPIO17], to set GPIO17 individually, the mask should be 0x04. + * @note For performance reasons, this function doesn't check the validity of any parameters, and is placed in IRAM. + */ +void dedic_gpio_bundle_write(dedic_gpio_bundle_handle_t bundle, uint32_t mask, uint32_t value) IRAM_ATTR; + +/** + * @brief Read the value that output from the given GPIO bundle + * + * @param[in] bundle Handle of GPIO bundle that returned from "dedic_gpio_new_bundle" + * @return Value that output from the GPIO bundle, low bit represents low member in the bundle + * + * @note For performance reasons, this function doesn't check the validity of any parameters, and is placed in IRAM. + */ +uint32_t dedic_gpio_bundle_read_out(dedic_gpio_bundle_handle_t bundle) IRAM_ATTR; + +/** + * @brief Read the value that input to the given GPIO bundle + * + * @param[in] bundle Handle of GPIO bundle that returned from "dedic_gpio_new_bundle" + * @return Value that input to the GPIO bundle, low bit represents low member in the bundle + * + * @note For performance reasons, this function doesn't check the validity of any parameters, and is placed in IRAM. + */ +uint32_t dedic_gpio_bundle_read_in(dedic_gpio_bundle_handle_t bundle) IRAM_ATTR; + +#if SOC_DEDIC_GPIO_HAS_INTERRUPT + +/** + * @brief Supported type of dedicated GPIO interrupt + */ +typedef enum { + DEDIC_GPIO_INTR_NONE, /*!< No interrupt */ + DEDIC_GPIO_INTR_LOW_LEVEL = 2, /*!< Interrupt on low level */ + DEDIC_GPIO_INTR_HIGH_LEVEL, /*!< Interrupt on high level */ + DEDIC_GPIO_INTR_NEG_EDGE, /*!< Interrupt on negedge */ + DEDIC_GPIO_INTR_POS_EDGE, /*!< Interrupt on posedge */ + DEDIC_GPIO_INTR_BOTH_EDGE /*!< Interrupt on both negedge and posedge */ +} dedic_gpio_intr_type_t; + +/** + * @brief Type of dedicated GPIO ISR callback function + * + * @param bundle Handle of GPIO bundle that returned from "dedic_gpio_new_bundle" + * @param index Index of the GPIO in its corresponding bundle (count from 0) + * @param args User defined arguments for the callback function. It's passed through `dedic_gpio_bundle_set_interrupt_and_callback` + * @return If a high priority task is woken up by the callback function + */ +typedef bool (*dedic_gpio_isr_callback_t)(dedic_gpio_bundle_handle_t bundle, uint32_t index, void *args); + +/** + * @brief Set interrupt and callback function for GPIO bundle + * + * @param[in] bundle Handle of GPIO bundle that returned from "dedic_gpio_new_bundle" + * @param[in] mask Mask of the GPIOs in the given bundle + * @param[in] intr_type Interrupt type, set to DEDIC_GPIO_INTR_NONE can disable interrupt + * @param[in] cb_isr Callback function, which got invoked in ISR context. A NULL pointer here will bypass the callback + * @param[in] cb_args User defined argument to be passed to the callback function + * + * @note This function is only valid for bundle with input mode enabled. See "dedic_gpio_bundle_config_t" + * @note The mask is seen from the view of GPIO Bundle. + * For example, bundleA contains [GPIO10, GPIO12, GPIO17], to set GPIO17 individually, the mask should be 0x04. + * + * @return + * - ESP_OK: Set GPIO interrupt and callback function successfully + * - ESP_ERR_INVALID_ARG: Set GPIO interrupt and callback function failed because of invalid argument + * - ESP_FAIL: Set GPIO interrupt and callback function failed because of other error + */ +esp_err_t dedic_gpio_bundle_set_interrupt_and_callback(dedic_gpio_bundle_handle_t bundle, uint32_t mask, dedic_gpio_intr_type_t intr_type, dedic_gpio_isr_callback_t cb_isr, void *cb_args); + +#endif // SOC_DEDIC_GPIO_HAS_INTERRUPT + +#ifdef __cplusplus +} +#endif diff --git a/tools/sdk/esp32/include/driver/include/driver/spi_common_internal.h b/tools/sdk/esp32/include/driver/include/driver/spi_common_internal.h index 48b00166..51c7e01f 100644 --- a/tools/sdk/esp32/include/driver/include/driver/spi_common_internal.h +++ b/tools/sdk/esp32/include/driver/include/driver/spi_common_internal.h @@ -150,6 +150,14 @@ bool spicommon_dma_chan_in_use(int dma_chan); */ bool spicommon_dma_chan_free(int dma_chan); +/** + * @brief Connect SPI and DMA peripherals + * + * @param host SPI peripheral + * @param dma_chan DMA channel + */ +void spicommon_connect_spi_and_dma(spi_host_device_t host, int dma_chan); + /** * @brief Connect a SPI peripheral to GPIO pins * diff --git a/tools/sdk/esp32/include/efuse/include/esp32s3/esp_efuse.h b/tools/sdk/esp32/include/efuse/include/esp32s3/esp_efuse.h index c33eca5b..484ca444 100644 --- a/tools/sdk/esp32/include/efuse/include/esp32s3/esp_efuse.h +++ b/tools/sdk/esp32/include/efuse/include/esp32s3/esp_efuse.h @@ -56,6 +56,14 @@ typedef enum { EFUSE_BLK_MAX } esp_efuse_block_t; +struct esp_efuse_desc_s; + +/** + * @brief Given a key block in the range EFUSE_BLK_KEY0..EFUSE_BLK_KEY5, return + * efuse field for setting the key purpose + */ +const struct esp_efuse_desc_s **esp_efuse_get_purpose_field(esp_efuse_block_t block); + /** * @brief Type of coding scheme */ diff --git a/tools/sdk/esp32/include/esp-tls/esp-tls-crypto/esp_tls_crypto.h b/tools/sdk/esp32/include/esp-tls/esp-tls-crypto/esp_tls_crypto.h new file mode 100644 index 00000000..2336a9ce --- /dev/null +++ b/tools/sdk/esp32/include/esp-tls/esp-tls-crypto/esp_tls_crypto.h @@ -0,0 +1,68 @@ +// Copyright 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 +// distributed under the License is distributed on an "AS IS" BASIS, +// 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_TLS_CRYPTO_H +#define _ESP_TLS_CRYPTO_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Calculate sha1 sum + * esp-tls abstraction for crypto sha1 API, calculates the sha1 sum(digest) of + * the data provided in input which is of ilen size and returns + * a 20 char sha1 sum + * @param[in] input Input array + * @param[in] ilen Length of Input array + * @param[out] output calculated sha1 sum + * + * @return + * mbedtls stack:- + * - MBEDTLS_ERR_SHA1_BAD_INPUT_DATA on BAD INPUT. + * - 0 on success. + * wolfssl stack:- + * - -1 on failure. + * - 0 on success. + */ +int esp_crypto_sha1(const unsigned char *input, + size_t ilen, + unsigned char output[20]); + +/** + * @brief Do Base64 encode of the src data + * + * @param[in] dst destination buffer + * @param[in] dlen length of destination buffer + * @param[out] olen number of bytes written + * @param[in] src src buffer to be encoded + * @param[in] slen src buffer len + * + * @return + * mbedtls stack:- + * - MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL if buffer is of insufficient size. + * - 0 if successful. + * wolfssl stack:- + * - <0 on failure. + * - 0 if succcessful. + */ +int esp_crypto_base64_encode(unsigned char *dst, size_t dlen, + size_t *olen, const unsigned char *src, + size_t slen); + +#ifdef __cplusplus +} +#endif +#endif /* _ESP_TLS_CRYPTO_H */ diff --git a/tools/sdk/esp32/include/esp32/include/esp32/dport_access.h b/tools/sdk/esp32/include/esp32/include/esp32/dport_access.h index 8ea60c4c..0833cae8 100644 --- a/tools/sdk/esp32/include/esp32/include/esp32/dport_access.h +++ b/tools/sdk/esp32/include/esp32/include/esp32/dport_access.h @@ -11,12 +11,15 @@ // 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. +#include #include #ifndef _ESP_DPORT_ACCESS_H_ #define _ESP_DPORT_ACCESS_H_ +#include "xtensa/xtruntime.h" + #ifdef __cplusplus extern "C" { #endif diff --git a/tools/sdk/esp32/include/esp_common/include/esp_private/system_internal.h b/tools/sdk/esp32/include/esp_common/include/esp_private/system_internal.h index 4f5c90e8..12d7c2db 100644 --- a/tools/sdk/esp32/include/esp_common/include/esp_private/system_internal.h +++ b/tools/sdk/esp32/include/esp_common/include/esp_private/system_internal.h @@ -72,7 +72,7 @@ int64_t esp_system_get_time(void); /** * @brief Get the resolution of the time returned by `esp_system_get_time`. * - * @returns the resolution in microseconds + * @returns the resolution in nanoseconds */ uint32_t esp_system_get_time_resolution(void); diff --git a/tools/sdk/esp32/include/soc/include/soc/compare_set.h b/tools/sdk/esp32/include/esp_hw_support/include/soc/compare_set.h similarity index 96% rename from tools/sdk/esp32/include/soc/include/soc/compare_set.h rename to tools/sdk/esp32/include/esp_hw_support/include/soc/compare_set.h index 626752ad..b748fa9e 100644 --- a/tools/sdk/esp32/include/soc/include/soc/compare_set.h +++ b/tools/sdk/esp32/include/esp_hw_support/include/soc/compare_set.h @@ -21,6 +21,9 @@ #include "soc/soc_memory_layout.h" #include "xtensa/xtruntime.h" +#ifdef __cplusplus +extern "C" { +#endif static inline void __attribute__((always_inline)) compare_and_set_native(volatile uint32_t *addr, uint32_t compare, uint32_t *set) { @@ -53,4 +56,8 @@ static inline void __attribute__((always_inline)) compare_and_set_native(volatil void compare_and_set_extram(volatile uint32_t *addr, uint32_t compare, uint32_t *set); +#ifdef __cplusplus +} +#endif + #endif \ No newline at end of file diff --git a/tools/sdk/esp32/include/soc/include/soc/cpu.h b/tools/sdk/esp32/include/esp_hw_support/include/soc/cpu.h similarity index 100% rename from tools/sdk/esp32/include/soc/include/soc/cpu.h rename to tools/sdk/esp32/include/esp_hw_support/include/soc/cpu.h diff --git a/tools/sdk/esp32/include/soc/include/soc/rtc_wdt.h b/tools/sdk/esp32/include/esp_hw_support/include/soc/rtc_wdt.h similarity index 100% rename from tools/sdk/esp32/include/soc/include/soc/rtc_wdt.h rename to tools/sdk/esp32/include/esp_hw_support/include/soc/rtc_wdt.h diff --git a/tools/sdk/esp32s2/include/soc/include/soc/spinlock.h b/tools/sdk/esp32/include/esp_hw_support/include/soc/spinlock.h similarity index 98% rename from tools/sdk/esp32s2/include/soc/include/soc/spinlock.h rename to tools/sdk/esp32/include/esp_hw_support/include/soc/spinlock.h index aace1bbf..28685831 100644 --- a/tools/sdk/esp32s2/include/soc/include/soc/spinlock.h +++ b/tools/sdk/esp32/include/esp_hw_support/include/soc/spinlock.h @@ -21,6 +21,9 @@ #include "soc/compare_set.h" #include "xtensa/xtruntime.h" +#ifdef __cplusplus +extern "C" { +#endif #ifdef CONFIG_SPIRAM_WORKAROUND_NEED_VOLATILE_SPINLOCK #define NEED_VOLATILE_MUX volatile @@ -154,5 +157,9 @@ static inline void __attribute__((always_inline)) spinlock_release(spinlock_t *l #endif } +#ifdef __cplusplus +} +#endif + #endif diff --git a/tools/sdk/esp32s2/include/soc/include/soc_log.h b/tools/sdk/esp32/include/esp_hw_support/include/soc_log.h similarity index 99% rename from tools/sdk/esp32s2/include/soc/include/soc_log.h rename to tools/sdk/esp32/include/esp_hw_support/include/soc_log.h index 2934eb0c..2f2bfd4e 100644 --- a/tools/sdk/esp32s2/include/soc/include/soc_log.h +++ b/tools/sdk/esp32/include/esp_hw_support/include/soc_log.h @@ -14,6 +14,7 @@ #pragma once #include "esp_rom_sys.h" + /** * @file soc_log.h * @brief SOC library logging functions diff --git a/tools/sdk/esp32/include/soc/soc/esp32/private_include/regi2c_apll.h b/tools/sdk/esp32/include/esp_hw_support/port/esp32/private_include/regi2c_apll.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/private_include/regi2c_apll.h rename to tools/sdk/esp32/include/esp_hw_support/port/esp32/private_include/regi2c_apll.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/private_include/regi2c_bbpll.h b/tools/sdk/esp32/include/esp_hw_support/port/esp32/private_include/regi2c_bbpll.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/private_include/regi2c_bbpll.h rename to tools/sdk/esp32/include/esp_hw_support/port/esp32/private_include/regi2c_bbpll.h diff --git a/tools/sdk/esp32/include/soc/src/esp32/regi2c_ctrl.h b/tools/sdk/esp32/include/esp_hw_support/port/esp32/regi2c_ctrl.h similarity index 100% rename from tools/sdk/esp32/include/soc/src/esp32/regi2c_ctrl.h rename to tools/sdk/esp32/include/esp_hw_support/port/esp32/regi2c_ctrl.h diff --git a/tools/sdk/esp32/include/soc/src/esp32/rtc_clk_common.h b/tools/sdk/esp32/include/esp_hw_support/port/esp32/rtc_clk_common.h similarity index 96% rename from tools/sdk/esp32/include/soc/src/esp32/rtc_clk_common.h rename to tools/sdk/esp32/include/esp_hw_support/port/esp32/rtc_clk_common.h index 7b7f1bb2..b6ae3ca2 100644 --- a/tools/sdk/esp32/include/soc/src/esp32/rtc_clk_common.h +++ b/tools/sdk/esp32/include/esp_hw_support/port/esp32/rtc_clk_common.h @@ -14,6 +14,9 @@ #pragma once +#include +#include + #define MHZ (1000000) #ifdef __cplusplus diff --git a/tools/sdk/esp32/include/esp_rom/include/esp32/rom/rtc.h b/tools/sdk/esp32/include/esp_rom/include/esp32/rom/rtc.h index 83e62163..dcb46df8 100644 --- a/tools/sdk/esp32/include/esp_rom/include/esp32/rom/rtc.h +++ b/tools/sdk/esp32/include/esp_rom/include/esp32/rom/rtc.h @@ -45,8 +45,7 @@ extern "C" { ************************************************************************************* * rtc memory addr type size usage * 0x3ff61000(0x50000000) Slow SIZE_CP Co-Processor code/Reset Entry - * 0x3ff61000+SIZE_CP Slow 4096-SIZE_CP - * 0x3ff62800 Slow 4096 Reserved + * 0x3ff61000+SIZE_CP Slow 8192-SIZE_CP * * 0x3ff80000(0x400c0000) Fast 8192 deep sleep entry code * diff --git a/tools/sdk/esp32/include/esp_serial_slave_link/include/essl_spi/esp32s3_defs.h b/tools/sdk/esp32/include/esp_serial_slave_link/include/essl_spi/esp32s3_defs.h new file mode 100644 index 00000000..1de97d64 --- /dev/null +++ b/tools/sdk/esp32/include/esp_serial_slave_link/include/essl_spi/esp32s3_defs.h @@ -0,0 +1,38 @@ +// Copyright 2010-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 +// distributed under the License is distributed on an "AS IS" BASIS, +// 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. + + +#pragma once + +// NOTE: From the view of master +#define CMD_HD_WRBUF_REG 0x01 +#define CMD_HD_RDBUF_REG 0x02 +#define CMD_HD_WRDMA_REG 0x03 +#define CMD_HD_RDDMA_REG 0x04 + +#define CMD_HD_ONEBIT_MODE 0x00 +#define CMD_HD_DOUT_MODE 0x10 +#define CMD_HD_QOUT_MODE 0x20 +#define CMD_HD_DIO_MODE 0x50 +#define CMD_HD_QIO_MODE 0xA0 + +#define CMD_HD_SEG_END_REG 0x05 +#define CMD_HD_EN_QPI_REG 0x06 +#define CMD_HD_WR_END_REG 0x07 +#define CMD_HD_INT0_REG 0x08 +#define CMD_HD_INT1_REG 0x09 +#define CMD_HD_INT2_REG 0x0A +#define CMD_HD_EX_QPI_REG 0xDD + +#define SPI_SLAVE_HD_BUFFER_SIZE 64 \ No newline at end of file diff --git a/tools/sdk/esp32/include/esp_system/include/esp_sleep.h b/tools/sdk/esp32/include/esp_system/include/esp_sleep.h index e423e6df..8e5e4b39 100644 --- a/tools/sdk/esp32/include/esp_system/include/esp_sleep.h +++ b/tools/sdk/esp32/include/esp_system/include/esp_sleep.h @@ -93,8 +93,10 @@ esp_err_t esp_sleep_disable_wakeup_source(esp_sleep_source_t source); /** * @brief Enable wakeup by ULP coprocessor - * @note On ESP32, ULP wakeup source cannot be used when RTC_PERIPH power domain is forced - * to be powered on (ESP_PD_OPTION_ON) or when ext0 wakeup source is used. + * @note In revisions 0 and 1 of the ESP32, ULP wakeup source + * cannot be used when RTC_PERIPH power domain is forced + * to be powered on (ESP_PD_OPTION_ON) or when + * ext0 wakeup source is used. * @return * - ESP_OK on success * - ESP_ERR_NOT_SUPPORTED if additional current by touch (CONFIG_ESP32_RTC_EXT_CRYST_ADDIT_CURRENT) is enabled. @@ -116,6 +118,8 @@ esp_err_t esp_sleep_enable_timer_wakeup(uint64_t time_in_us); * * @note In revisions 0 and 1 of the ESP32, touch wakeup source * can not be used when RTC_PERIPH power domain is forced + * to be powered on (ESP_PD_OPTION_ON) or when ext0 wakeup + * source is used. * * @note The FSM mode of the touch button should be configured * as the timer trigger mode. diff --git a/tools/sdk/esp32/include/esp_wifi/include/esp_mesh_internal.h b/tools/sdk/esp32/include/esp_wifi/include/esp_mesh_internal.h index d10e2979..87f6a5f5 100644 --- a/tools/sdk/esp32/include/esp_wifi/include/esp_mesh_internal.h +++ b/tools/sdk/esp32/include/esp_wifi/include/esp_mesh_internal.h @@ -285,6 +285,15 @@ esp_err_t esp_mesh_get_announce_interval(int *short_ms, int *long_ms); */ esp_err_t esp_mesh_ps_get_duties(esp_mesh_ps_duties_t* ps_duties); +/** + * @brief Enable mesh print scan result + * + * @param[in] enable enable or not + * + * @return + * - ESP_OK + */ +esp_err_t esp_mesh_print_scan_result(bool enable); #ifdef __cplusplus } #endif diff --git a/tools/sdk/esp32/include/hal/esp32/include/hal/clk_gate_ll.h b/tools/sdk/esp32/include/hal/esp32/include/hal/clk_gate_ll.h index bedfc6e7..9c332daf 100644 --- a/tools/sdk/esp32/include/hal/esp32/include/hal/clk_gate_ll.h +++ b/tools/sdk/esp32/include/hal/esp32/include/hal/clk_gate_ll.h @@ -20,6 +20,7 @@ extern "C" { #include #include +#include "esp_attr.h" #include "soc/periph_defs.h" #include "soc/dport_reg.h" #include "soc/dport_access.h" diff --git a/tools/sdk/esp32/include/hal/esp32/include/hal/spi_flash_ll.h b/tools/sdk/esp32/include/hal/esp32/include/hal/spi_flash_ll.h index 656425e8..b9ab67ef 100644 --- a/tools/sdk/esp32/include/hal/esp32/include/hal/spi_flash_ll.h +++ b/tools/sdk/esp32/include/hal/esp32/include/hal/spi_flash_ll.h @@ -316,17 +316,18 @@ static inline void spi_flash_ll_set_mosi_bitlen(spi_dev_t *dev, uint32_t bitlen) } /** - * Set the command with fixed length (8 bits). + * Set the command. * * @param dev Beginning address of the peripheral registers. * @param command Command to send + * @param bitlen Length of the command */ -static inline void spi_flash_ll_set_command8(spi_dev_t *dev, uint8_t command) +static inline void spi_flash_ll_set_command(spi_dev_t *dev, uint8_t command, uint32_t bitlen) { dev->user.usr_command = 1; typeof(dev->user2) user2 = { .usr_command_value = command, - .usr_command_bitlen = (8 - 1), + .usr_command_bitlen = (bitlen - 1), }; dev->user2 = user2; } @@ -362,7 +363,14 @@ static inline void spi_flash_ll_set_addr_bitlen(spi_dev_t *dev, uint32_t bitlen) */ static inline void spi_flash_ll_set_usr_address(spi_dev_t *dev, uint32_t addr, int bit_len) { - dev->addr = (addr << (32 - bit_len)); + // The blank region should be all ones + if (bit_len >= 32) { + dev->addr = addr; + dev->slv_wr_status = UINT32_MAX; + } else { + uint32_t padding_ones = (bit_len == 32? 0 : UINT32_MAX >> bit_len); + dev->addr = (addr << (32 - bit_len)) | padding_ones; + } } /** @@ -388,6 +396,12 @@ static inline void spi_flash_ll_set_dummy(spi_dev_t *dev, uint32_t dummy_n) dev->user1.usr_dummy_cyclelen = dummy_n - 1; } +static inline void spi_flash_ll_set_hold(spi_dev_t *dev, uint32_t hold_n) +{ + dev->ctrl2.hold_time = hold_n; + dev->user.cs_hold = (hold_n > 0? 1: 0); +} + #ifdef __cplusplus } #endif diff --git a/tools/sdk/esp32/include/hal/esp32/include/hal/spi_ll.h b/tools/sdk/esp32/include/hal/esp32/include/hal/spi_ll.h index dd2b1d46..9c410d3d 100644 --- a/tools/sdk/esp32/include/hal/esp32/include/hal/spi_ll.h +++ b/tools/sdk/esp32/include/hal/esp32/include/hal/spi_ll.h @@ -121,11 +121,21 @@ static inline bool spi_ll_usr_is_done(spi_dev_t *hw) } /** - * Trigger start of user-defined transaction. + * Trigger start of user-defined transaction for master. * * @param hw Beginning address of the peripheral registers. */ -static inline void spi_ll_user_start(spi_dev_t *hw) +static inline void spi_ll_master_user_start(spi_dev_t *hw) +{ + hw->cmd.usr = 1; +} + +/** + * Trigger start of user-defined transaction for slave. + * + * @param hw Beginning address of the peripheral registers. + */ +static inline void spi_ll_slave_user_start(spi_dev_t *hw) { hw->cmd.usr = 1; } diff --git a/tools/sdk/esp32/include/hal/include/hal/rtc_io_hal.h b/tools/sdk/esp32/include/hal/include/hal/rtc_io_hal.h index 5301cb32..74208559 100644 --- a/tools/sdk/esp32/include/hal/include/hal/rtc_io_hal.h +++ b/tools/sdk/esp32/include/hal/include/hal/rtc_io_hal.h @@ -220,9 +220,10 @@ void rtcio_hal_set_direction_in_sleep(int rtcio_num, rtc_gpio_mode_t mode); #define rtcio_hal_wakeup_disable(rtcio_num) rtcio_ll_wakeup_disable(rtcio_num) /** - * Disable wakeup function from light sleep status for rtcio. + * Set specific logic level on an RTC IO pin as a wakeup trigger. * * @param rtcio_num The index of rtcio. 0 ~ SOC_RTCIO_PIN_COUNT. + * @param level Logic level (0) */ #define rtcio_hal_ext0_set_wakeup_pin(rtcio_num, level) rtcio_ll_ext0_set_wakeup_pin(rtcio_num, level) @@ -243,4 +244,4 @@ void rtcio_hal_isolate(int rtc_num); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/tools/sdk/esp32/include/soc/include/hal/sha_hal.h b/tools/sdk/esp32/include/hal/include/hal/sha_hal.h similarity index 100% rename from tools/sdk/esp32/include/soc/include/hal/sha_hal.h rename to tools/sdk/esp32/include/hal/include/hal/sha_hal.h diff --git a/tools/sdk/esp32/include/hal/include/hal/sigmadelta_types.h b/tools/sdk/esp32/include/hal/include/hal/sigmadelta_types.h index e4dce6fb..81023905 100644 --- a/tools/sdk/esp32/include/hal/include/hal/sigmadelta_types.h +++ b/tools/sdk/esp32/include/hal/include/hal/sigmadelta_types.h @@ -38,10 +38,12 @@ typedef enum { SIGMADELTA_CHANNEL_1, /*!< Sigma-delta channel 1 */ SIGMADELTA_CHANNEL_2, /*!< Sigma-delta channel 2 */ SIGMADELTA_CHANNEL_3, /*!< Sigma-delta channel 3 */ +#if SOC_SIGMADELTA_CHANNEL_NUM > 4 SIGMADELTA_CHANNEL_4, /*!< Sigma-delta channel 4 */ SIGMADELTA_CHANNEL_5, /*!< Sigma-delta channel 5 */ SIGMADELTA_CHANNEL_6, /*!< Sigma-delta channel 6 */ SIGMADELTA_CHANNEL_7, /*!< Sigma-delta channel 7 */ +#endif SIGMADELTA_CHANNEL_MAX, /*!< Sigma-delta channel max */ } sigmadelta_channel_t; @@ -57,4 +59,4 @@ typedef struct { #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/tools/sdk/esp32/include/hal/include/hal/spi_flash_hal.h b/tools/sdk/esp32/include/hal/include/hal/spi_flash_hal.h index 63062947..c17ed986 100644 --- a/tools/sdk/esp32/include/hal/include/hal/spi_flash_hal.h +++ b/tools/sdk/esp32/include/hal/include/hal/spi_flash_hal.h @@ -40,10 +40,17 @@ typedef struct { spi_flash_host_inst_t inst; ///< Host instance, containing host data and function pointer table. May update with the host (hardware version). spi_dev_t *spi; ///< Pointer to SPI peripheral registers (SP1, SPI2 or SPI3). Set before initialisation. int cs_num; ///< Which cs pin is used, 0-2. - int extra_dummy; ///< Pre-calculated extra dummy used for compensation + struct { + uint8_t extra_dummy; ///< Pre-calculated extra dummy used for compensation + uint8_t reserved1; ///< Reserved, set to 0. + uint8_t cs_hold; ///< CS hold time config used by the host + uint8_t reserved2; ///< Reserved, set to 0. + }; spi_flash_ll_clock_reg_t clock_conf; ///< Pre-calculated clock configuration value - uint32_t reserved_config[2]; ///< The ROM has reserved some memory for configurations with one set of driver code. (e.g. QPI mode, 64-bit address mode, etc.) + esp_flash_io_mode_t base_io_mode; ///< Default IO mode mask for common commands + uint32_t reserved_config[1]; ///< The ROM has reserved some memory for configurations with one set of driver code. (e.g. QPI mode, 64-bit address mode, etc.) } spi_flash_hal_context_t; +_Static_assert(sizeof(spi_flash_hal_context_t) == 28, "size of spi_flash_hal_context_t incorrect. Please check data compatibility with the ROM"); /// Configuration structure for the SPI driver. typedef struct { @@ -52,6 +59,7 @@ typedef struct { bool iomux; ///< Whether the IOMUX is used, used for timing compensation. int input_delay_ns; ///< Input delay on the MISO pin after the launch clock, used for timing compensation. esp_flash_speed_t speed;///< SPI flash clock speed to work at. + uint32_t cs_hold; ///< CS hold time config used by the host } spi_flash_hal_config_t; /** @@ -98,7 +106,7 @@ void spi_flash_hal_erase_chip(spi_flash_host_inst_t *host); /** * Erase a specific sector by its start address through the sector erase (20h) - * command. + * command. For 24bit address only. * * @param host The driver context. * @param start_address Start address of the sector to erase. @@ -107,7 +115,7 @@ void spi_flash_hal_erase_sector(spi_flash_host_inst_t *host, uint32_t start_addr /** * Erase a specific 64KB block by its start address through the 64KB block - * erase (D8h) command. + * erase (D8h) command. For 24bit address only. * * @param host The driver context. * @param start_address Start address of the block to erase. @@ -115,7 +123,7 @@ void spi_flash_hal_erase_sector(spi_flash_host_inst_t *host, uint32_t start_addr void spi_flash_hal_erase_block(spi_flash_host_inst_t *host, uint32_t start_address); /** - * Program a page of the flash using the page program (02h) command. + * Program a page of the flash using the page program (02h) command. For 24bit address only. * * @param host The driver context. * @param address Address of the page to program diff --git a/tools/sdk/esp32/include/hal/include/hal/spi_flash_types.h b/tools/sdk/esp32/include/hal/include/hal/spi_flash_types.h index d2efe3e8..b763ee3d 100644 --- a/tools/sdk/esp32/include/hal/include/hal/spi_flash_types.h +++ b/tools/sdk/esp32/include/hal/include/hal/spi_flash_types.h @@ -15,6 +15,7 @@ #pragma once #include +#include #include "esp_flash_err.h" #ifdef __cplusplus @@ -23,13 +24,19 @@ extern "C" { /** Definition of a common transaction. Also holds the return value. */ typedef struct { - uint8_t command; ///< Command to send, always 8bits + uint8_t reserved; ///< Reserved, must be 0. uint8_t mosi_len; ///< Output data length, in bytes uint8_t miso_len; ///< Input data length, in bytes uint8_t address_bitlen; ///< Length of address in bits, set to 0 if command does not need an address uint32_t address; ///< Address to perform operation on const uint8_t *mosi_data; ///< Output data to salve uint8_t *miso_data; ///< [out] Input data from slave, little endian + uint32_t flags; ///< Flags for this transaction. Set to 0 for now. +#define SPI_FLASH_TRANS_FLAG_CMD16 BIT(0) ///< Send command of 16 bits +#define SPI_FLASH_TRANS_FLAG_IGNORE_BASEIO BIT(1) ///< Not applying the basic io mode configuration for this transaction +#define SPI_FLASH_TRANS_FLAG_BYTE_SWAP BIT(2) ///< Used for DTR mode, to swap the bytes of a pair of rising/falling edge + uint16_t command; ///< Command to send + uint8_t dummy_bitlen; ///< Basic dummy bits to use } spi_flash_trans_t; /** @@ -53,6 +60,9 @@ typedef enum { ///Lowest speed supported by the driver, currently 5 MHz #define ESP_FLASH_SPEED_MIN ESP_FLASH_5MHZ +// These bits are not quite like "IO mode", but are able to be appended into the io mode and used by the HAL. +#define SPI_FLASH_CONFIG_CONF_BITS BIT(31) ///< OR the io_mode with this mask, to enable the dummy output feature or replace the first several dummy bits into address to meet the requirements of conf bits. (Used in DIO/QIO/OIO mode) + /** @brief Mode used for reading from SPI flash */ typedef enum { SPI_FLASH_SLOWRD = 0, ///< Data read using single I/O, some limits on speed diff --git a/tools/sdk/esp32/include/idf_test/include/esp32/idf_performance_target.h b/tools/sdk/esp32/include/idf_test/include/esp32/idf_performance_target.h index 2e906b02..3002ece2 100644 --- a/tools/sdk/esp32/include/idf_test/include/esp32/idf_performance_target.h +++ b/tools/sdk/esp32/include/idf_test/include/esp32/idf_performance_target.h @@ -18,8 +18,18 @@ #define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_NO_POLLING 30 #define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_NO_POLLING_NO_DMA 27 +#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B 50600 +#endif +#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B 50300 +#endif + +#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B 68900 +#endif #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_4B -#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_4B (359*1000) +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_4B (338*1000) #endif #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_2KB diff --git a/tools/sdk/esp32/include/idf_test/include/esp32s2/idf_performance_target.h b/tools/sdk/esp32/include/idf_test/include/esp32s2/idf_performance_target.h index 3c805b02..7f3d6ac2 100644 --- a/tools/sdk/esp32/include/idf_test/include/esp32s2/idf_performance_target.h +++ b/tools/sdk/esp32/include/idf_test/include/esp32s2/idf_performance_target.h @@ -17,6 +17,17 @@ #define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_NO_POLLING 32 #define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_NO_POLLING_NO_DMA 30 +#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B 53400 +#endif + +#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B 53600 +#endif + +#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B 64900 +#endif #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_4B #define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_4B (309*1000) #endif @@ -26,5 +37,5 @@ #endif #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_ERASE -#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_ERASE 40300 +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_ERASE 37500 #endif diff --git a/tools/sdk/esp32/include/idf_test/include/esp32s3/idf_performance_target.h b/tools/sdk/esp32/include/idf_test/include/esp32s3/idf_performance_target.h index 269a3c91..67a1ae3e 100644 --- a/tools/sdk/esp32/include/idf_test/include/esp32s3/idf_performance_target.h +++ b/tools/sdk/esp32/include/idf_test/include/esp32s3/idf_performance_target.h @@ -16,6 +16,17 @@ #define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_NO_POLLING 32 #define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_NO_POLLING_NO_DMA 30 +#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B 53400 +#endif + +#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B 53600 +#endif + +#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B 68900 +#endif #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_4B #define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_4B (309*1000) #endif diff --git a/tools/sdk/esp32/include/idf_test/include/idf_performance.h b/tools/sdk/esp32/include/idf_test/include/idf_performance.h index 844f9459..15a27a38 100644 --- a/tools/sdk/esp32/include/idf_test/include/idf_performance.h +++ b/tools/sdk/esp32/include/idf_test/include/idf_performance.h @@ -93,9 +93,7 @@ #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_WR_4B #define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_WR_4B 22200 #endif -#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B -#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B 53400 -#endif +// IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B in target file #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_WR_2KB #define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_WR_2KB (701*1000) #endif @@ -110,9 +108,7 @@ #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_WR_4B #define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_WR_4B 27400 #endif -#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B -#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B 53600 -#endif +// IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B in target file #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_WR_2KB #define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_WR_2KB (694*1000) #endif @@ -140,9 +136,7 @@ #endif // Some performance value based on the test against GD chip with single_core config. -#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B -#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B 68900 -#endif +// IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B in target file // IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_4B in target file #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_2KB #define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_2KB (475*1000) diff --git a/tools/sdk/esp32/include/lwip/include/apps/esp_ping.h b/tools/sdk/esp32/include/lwip/include/apps/esp_ping.h index 181921d3..86dcc6ac 100644 --- a/tools/sdk/esp32/include/lwip/include/apps/esp_ping.h +++ b/tools/sdk/esp32/include/lwip/include/apps/esp_ping.h @@ -54,7 +54,8 @@ typedef enum { PING_TARGET_RES_FN = 55, /**< ping result callback function */ PING_TARGET_RES_RESET = 56, /**< ping result statistic reset */ PING_TARGET_DATA_LEN = 57, /**< ping data length*/ - PING_TARGET_IP_TOS = 58 /**< ping QOS*/ + PING_TARGET_IP_TOS = 58, /**< ping QOS*/ + PING_TARGET_IF_INDEX = 59 /**< ping if index*/ } ping_target_id_t; typedef enum { diff --git a/tools/sdk/esp32/include/lwip/include/apps/ping/ping_sock.h b/tools/sdk/esp32/include/lwip/include/apps/ping/ping_sock.h index f2581fdb..2a37e583 100644 --- a/tools/sdk/esp32/include/lwip/include/apps/ping/ping_sock.h +++ b/tools/sdk/esp32/include/lwip/include/apps/ping/ping_sock.h @@ -71,6 +71,7 @@ typedef struct { ip_addr_t target_addr; /*!< Target IP address, either IPv4 or IPv6 */ uint32_t task_stack_size; /*!< Stack size of internal ping task */ uint32_t task_prio; /*!< Priority of internal ping task */ + uint32_t interface; /*!< Netif index, interface=0 means NETIF_NO_INDEX*/ } esp_ping_config_t; /** @@ -87,6 +88,7 @@ typedef struct { .target_addr = ip_addr_any_type, \ .task_stack_size = 2048, \ .task_prio = 2, \ + .interface = 0,\ } #define ESP_PING_COUNT_INFINITE (0) /*!< Set ping count to zero will ping target infinitely */ 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 5e178a20..709730af 100644 --- a/tools/sdk/esp32/include/lwip/port/esp32/include/lwipopts.h +++ b/tools/sdk/esp32/include/lwip/port/esp32/include/lwipopts.h @@ -420,6 +420,17 @@ */ #define LWIP_TCP_RTO_TIME CONFIG_LWIP_TCP_RTO_TIME +/** + * Set TCP hook for Initial Sequence Number (ISN) + */ +#ifdef CONFIG_LWIP_TCP_ISN_HOOK +#include +struct ip_addr; +u32_t lwip_hook_tcp_isn(const struct ip_addr *local_ip, u16_t local_port, + const struct ip_addr *remote_ip, u16_t remote_port); +#define LWIP_HOOK_TCP_ISN lwip_hook_tcp_isn +#endif + /* ---------------------------------- ---------- Pbuf options ---------- diff --git a/tools/sdk/esp32/include/lwip/port/esp32/tcp_isn/tcp_isn.h b/tools/sdk/esp32/include/lwip/port/esp32/tcp_isn/tcp_isn.h new file mode 100644 index 00000000..a40c4a1a --- /dev/null +++ b/tools/sdk/esp32/include/lwip/port/esp32/tcp_isn/tcp_isn.h @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2016 The MINIX 3 Project. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * Author: David van Moolenbroek + */ + +#ifndef LWIP_TCP_ISN_H +#define LWIP_TCP_ISN_H + +#include "lwip/opt.h" +#include "lwip/ip_addr.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void lwip_init_tcp_isn(u32_t boot_time, const u8_t *secret_16_bytes); +u32_t lwip_hook_tcp_isn(const ip_addr_t *local_ip, u16_t local_port, + const ip_addr_t *remote_ip, u16_t remote_port); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_TCP_ISN_H */ diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/adc_channel.h b/tools/sdk/esp32/include/soc/esp32/include/soc/adc_channel.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/adc_channel.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/adc_channel.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/apb_ctrl_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/apb_ctrl_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/apb_ctrl_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/apb_ctrl_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/apb_ctrl_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/apb_ctrl_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/apb_ctrl_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/apb_ctrl_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/bb_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/bb_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/bb_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/bb_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/boot_mode.h b/tools/sdk/esp32/include/soc/esp32/include/soc/boot_mode.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/boot_mode.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/boot_mode.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/can_periph.h b/tools/sdk/esp32/include/soc/esp32/include/soc/can_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/can_periph.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/can_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/can_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/can_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/can_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/can_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/clkout_channel.h b/tools/sdk/esp32/include/soc/esp32/include/soc/clkout_channel.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/clkout_channel.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/clkout_channel.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/dac_channel.h b/tools/sdk/esp32/include/soc/esp32/include/soc/dac_channel.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/dac_channel.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/dac_channel.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/dport_access.h b/tools/sdk/esp32/include/soc/esp32/include/soc/dport_access.h similarity index 99% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/dport_access.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/dport_access.h index fe7e70eb..7ce525dc 100644 --- a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/dport_access.h +++ b/tools/sdk/esp32/include/soc/esp32/include/soc/dport_access.h @@ -16,11 +16,11 @@ #define _DPORT_ACCESS_H_ #include + #include "esp_attr.h" #include "esp32/dport_access.h" -#include "soc.h" -#include "uart_reg.h" -#include "xtensa/xtruntime.h" + +#include "sdkconfig.h" #ifdef __cplusplus extern "C" { diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/dport_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/dport_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/dport_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/dport_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/efuse_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/efuse_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/efuse_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/efuse_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/emac_dma_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/emac_dma_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/emac_dma_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/emac_dma_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/emac_ext_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/emac_ext_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/emac_ext_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/emac_ext_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/emac_mac_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/emac_mac_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/emac_mac_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/emac_mac_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/fe_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/fe_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/fe_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/fe_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/frc_timer_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/frc_timer_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/frc_timer_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/frc_timer_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/gpio_pins.h b/tools/sdk/esp32/include/soc/esp32/include/soc/gpio_pins.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/gpio_pins.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/gpio_pins.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/gpio_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/gpio_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/gpio_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/gpio_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/gpio_sd_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/gpio_sd_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/gpio_sd_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/gpio_sd_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/gpio_sd_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/gpio_sd_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/gpio_sd_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/gpio_sd_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/gpio_sig_map.h b/tools/sdk/esp32/include/soc/esp32/include/soc/gpio_sig_map.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/gpio_sig_map.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/gpio_sig_map.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/gpio_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/gpio_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/gpio_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/gpio_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/hinf_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/hinf_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/hinf_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/hinf_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/hinf_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/hinf_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/hinf_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/hinf_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/host_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/host_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/host_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/host_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/host_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/host_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/host_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/host_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/hwcrypto_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/hwcrypto_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/hwcrypto_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/hwcrypto_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/i2c_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/i2c_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/i2c_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/i2c_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/i2c_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/i2c_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/i2c_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/i2c_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/i2s_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/i2s_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/i2s_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/i2s_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/i2s_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/i2s_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/i2s_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/i2s_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/io_mux_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/io_mux_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/io_mux_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/io_mux_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/ledc_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/ledc_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/ledc_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/ledc_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/ledc_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/ledc_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/ledc_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/ledc_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/mcpwm_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/mcpwm_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/mcpwm_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/mcpwm_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/mcpwm_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/mcpwm_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/mcpwm_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/mcpwm_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/nrx_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/nrx_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/nrx_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/nrx_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/pcnt_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/pcnt_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/pcnt_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/pcnt_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/pcnt_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/pcnt_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/pcnt_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/pcnt_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/periph_defs.h b/tools/sdk/esp32/include/soc/esp32/include/soc/periph_defs.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/periph_defs.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/periph_defs.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/pid.h b/tools/sdk/esp32/include/soc/esp32/include/soc/pid.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/pid.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/pid.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/rmt_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/rmt_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/rmt_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/rmt_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/rmt_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/rmt_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/rmt_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/rmt_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/rsa_caps.h b/tools/sdk/esp32/include/soc/esp32/include/soc/rsa_caps.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/rsa_caps.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/rsa_caps.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/rtc.h b/tools/sdk/esp32/include/soc/esp32/include/soc/rtc.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/rtc.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/rtc.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/rtc_cntl_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/rtc_cntl_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/rtc_cntl_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/rtc_cntl_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/rtc_cntl_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/rtc_cntl_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/rtc_cntl_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/rtc_cntl_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/rtc_i2c_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/rtc_i2c_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/rtc_i2c_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/rtc_i2c_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/rtc_io_channel.h b/tools/sdk/esp32/include/soc/esp32/include/soc/rtc_io_channel.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/rtc_io_channel.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/rtc_io_channel.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/rtc_io_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/rtc_io_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/rtc_io_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/rtc_io_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/rtc_io_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/rtc_io_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/rtc_io_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/rtc_io_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/sdio_slave_pins.h b/tools/sdk/esp32/include/soc/esp32/include/soc/sdio_slave_pins.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/sdio_slave_pins.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/sdio_slave_pins.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/sdmmc_pins.h b/tools/sdk/esp32/include/soc/esp32/include/soc/sdmmc_pins.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/sdmmc_pins.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/sdmmc_pins.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/sdmmc_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/sdmmc_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/sdmmc_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/sdmmc_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/sdmmc_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/sdmmc_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/sdmmc_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/sdmmc_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/sens_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/sens_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/sens_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/sens_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/sens_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/sens_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/sens_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/sens_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/sha_caps.h b/tools/sdk/esp32/include/soc/esp32/include/soc/sha_caps.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/sha_caps.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/sha_caps.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/slc_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/slc_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/slc_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/slc_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/slc_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/slc_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/slc_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/slc_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/soc.h b/tools/sdk/esp32/include/soc/esp32/include/soc/soc.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/soc.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/soc.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/soc_caps.h b/tools/sdk/esp32/include/soc/esp32/include/soc/soc_caps.h similarity index 98% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/soc_caps.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/soc_caps.h index 76d778e7..0f25c8e2 100644 --- a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/soc_caps.h +++ b/tools/sdk/esp32/include/soc/esp32/include/soc/soc_caps.h @@ -166,8 +166,8 @@ #define SOC_RTCIO_PIN_COUNT 18 /*-------------------------- SIGMA DELTA CAPS --------------------------------*/ -// ESP32 have 1 SIGMADELTA peripheral. -#define SOC_SIGMADELTA_NUM 1 +#define SOC_SIGMADELTA_NUM (1) // 1 sigma-delta peripheral +#define SOC_SIGMADELTA_CHANNEL_NUM (8) // 8 channels /*-------------------------- SPI CAPS ----------------------------------------*/ #define SOC_SPI_PERIPH_NUM 3 @@ -183,7 +183,7 @@ #define SOC_SPI_PERIPH_SUPPORT_MULTILINE_MODE(spi_host) ({(void)spi_host; 1;}) // Peripheral doesn't support output given level during its "dummy phase" -#define SOC_SPI_PERIPH_SUPPORT_CONTROL_DUMMY_OUTPUT(spi_host) ({(void)spi_host; 0;}) +#define SOC_SPI_PERIPH_SUPPORT_CONTROL_DUMMY_OUTPUT 0 /*-------------------------- TIMER GROUP CAPS --------------------------------*/ // No contents here diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/soc_pins.h b/tools/sdk/esp32/include/soc/esp32/include/soc/soc_pins.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/soc_pins.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/soc_pins.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/soc_ulp.h b/tools/sdk/esp32/include/soc/esp32/include/soc/soc_ulp.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/soc_ulp.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/soc_ulp.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/spi_pins.h b/tools/sdk/esp32/include/soc/esp32/include/soc/spi_pins.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/spi_pins.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/spi_pins.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/spi_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/spi_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/spi_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/spi_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/spi_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/spi_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/spi_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/spi_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/syscon_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/syscon_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/syscon_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/syscon_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/syscon_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/syscon_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/syscon_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/syscon_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/timer_group_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/timer_group_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/timer_group_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/timer_group_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/timer_group_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/timer_group_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/timer_group_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/timer_group_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/touch_sensor_channel.h b/tools/sdk/esp32/include/soc/esp32/include/soc/touch_sensor_channel.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/touch_sensor_channel.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/touch_sensor_channel.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/twai_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/twai_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/twai_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/twai_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/uart_channel.h b/tools/sdk/esp32/include/soc/esp32/include/soc/uart_channel.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/uart_channel.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/uart_channel.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/uart_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/uart_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/uart_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/uart_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/uart_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/uart_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/uart_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/uart_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/uhci_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/uhci_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/uhci_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/uhci_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/uhci_struct.h b/tools/sdk/esp32/include/soc/esp32/include/soc/uhci_struct.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/uhci_struct.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/uhci_struct.h diff --git a/tools/sdk/esp32/include/soc/soc/esp32/include/soc/wdev_reg.h b/tools/sdk/esp32/include/soc/esp32/include/soc/wdev_reg.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/esp32/include/soc/wdev_reg.h rename to tools/sdk/esp32/include/soc/esp32/include/soc/wdev_reg.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/adc_periph.h b/tools/sdk/esp32/include/soc/include/soc/adc_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/adc_periph.h rename to tools/sdk/esp32/include/soc/include/soc/adc_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/dac_periph.h b/tools/sdk/esp32/include/soc/include/soc/dac_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/dac_periph.h rename to tools/sdk/esp32/include/soc/include/soc/dac_periph.h diff --git a/tools/sdk/esp32/include/soc/include/soc/dedic_gpio_periph.h b/tools/sdk/esp32/include/soc/include/soc/dedic_gpio_periph.h new file mode 100644 index 00000000..f6eeeeb5 --- /dev/null +++ b/tools/sdk/esp32/include/soc/include/soc/dedic_gpio_periph.h @@ -0,0 +1,41 @@ +// Copyright 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 +// distributed under the License is distributed on an "AS IS" BASIS, +// 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. + +#pragma once + +#include +#include "soc/soc.h" +#include "soc/soc_caps.h" +#include "soc/periph_defs.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if SOC_DEDICATED_GPIO_SUPPORTED +typedef struct { + const periph_module_t module; // Peripheral module + const int irq; // Interrupt resource (-1 means no interrupt supported) + struct { + const int in_sig_per_channel[SOC_DEDIC_GPIO_IN_CHANNELS_NUM]; + const int out_sig_per_channel[SOC_DEDIC_GPIO_OUT_CHANNELS_NUM]; + } cores[SOC_CPU_CORES_NUM]; // Signals routed to/from GPIO matrix +} dedic_gpio_signal_conn_t; + +extern const dedic_gpio_signal_conn_t dedic_gpio_periph_signals; +#endif // SOC_DEDICATED_GPIO_SUPPORTED + +#ifdef __cplusplus +} +#endif diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/efuse_periph.h b/tools/sdk/esp32/include/soc/include/soc/efuse_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/efuse_periph.h rename to tools/sdk/esp32/include/soc/include/soc/efuse_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/emac_periph.h b/tools/sdk/esp32/include/soc/include/soc/emac_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/emac_periph.h rename to tools/sdk/esp32/include/soc/include/soc/emac_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/gpio_periph.h b/tools/sdk/esp32/include/soc/include/soc/gpio_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/gpio_periph.h rename to tools/sdk/esp32/include/soc/include/soc/gpio_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/hwcrypto_periph.h b/tools/sdk/esp32/include/soc/include/soc/hwcrypto_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/hwcrypto_periph.h rename to tools/sdk/esp32/include/soc/include/soc/hwcrypto_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/i2c_periph.h b/tools/sdk/esp32/include/soc/include/soc/i2c_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/i2c_periph.h rename to tools/sdk/esp32/include/soc/include/soc/i2c_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/i2s_periph.h b/tools/sdk/esp32/include/soc/include/soc/i2s_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/i2s_periph.h rename to tools/sdk/esp32/include/soc/include/soc/i2s_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/interrupts.h b/tools/sdk/esp32/include/soc/include/soc/interrupts.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/interrupts.h rename to tools/sdk/esp32/include/soc/include/soc/interrupts.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/ledc_periph.h b/tools/sdk/esp32/include/soc/include/soc/ledc_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/ledc_periph.h rename to tools/sdk/esp32/include/soc/include/soc/ledc_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/mcpwm_periph.h b/tools/sdk/esp32/include/soc/include/soc/mcpwm_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/mcpwm_periph.h rename to tools/sdk/esp32/include/soc/include/soc/mcpwm_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/pcnt_periph.h b/tools/sdk/esp32/include/soc/include/soc/pcnt_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/pcnt_periph.h rename to tools/sdk/esp32/include/soc/include/soc/pcnt_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/rmt_periph.h b/tools/sdk/esp32/include/soc/include/soc/rmt_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/rmt_periph.h rename to tools/sdk/esp32/include/soc/include/soc/rmt_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/rtc_cntl_periph.h b/tools/sdk/esp32/include/soc/include/soc/rtc_cntl_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/rtc_cntl_periph.h rename to tools/sdk/esp32/include/soc/include/soc/rtc_cntl_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/rtc_io_periph.h b/tools/sdk/esp32/include/soc/include/soc/rtc_io_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/rtc_io_periph.h rename to tools/sdk/esp32/include/soc/include/soc/rtc_io_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/rtc_periph.h b/tools/sdk/esp32/include/soc/include/soc/rtc_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/rtc_periph.h rename to tools/sdk/esp32/include/soc/include/soc/rtc_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/sdio_slave_periph.h b/tools/sdk/esp32/include/soc/include/soc/sdio_slave_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/sdio_slave_periph.h rename to tools/sdk/esp32/include/soc/include/soc/sdio_slave_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/sdmmc_periph.h b/tools/sdk/esp32/include/soc/include/soc/sdmmc_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/sdmmc_periph.h rename to tools/sdk/esp32/include/soc/include/soc/sdmmc_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/sens_periph.h b/tools/sdk/esp32/include/soc/include/soc/sens_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/sens_periph.h rename to tools/sdk/esp32/include/soc/include/soc/sens_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/sigmadelta_periph.h b/tools/sdk/esp32/include/soc/include/soc/sigmadelta_periph.h similarity index 68% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/sigmadelta_periph.h rename to tools/sdk/esp32/include/soc/include/soc/sigmadelta_periph.h index 63ec3a41..75e723c7 100644 --- a/tools/sdk/esp32s2/include/soc/soc/include/soc/sigmadelta_periph.h +++ b/tools/sdk/esp32/include/soc/include/soc/sigmadelta_periph.h @@ -13,5 +13,24 @@ // limitations under the License. #pragma once -#include "soc/gpio_sd_struct.h" + +#include +#include "soc/soc_caps.h" #include "soc/gpio_sd_reg.h" +#include "soc/gpio_sd_struct.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + struct { + const uint32_t sd_sig; + } channels[SOC_SIGMADELTA_CHANNEL_NUM]; +} sigma_delta_signal_conn_t; + +extern const sigma_delta_signal_conn_t sigma_delta_periph_signals; + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/spi_periph.h b/tools/sdk/esp32/include/soc/include/soc/spi_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/spi_periph.h rename to tools/sdk/esp32/include/soc/include/soc/spi_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/syscon_periph.h b/tools/sdk/esp32/include/soc/include/soc/syscon_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/syscon_periph.h rename to tools/sdk/esp32/include/soc/include/soc/syscon_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/timer_periph.h b/tools/sdk/esp32/include/soc/include/soc/timer_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/timer_periph.h rename to tools/sdk/esp32/include/soc/include/soc/timer_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/touch_sensor_periph.h b/tools/sdk/esp32/include/soc/include/soc/touch_sensor_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/touch_sensor_periph.h rename to tools/sdk/esp32/include/soc/include/soc/touch_sensor_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/twai_periph.h b/tools/sdk/esp32/include/soc/include/soc/twai_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/twai_periph.h rename to tools/sdk/esp32/include/soc/include/soc/twai_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/uart_periph.h b/tools/sdk/esp32/include/soc/include/soc/uart_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/uart_periph.h rename to tools/sdk/esp32/include/soc/include/soc/uart_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/uhci_periph.h b/tools/sdk/esp32/include/soc/include/soc/uhci_periph.h similarity index 100% rename from tools/sdk/esp32/include/soc/soc/include/soc/uhci_periph.h rename to tools/sdk/esp32/include/soc/include/soc/uhci_periph.h diff --git a/tools/sdk/esp32/include/spi_flash/include/memspi_host_driver.h b/tools/sdk/esp32/include/spi_flash/include/memspi_host_driver.h index 46336f67..80cc5523 100644 --- a/tools/sdk/esp32/include/spi_flash/include/memspi_host_driver.h +++ b/tools/sdk/esp32/include/spi_flash/include/memspi_host_driver.h @@ -107,7 +107,7 @@ esp_err_t memspi_host_flush_cache(spi_flash_host_inst_t *host, uint32_t addr, ui void memspi_host_erase_chip(spi_flash_host_inst_t *host); /** - * Erase a sector starting from a given address. + * Erase a sector starting from a given address. For 24bit address only. * * @param host The driver context. * @param start_address Starting address of the sector. @@ -115,7 +115,7 @@ void memspi_host_erase_chip(spi_flash_host_inst_t *host); void memspi_host_erase_sector(spi_flash_host_inst_t *host, uint32_t start_address); /** - * Erase a block starting from a given address. + * Erase a block starting from a given address. For 24bit address only. * * @param host The driver context. * @param start_address Starting address of the block. @@ -123,7 +123,7 @@ void memspi_host_erase_sector(spi_flash_host_inst_t *host, uint32_t start_addres void memspi_host_erase_block(spi_flash_host_inst_t *host, uint32_t start_address); /** - * Program a page with contents of a buffer. + * Program a page with contents of a buffer. For 24bit address only. * * @param host The driver context. * @param buffer Buffer which contains the data to be flashed. diff --git a/tools/sdk/esp32/include/spi_flash/include/spi_flash_chip_driver.h b/tools/sdk/esp32/include/spi_flash/include/spi_flash_chip_driver.h index 7d875b4c..349adbe5 100644 --- a/tools/sdk/esp32/include/spi_flash/include/spi_flash_chip_driver.h +++ b/tools/sdk/esp32/include/spi_flash/include/spi_flash_chip_driver.h @@ -29,6 +29,10 @@ typedef struct { uint32_t page_program_timeout; ///< Timeout for page program operation } flash_chip_op_timeout_t; +typedef enum { + SPI_FLASH_REG_STATUS = 1, +} spi_flash_register_t; + /** @brief SPI flash chip driver definition structure. * * The chip driver structure contains chip-specific pointers to functions to perform SPI flash operations, and some @@ -167,6 +171,17 @@ struct spi_flash_chip_t { * enabled, otherwise disabled */ esp_err_t (*get_io_mode)(esp_flash_t *chip, esp_flash_io_mode_t* out_io_mode); + + /* + * Read the chip ID. Called when chip driver is set, but we want to know the exact chip id (to + * get the size, etc.). + */ + esp_err_t (*read_id)(esp_flash_t *chip, uint32_t* out_chip_id); + + /* + * Read the requested register (status, etc.). + */ + esp_err_t (*read_reg)(esp_flash_t *chip, spi_flash_register_t reg_id, uint32_t* out_reg); }; /* Pointer to an array of pointers to all known drivers for flash chips. This array is used diff --git a/tools/sdk/esp32/include/spi_flash/include/spi_flash_chip_generic.h b/tools/sdk/esp32/include/spi_flash/include/spi_flash_chip_generic.h index 372a1e1b..1c76ec1e 100644 --- a/tools/sdk/esp32/include/spi_flash/include/spi_flash_chip_generic.h +++ b/tools/sdk/esp32/include/spi_flash/include/spi_flash_chip_generic.h @@ -189,6 +189,16 @@ esp_err_t spi_flash_chip_generic_set_write_protect(esp_flash_t *chip, bool write esp_err_t spi_flash_chip_generic_get_write_protect(esp_flash_t *chip, bool *out_write_protect); #define ESP_FLASH_CHIP_GENERIC_NO_TIMEOUT -1 +/** + * @brief Send commands to read one of the reg of the chip + * + * @param chip Pointer to SPI flash chip to use. If NULL, esp_flash_default_chip is substituted. + * @param reg_id Type of the register to read + * @param out_reg Output of the register value + * @return esp_err_t Error code passed from the ``read_status`` function of host driver. + */ +esp_err_t spi_flash_chip_generic_read_reg(esp_flash_t* chip, spi_flash_register_t reg_id, uint32_t* out_reg); + /** * @brief Read flash status via the RDSR command and wait for bit 0 (write in * progress bit) to be cleared. @@ -362,13 +372,14 @@ esp_err_t spi_flash_common_set_io_mode(esp_flash_t *chip, esp_flash_wrsr_func_t * transactions. Also prepare the command to be sent in read functions. * * @param chip Pointer to SPI flash chip to use. If NULL, esp_flash_default_chip is substituted. + * @param addr_32bit Whether 32 bit commands will be used (Currently only W25Q256 is supported) * * @return * - ESP_OK if success * - ESP_ERR_FLASH_NOT_INITIALISED if chip not initialized properly * - or other error passed from the ``configure_host_mode`` function of host driver */ -esp_err_t spi_flash_chip_generic_config_host_io_mode(esp_flash_t *chip); +esp_err_t spi_flash_chip_generic_config_host_io_mode(esp_flash_t *chip, bool addr_32bit); /// Default timeout configuration used by most chips const flash_chip_op_timeout_t spi_flash_chip_generic_timeout; \ No newline at end of file diff --git a/tools/sdk/esp32/include/spi_flash/include/spi_flash_chip_winbond.h b/tools/sdk/esp32/include/spi_flash/include/spi_flash_chip_winbond.h new file mode 100644 index 00000000..23dc19c2 --- /dev/null +++ b/tools/sdk/esp32/include/spi_flash/include/spi_flash_chip_winbond.h @@ -0,0 +1,27 @@ +// 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 +// distributed under the License is distributed on an "AS IS" BASIS, +// 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. + +#pragma once + +#include +#include "esp_flash.h" +#include "spi_flash_chip_driver.h" + + +/** + * Winbond SPI flash chip_drv, uses all the above functions for its operations. In + * default autodetection, this is used as a catchall if a more specific chip_drv + * is not found. + */ +extern const spi_flash_chip_t esp_flash_chip_winbond; diff --git a/tools/sdk/esp32/include/xtensa/include/esp_debug_helpers.h b/tools/sdk/esp32/include/xtensa/include/esp_debug_helpers.h index d088ddee..5bdc028c 100644 --- a/tools/sdk/esp32/include/xtensa/include/esp_debug_helpers.h +++ b/tools/sdk/esp32/include/xtensa/include/esp_debug_helpers.h @@ -22,7 +22,7 @@ extern "C" { #include #include "esp_err.h" -#include "soc/soc.h" +#include "soc/soc.h" // [refactor-todo] IDF-2297 #define ESP_WATCHPOINT_LOAD 0x40000000 #define ESP_WATCHPOINT_STORE 0x80000000 diff --git a/tools/sdk/esp32/include/xtensa/include/xtensa-debug-module.h b/tools/sdk/esp32/include/xtensa/include/xtensa-debug-module.h index 6e44d782..8ac47a9c 100644 --- a/tools/sdk/esp32/include/xtensa/include/xtensa-debug-module.h +++ b/tools/sdk/esp32/include/xtensa/include/xtensa-debug-module.h @@ -1,6 +1,6 @@ #ifndef XTENSA_DEBUG_MODULE_H #define XTENSA_DEBUG_MODULE_H -#include "soc/cpu.h" + /* ERI registers / OCD offsets and field definitions */ diff --git a/tools/sdk/esp32/ld/esp32.ld b/tools/sdk/esp32/ld/esp32.ld index 7ecc9483..22544af7 100644 --- a/tools/sdk/esp32/ld/esp32.ld +++ b/tools/sdk/esp32/ld/esp32.ld @@ -95,7 +95,7 @@ MEMORY Start of RTC slow memory is reserved for ULP co-processor code + data, if enabled. */ rtc_slow_seg(RW) : org = 0x50000000 + CONFIG_ESP32_ULP_COPROC_RESERVE_MEM, - len = 0x1000 - CONFIG_ESP32_ULP_COPROC_RESERVE_MEM + len = 0x2000 - CONFIG_ESP32_ULP_COPROC_RESERVE_MEM /* external memory ,including data and text */ extern_ram_seg(RWX) : org = 0x3F800000, diff --git a/tools/sdk/esp32/ld/esp32.project.ld b/tools/sdk/esp32/ld/esp32.project.ld index 8f5549a6..213dc04c 100644 --- a/tools/sdk/esp32/ld/esp32.project.ld +++ b/tools/sdk/esp32/ld/esp32.project.ld @@ -362,6 +362,14 @@ SECTIONS *libesp_common.a:esp_err.*( .literal .literal.* .text .text.*) *libesp_event.a:default_event_loop.*(.literal.esp_event_isr_post .text.esp_event_isr_post) *libesp_event.a:esp_event.*(.literal.esp_event_isr_post_to .text.esp_event_isr_post_to) + *libesp_hw_support.a:cpu_util.*( .literal .literal.* .text .text.*) + *libesp_hw_support.a:rtc_clk.*( .literal .literal.* .text .text.*) + *libesp_hw_support.a:rtc_periph.*( .literal .literal.* .text .text.*) + *libesp_hw_support.a:rtc_pm.*( .literal .literal.* .text .text.*) + *libesp_hw_support.a:rtc_sleep.*( .literal .literal.* .text .text.*) + *libesp_hw_support.a:rtc_time.*( .literal .literal.* .text .text.*) + *libesp_hw_support.a:rtc_wdt.*( .literal .literal.* .text .text.*) + *libesp_hw_support.a:rtc_init.*(.literal.rtc_vddsdio_set_config .text.rtc_vddsdio_set_config) *libesp_ringbuf.a:( .literal .literal.* .text .text.*) *libesp_system.a:panic.*( .literal .literal.* .text .text.*) *libesp_system.a:panic_handler.*( .literal .literal.* .text .text.*) @@ -405,20 +413,13 @@ SECTIONS *libnewlib.a:abort.*( .literal .literal.* .text .text.*) *libnewlib.a:heap.*( .literal .literal.* .text .text.*) *librtc.a:( .literal .literal.* .text .text.*) - *libsoc.a:cpu_util.*( .literal .literal.* .text .text.*) *libsoc.a:lldesc.*( .literal .literal.* .text .text.*) - *libsoc.a:rtc_clk.*( .literal .literal.* .text .text.*) - *libsoc.a:rtc_periph.*( .literal .literal.* .text .text.*) - *libsoc.a:rtc_pm.*( .literal .literal.* .text .text.*) - *libsoc.a:rtc_sleep.*( .literal .literal.* .text .text.*) - *libsoc.a:rtc_time.*( .literal .literal.* .text .text.*) - *libsoc.a:rtc_wdt.*( .literal .literal.* .text .text.*) - *libsoc.a:rtc_init.*(.literal.rtc_vddsdio_set_config .text.rtc_vddsdio_set_config) *libspi_flash.a:memspi_host_driver.*( .literal .literal.* .text .text.*) *libspi_flash.a:spi_flash_chip_gd.*( .literal .literal.* .text .text.*) *libspi_flash.a:spi_flash_chip_generic.*( .literal .literal.* .text .text.*) *libspi_flash.a:spi_flash_chip_issi.*( .literal .literal.* .text .text.*) *libspi_flash.a:spi_flash_chip_mxic.*( .literal .literal.* .text .text.*) + *libspi_flash.a:spi_flash_chip_winbond.*( .literal .literal.* .text .text.*) *libspi_flash.a:spi_flash_rom_patch.*( .literal .literal.* .text .text.*) *libxt_hal.a:( .literal .literal.* .text .text.*) *libxtensa.a:eri.*( .literal .literal.* .text .text.*) @@ -608,6 +609,8 @@ SECTIONS *libesp_common.a:esp_err.*( .rodata .rodata.*) *libesp_event.a:default_event_loop.*(.rodata.esp_event_isr_post) *libesp_event.a:esp_event.*(.rodata.esp_event_isr_post_to) + *libesp_hw_support.a:rtc_clk.*( .rodata .rodata.*) + *libesp_hw_support.a:rtc_init.*(.rodata.rtc_vddsdio_set_config) *libesp_system.a:panic.*( .rodata .rodata.*) *libesp_system.a:panic_handler.*( .rodata .rodata.*) *libesp_system.a:reset_reason.*( .rodata .rodata.*) @@ -649,13 +652,12 @@ SECTIONS *libnewlib.a:heap.*( .rodata .rodata.*) *libphy.a:( .rodata .rodata.*) *libsoc.a:lldesc.*( .rodata .rodata.*) - *libsoc.a:rtc_clk.*( .rodata .rodata.*) - *libsoc.a:rtc_init.*(.rodata.rtc_vddsdio_set_config) *libspi_flash.a:memspi_host_driver.*( .rodata .rodata.*) *libspi_flash.a:spi_flash_chip_gd.*( .rodata .rodata.*) *libspi_flash.a:spi_flash_chip_generic.*( .rodata .rodata.*) *libspi_flash.a:spi_flash_chip_issi.*( .rodata .rodata.*) *libspi_flash.a:spi_flash_chip_mxic.*( .rodata .rodata.*) + *libspi_flash.a:spi_flash_chip_winbond.*( .rodata .rodata.*) *libspi_flash.a:spi_flash_rom_patch.*( .rodata .rodata.*) *libxtensa.a:stdatomic.*( .rodata .rodata.*) @@ -697,7 +699,7 @@ SECTIONS _nimble_bss_end = ABSOLUTE(.); *(EXCLUDE_FILE(*libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.*) .bss EXCLUDE_FILE(*libesp_system.a:startup.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libfreertos.a:port.* *libfreertos.a:queue.*) .bss.* EXCLUDE_FILE(*libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.*) COMMON) - *libesp_system.a:startup.*(.bss.ob$11551 .bss.s_system_full_inited .bss.s_system_inited .bss.g_startup_time) + *libesp_system.a:startup.*(.bss.ob$11622 .bss.s_system_full_inited .bss.s_system_inited .bss.g_startup_time) *libesp_system.a:startup.*(.bss.do_core_init) *libesp_system.a:startup.*(.bss.do_secondary_init) *libesp_system.a:startup.*(.bss.start_cpu0_default) @@ -737,10 +739,11 @@ 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:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libgcc.a:_divsf3.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-time.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-tzset.* *libc.a:lib_a-raise.* *libc.a:lib_a-sysread.* *libc.a:lib_a-systimes.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strftime.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-close.* *libc.a:lib_a-strupr.* *libc.a:lib_a-bzero.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-memchr.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-isupper.* *libc.a:lock.* *libc.a:lib_a-itoa.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-fclose.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-open.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-syswrite.* *libc.a:creat.* *libc.a:lib_a-tolower.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-abs.* *libc.a:lib_a-system.* *libc.a:lib_a-strcspn.* *libc.a:isatty.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-refill.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-toascii.* *libc.a:lib_a-ctime.* *libc.a:lib_a-strspn.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-strndup.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-strtol.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-isprint.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strdup.* *libc.a:lib_a-isspace.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-isascii.* *libc.a:lib_a-rand.* *libc.a:lib_a-strncat.* *libc.a:lib_a-creat.* *libc.a:lib_a-read.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-fflush.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-toupper.* *libc.a:lib_a-quorem.* *libc.a:lib_a-div.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-labs.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-mktime.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strsep.* *libc.a:lib_a-stdio.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-islower.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-environ.* *libc.a:lib_a-sccl.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-memmove.* *libc.a:lib_a-rshift.* *libc.a:lib_a-envlock.* *libc.a:lib_a-strlen.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-strptime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-impure.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-utoa.* *libc.a:lib_a-srand.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-asctime.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-atoi.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-memset.* *libc.a:lib_a-atol.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libheap.a:heap_tlsf.* *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libsoc.a:rtc_clk.* *libsoc.a:lldesc.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *libphy.a) .rodata EXCLUDE_FILE(*libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *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-tzvars.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-time.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-tzset.* *libc.a:lib_a-raise.* *libc.a:lib_a-sysread.* *libc.a:lib_a-systimes.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strftime.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-close.* *libc.a:lib_a-strupr.* *libc.a:lib_a-bzero.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-memchr.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-isupper.* *libc.a:lock.* *libc.a:lib_a-itoa.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-fclose.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-open.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-syswrite.* *libc.a:creat.* *libc.a:lib_a-tolower.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-abs.* *libc.a:lib_a-system.* *libc.a:lib_a-strcspn.* *libc.a:isatty.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-refill.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-toascii.* *libc.a:lib_a-ctime.* *libc.a:lib_a-strspn.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-strndup.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-strtol.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-isprint.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strdup.* *libc.a:lib_a-isspace.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-isascii.* *libc.a:lib_a-rand.* *libc.a:lib_a-strncat.* *libc.a:lib_a-creat.* *libc.a:lib_a-read.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-fflush.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-toupper.* *libc.a:lib_a-quorem.* *libc.a:lib_a-div.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-labs.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-mktime.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strsep.* *libc.a:lib_a-stdio.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-islower.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-environ.* *libc.a:lib_a-sccl.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-memmove.* *libc.a:lib_a-rshift.* *libc.a:lib_a-envlock.* *libc.a:lib_a-strlen.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-strptime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-impure.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-utoa.* *libc.a:lib_a-srand.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-asctime.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-atoi.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-memset.* *libc.a:lib_a-atol.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libheap.a:heap_tlsf.* *libesp_system.a:startup.* *libesp_system.a:system_api.* *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libsoc.a:rtc_init.* *libsoc.a:rtc_clk.* *libsoc.a:lldesc.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *libfreertos.a:queue.* *libfreertos.a:port.* *libphy.a) .rodata.*) + *(EXCLUDE_FILE(*libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libgcc.a:_divsf3.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-time.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-tzset.* *libc.a:lib_a-raise.* *libc.a:lib_a-sysread.* *libc.a:lib_a-systimes.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strftime.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-close.* *libc.a:lib_a-strupr.* *libc.a:lib_a-bzero.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-memchr.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-isupper.* *libc.a:lock.* *libc.a:lib_a-itoa.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-fclose.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-open.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-syswrite.* *libc.a:creat.* *libc.a:lib_a-tolower.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-abs.* *libc.a:lib_a-system.* *libc.a:lib_a-strcspn.* *libc.a:isatty.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-refill.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-toascii.* *libc.a:lib_a-ctime.* *libc.a:lib_a-strspn.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-strndup.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-strtol.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-isprint.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strdup.* *libc.a:lib_a-isspace.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-isascii.* *libc.a:lib_a-rand.* *libc.a:lib_a-strncat.* *libc.a:lib_a-creat.* *libc.a:lib_a-read.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-fflush.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-toupper.* *libc.a:lib_a-quorem.* *libc.a:lib_a-div.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-labs.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-mktime.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strsep.* *libc.a:lib_a-stdio.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-islower.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-environ.* *libc.a:lib_a-sccl.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-memmove.* *libc.a:lib_a-rshift.* *libc.a:lib_a-envlock.* *libc.a:lib_a-strlen.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-strptime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-impure.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-utoa.* *libc.a:lib_a-srand.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-asctime.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-atoi.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-memset.* *libc.a:lib_a-atol.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libheap.a:heap_tlsf.* *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libsoc.a:lldesc.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *libesp_hw_support.a:rtc_clk.* *libphy.a) .rodata EXCLUDE_FILE(*libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *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-tzvars.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-time.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-tzset.* *libc.a:lib_a-raise.* *libc.a:lib_a-sysread.* *libc.a:lib_a-systimes.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strftime.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-close.* *libc.a:lib_a-strupr.* *libc.a:lib_a-bzero.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-memchr.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-isupper.* *libc.a:lock.* *libc.a:lib_a-itoa.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-fclose.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-open.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-syswrite.* *libc.a:creat.* *libc.a:lib_a-tolower.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-abs.* *libc.a:lib_a-system.* *libc.a:lib_a-strcspn.* *libc.a:isatty.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-refill.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-toascii.* *libc.a:lib_a-ctime.* *libc.a:lib_a-strspn.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-strndup.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-strtol.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-isprint.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strdup.* *libc.a:lib_a-isspace.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-isascii.* *libc.a:lib_a-rand.* *libc.a:lib_a-strncat.* *libc.a:lib_a-creat.* *libc.a:lib_a-read.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-fflush.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-toupper.* *libc.a:lib_a-quorem.* *libc.a:lib_a-div.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-labs.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-mktime.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strsep.* *libc.a:lib_a-stdio.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-islower.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-environ.* *libc.a:lib_a-sccl.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-memmove.* *libc.a:lib_a-rshift.* *libc.a:lib_a-envlock.* *libc.a:lib_a-strlen.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-strptime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-impure.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-utoa.* *libc.a:lib_a-srand.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-asctime.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-atoi.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-memset.* *libc.a:lib_a-atol.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libheap.a:heap_tlsf.* *libesp_system.a:startup.* *libesp_system.a:system_api.* *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libsoc.a:lldesc.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *libfreertos.a:queue.* *libfreertos.a:port.* *libesp_hw_support.a:rtc_init.* *libesp_hw_support.a:rtc_clk.* *libphy.a) .rodata.*) *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__$9170 .rodata.__func__$9157 .rodata.__func__$9124 .rodata.__func__$9092 .rodata.__func__$9067 .rodata.__func__$9026 .rodata.__func__$9017) - *libesp_system.a:startup.*(.rodata.start_cpu0_default.str1.4 .rodata.__func__$11587) + *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__$9175 .rodata.__func__$9162 .rodata.__func__$9129 .rodata.__func__$9097 .rodata.__func__$9072 .rodata.__func__$9031 .rodata.__func__$9022) + *libesp_hw_support.a:rtc_init.*( .rodata.*) + *libesp_system.a:startup.*(.rodata.start_cpu0_default.str1.4 .rodata.__func__$11658) *libesp_system.a:system_api.*(.rodata.esp_get_idf_version.str1.4) *libesp_system.a:startup.*(.rodata.do_core_init) *libesp_system.a:startup.*(.rodata.do_secondary_init) @@ -755,7 +758,6 @@ SECTIONS *libhal.a:uart_hal_iram.*( .rodata .rodata.*) *liblog.a:log.*(.rodata.esp_log_level_set.str1.4 .rodata.__func__$3544 .rodata.__func__$3515) *liblog.a:log_freertos.*(.rodata.esp_log_system_timestamp.str1.4) - *libsoc.a:rtc_init.*( .rodata.*) *(.irom1.text) /* catch stray ICACHE_RODATA_ATTR */ @@ -817,9 +819,10 @@ 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:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libgcc.a:lib2funcs.* *libgcc.a:_divsf3.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-time.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-tzset.* *libc.a:lib_a-raise.* *libc.a:lib_a-sysread.* *libc.a:lib_a-systimes.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strftime.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-close.* *libc.a:lib_a-strupr.* *libc.a:lib_a-bzero.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-memchr.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-isupper.* *libc.a:lock.* *libc.a:lib_a-itoa.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-fclose.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-open.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-syswrite.* *libc.a:creat.* *libc.a:lib_a-tolower.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-abs.* *libc.a:lib_a-system.* *libc.a:lib_a-strcspn.* *libc.a:isatty.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-refill.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-toascii.* *libc.a:lib_a-ctime.* *libc.a:lib_a-strspn.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-strndup.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-strtol.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-isprint.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strdup.* *libc.a:lib_a-isspace.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-isascii.* *libc.a:lib_a-rand.* *libc.a:lib_a-strncat.* *libc.a:lib_a-creat.* *libc.a:lib_a-read.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-fflush.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-toupper.* *libc.a:lib_a-quorem.* *libc.a:lib_a-div.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-labs.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-mktime.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strsep.* *libc.a:lib_a-stdio.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-islower.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-environ.* *libc.a:lib_a-sccl.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-memmove.* *libc.a:lib_a-rshift.* *libc.a:lib_a-envlock.* *libc.a:lib_a-strlen.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-strptime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-impure.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-utoa.* *libc.a:lib_a-srand.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-asctime.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-atoi.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-memset.* *libc.a:lib_a-atol.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libheap.a:heap_tlsf.* *libxt_hal.a *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *librtc.a *libsoc.a:cpu_util.* *libsoc.a:rtc_sleep.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_clk.* *libsoc.a:lldesc.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_time.* *libsoc.a:rtc_periph.* *libxtensa.a:stdatomic.* *libxtensa.a:eri.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *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:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *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-tzvars.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-time.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-tzset.* *libc.a:lib_a-raise.* *libc.a:lib_a-sysread.* *libc.a:lib_a-systimes.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strftime.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-close.* *libc.a:lib_a-strupr.* *libc.a:lib_a-bzero.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-memchr.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-isupper.* *libc.a:lock.* *libc.a:lib_a-itoa.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-fclose.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-open.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-syswrite.* *libc.a:creat.* *libc.a:lib_a-tolower.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-abs.* *libc.a:lib_a-system.* *libc.a:lib_a-strcspn.* *libc.a:isatty.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-refill.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-toascii.* *libc.a:lib_a-ctime.* *libc.a:lib_a-strspn.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-strndup.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-strtol.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-isprint.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strdup.* *libc.a:lib_a-isspace.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-isascii.* *libc.a:lib_a-rand.* *libc.a:lib_a-strncat.* *libc.a:lib_a-creat.* *libc.a:lib_a-read.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-fflush.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-toupper.* *libc.a:lib_a-quorem.* *libc.a:lib_a-div.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-labs.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-mktime.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strsep.* *libc.a:lib_a-stdio.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-islower.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-environ.* *libc.a:lib_a-sccl.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-memmove.* *libc.a:lib_a-rshift.* *libc.a:lib_a-envlock.* *libc.a:lib_a-strlen.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-strptime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-impure.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-utoa.* *libc.a:lib_a-srand.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-asctime.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-atoi.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-memset.* *libc.a:lib_a-atol.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libheap.a:heap_tlsf.* *libxt_hal.a *libesp_system.a:startup.* *libesp_system.a:system_api.* *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *librtc.a *libsoc.a:rtc_init.* *libsoc.a:cpu_util.* *libsoc.a:rtc_sleep.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_clk.* *libsoc.a:lldesc.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_time.* *libsoc.a:rtc_periph.* *libxtensa.a:stdatomic.* *libxtensa.a:eri.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *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:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libgcc.a:lib2funcs.* *libgcc.a:_divsf3.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-time.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-tzset.* *libc.a:lib_a-raise.* *libc.a:lib_a-sysread.* *libc.a:lib_a-systimes.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strftime.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-close.* *libc.a:lib_a-strupr.* *libc.a:lib_a-bzero.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-memchr.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-isupper.* *libc.a:lock.* *libc.a:lib_a-itoa.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-fclose.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-open.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-syswrite.* *libc.a:creat.* *libc.a:lib_a-tolower.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-abs.* *libc.a:lib_a-system.* *libc.a:lib_a-strcspn.* *libc.a:isatty.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-refill.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-toascii.* *libc.a:lib_a-ctime.* *libc.a:lib_a-strspn.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-strndup.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-strtol.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-isprint.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strdup.* *libc.a:lib_a-isspace.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-isascii.* *libc.a:lib_a-rand.* *libc.a:lib_a-strncat.* *libc.a:lib_a-creat.* *libc.a:lib_a-read.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-fflush.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-toupper.* *libc.a:lib_a-quorem.* *libc.a:lib_a-div.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-labs.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-mktime.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strsep.* *libc.a:lib_a-stdio.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-islower.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-environ.* *libc.a:lib_a-sccl.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-memmove.* *libc.a:lib_a-rshift.* *libc.a:lib_a-envlock.* *libc.a:lib_a-strlen.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-strptime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-impure.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-utoa.* *libc.a:lib_a-srand.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-asctime.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-atoi.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-memset.* *libc.a:lib_a-atol.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libheap.a:heap_tlsf.* *libxt_hal.a *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *librtc.a *libsoc.a:cpu_util.* *libsoc.a:rtc_sleep.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_clk.* *libsoc.a:lldesc.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_time.* *libsoc.a:rtc_periph.* *libxtensa.a:stdatomic.* *libxtensa.a:eri.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *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:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *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-tzvars.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-time.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-tzset.* *libc.a:lib_a-raise.* *libc.a:lib_a-sysread.* *libc.a:lib_a-systimes.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strftime.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-close.* *libc.a:lib_a-strupr.* *libc.a:lib_a-bzero.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-memchr.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-isupper.* *libc.a:lock.* *libc.a:lib_a-itoa.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-fclose.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-open.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-syswrite.* *libc.a:creat.* *libc.a:lib_a-tolower.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-abs.* *libc.a:lib_a-system.* *libc.a:lib_a-strcspn.* *libc.a:isatty.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-refill.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-toascii.* *libc.a:lib_a-ctime.* *libc.a:lib_a-strspn.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-strndup.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-strtol.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-isprint.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strdup.* *libc.a:lib_a-isspace.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-isascii.* *libc.a:lib_a-rand.* *libc.a:lib_a-strncat.* *libc.a:lib_a-creat.* *libc.a:lib_a-read.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-fflush.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-toupper.* *libc.a:lib_a-quorem.* *libc.a:lib_a-div.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-labs.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-mktime.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strsep.* *libc.a:lib_a-stdio.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-islower.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-environ.* *libc.a:lib_a-sccl.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-memmove.* *libc.a:lib_a-rshift.* *libc.a:lib_a-envlock.* *libc.a:lib_a-strlen.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-strptime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-impure.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-utoa.* *libc.a:lib_a-srand.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-asctime.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-atoi.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-memset.* *libc.a:lib_a-atol.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libheap.a:heap_tlsf.* *libxt_hal.a *libesp_system.a:startup.* *libesp_system.a:system_api.* *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *librtc.a *libsoc.a:rtc_init.* *libsoc.a:cpu_util.* *libsoc.a:rtc_sleep.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_clk.* *libsoc.a:lldesc.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_time.* *libsoc.a:rtc_periph.* *libxtensa.a:stdatomic.* *libxtensa.a:eri.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *libfreertos.a) .text.* EXCLUDE_FILE(*libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.*) .wifi0iram EXCLUDE_FILE(*libesp_system.a:startup.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libfreertos.a:port.* *libfreertos.a:queue.*) .wifi0iram.* EXCLUDE_FILE(*libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.*) .wifirxiram EXCLUDE_FILE(*libesp_system.a:startup.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libfreertos.a:port.* *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:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libgcc.a:lib2funcs.* *libgcc.a:_divsf3.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-time.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-tzset.* *libc.a:lib_a-raise.* *libc.a:lib_a-sysread.* *libc.a:lib_a-systimes.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strftime.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-close.* *libc.a:lib_a-strupr.* *libc.a:lib_a-bzero.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-memchr.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-isupper.* *libc.a:lock.* *libc.a:lib_a-itoa.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-fclose.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-open.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-syswrite.* *libc.a:creat.* *libc.a:lib_a-tolower.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-abs.* *libc.a:lib_a-system.* *libc.a:lib_a-strcspn.* *libc.a:isatty.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-refill.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-toascii.* *libc.a:lib_a-ctime.* *libc.a:lib_a-strspn.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-strndup.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-strtol.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-isprint.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strdup.* *libc.a:lib_a-isspace.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-isascii.* *libc.a:lib_a-rand.* *libc.a:lib_a-strncat.* *libc.a:lib_a-creat.* *libc.a:lib_a-read.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-fflush.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-toupper.* *libc.a:lib_a-quorem.* *libc.a:lib_a-div.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-labs.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-mktime.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strsep.* *libc.a:lib_a-stdio.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-islower.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-environ.* *libc.a:lib_a-sccl.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-memmove.* *libc.a:lib_a-rshift.* *libc.a:lib_a-envlock.* *libc.a:lib_a-strlen.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-strptime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-impure.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-utoa.* *libc.a:lib_a-srand.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-asctime.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-atoi.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-memset.* *libc.a:lib_a-atol.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libheap.a:heap_tlsf.* *libxt_hal.a *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *librtc.a *libsoc.a:lldesc.* *libxtensa.a:stdatomic.* *libxtensa.a:eri.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *libfreertos.a *libesp_hw_support.a:cpu_util.* *libesp_hw_support.a:rtc_sleep.* *libesp_hw_support.a:rtc_pm.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:rtc_wdt.* *libesp_hw_support.a:rtc_time.* *libesp_hw_support.a:rtc_periph.*) .literal EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *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-tzvars.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-time.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-tzset.* *libc.a:lib_a-raise.* *libc.a:lib_a-sysread.* *libc.a:lib_a-systimes.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strftime.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-close.* *libc.a:lib_a-strupr.* *libc.a:lib_a-bzero.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-memchr.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-isupper.* *libc.a:lock.* *libc.a:lib_a-itoa.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-fclose.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-open.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-syswrite.* *libc.a:creat.* *libc.a:lib_a-tolower.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-abs.* *libc.a:lib_a-system.* *libc.a:lib_a-strcspn.* *libc.a:isatty.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-refill.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-toascii.* *libc.a:lib_a-ctime.* *libc.a:lib_a-strspn.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-strndup.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-strtol.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-isprint.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strdup.* *libc.a:lib_a-isspace.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-isascii.* *libc.a:lib_a-rand.* *libc.a:lib_a-strncat.* *libc.a:lib_a-creat.* *libc.a:lib_a-read.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-fflush.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-toupper.* *libc.a:lib_a-quorem.* *libc.a:lib_a-div.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-labs.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-mktime.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strsep.* *libc.a:lib_a-stdio.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-islower.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-environ.* *libc.a:lib_a-sccl.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-memmove.* *libc.a:lib_a-rshift.* *libc.a:lib_a-envlock.* *libc.a:lib_a-strlen.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-strptime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-impure.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-utoa.* *libc.a:lib_a-srand.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-asctime.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-atoi.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-memset.* *libc.a:lib_a-atol.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libheap.a:heap_tlsf.* *libxt_hal.a *libesp_system.a:startup.* *libesp_system.a:system_api.* *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *librtc.a *libsoc.a:lldesc.* *libxtensa.a:stdatomic.* *libxtensa.a:eri.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *libfreertos.a *libesp_hw_support.a:rtc_init.* *libesp_hw_support.a:cpu_util.* *libesp_hw_support.a:rtc_sleep.* *libesp_hw_support.a:rtc_pm.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:rtc_wdt.* *libesp_hw_support.a:rtc_time.* *libesp_hw_support.a:rtc_periph.*) .literal.* EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libgcc.a:lib2funcs.* *libgcc.a:_divsf3.* *libc.a:lib_a-tzvars.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-time.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-tzset.* *libc.a:lib_a-raise.* *libc.a:lib_a-sysread.* *libc.a:lib_a-systimes.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strftime.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-close.* *libc.a:lib_a-strupr.* *libc.a:lib_a-bzero.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-memchr.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-isupper.* *libc.a:lock.* *libc.a:lib_a-itoa.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-fclose.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-open.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-syswrite.* *libc.a:creat.* *libc.a:lib_a-tolower.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-abs.* *libc.a:lib_a-system.* *libc.a:lib_a-strcspn.* *libc.a:isatty.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-refill.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-toascii.* *libc.a:lib_a-ctime.* *libc.a:lib_a-strspn.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-strndup.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-strtol.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-isprint.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strdup.* *libc.a:lib_a-isspace.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-isascii.* *libc.a:lib_a-rand.* *libc.a:lib_a-strncat.* *libc.a:lib_a-creat.* *libc.a:lib_a-read.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-fflush.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-toupper.* *libc.a:lib_a-quorem.* *libc.a:lib_a-div.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-labs.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-mktime.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strsep.* *libc.a:lib_a-stdio.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-islower.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-environ.* *libc.a:lib_a-sccl.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-memmove.* *libc.a:lib_a-rshift.* *libc.a:lib_a-envlock.* *libc.a:lib_a-strlen.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-strptime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-impure.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-utoa.* *libc.a:lib_a-srand.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-asctime.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-atoi.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-memset.* *libc.a:lib_a-atol.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libheap.a:heap_tlsf.* *libxt_hal.a *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *librtc.a *libsoc.a:lldesc.* *libxtensa.a:stdatomic.* *libxtensa.a:eri.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *libfreertos.a *libesp_hw_support.a:cpu_util.* *libesp_hw_support.a:rtc_sleep.* *libesp_hw_support.a:rtc_pm.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:rtc_wdt.* *libesp_hw_support.a:rtc_time.* *libesp_hw_support.a:rtc_periph.*) .text EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *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-tzvars.* *libc.a:lib_a-isblank.* *libc.a:lib_a-sysopen.* *libc.a:lib_a-time.* *libc.a:lib_a-rand_r.* *libc.a:lib_a-tzset.* *libc.a:lib_a-raise.* *libc.a:lib_a-sysread.* *libc.a:lib_a-systimes.* *libc.a:lib_a-strlwr.* *libc.a:lib_a-gmtime.* *libc.a:lib_a-sf_nan.* *libc.a:lib_a-strcasecmp.* *libc.a:lib_a-strftime.* *libc.a:lib_a-wbuf.* *libc.a:lib_a-strnlen.* *libc.a:lib_a-close.* *libc.a:lib_a-strupr.* *libc.a:lib_a-bzero.* *libc.a:lib_a-gmtime_r.* *libc.a:lib_a-memchr.* *libc.a:lib_a-isdigit.* *libc.a:lib_a-isupper.* *libc.a:lock.* *libc.a:lib_a-itoa.* *libc.a:lib_a-asctime_r.* *libc.a:lib_a-wctomb_r.* *libc.a:lib_a-fclose.* *libc.a:lib_a-strncpy.* *libc.a:lib_a-open.* *libc.a:lib_a-lcltime_r.* *libc.a:lib_a-syswrite.* *libc.a:creat.* *libc.a:lib_a-tolower.* *libc.a:lib_a-strlcpy.* *libc.a:lib_a-abs.* *libc.a:lib_a-system.* *libc.a:lib_a-strcspn.* *libc.a:isatty.* *libc.a:lib_a-gettzinfo.* *libc.a:lib_a-s_fpclassify.* *libc.a:lib_a-tzset_r.* *libc.a:lib_a-strncmp.* *libc.a:lib_a-strcat.* *libc.a:lib_a-strndup_r.* *libc.a:lib_a-strcmp.* *libc.a:lib_a-memccpy.* *libc.a:lib_a-fwalk.* *libc.a:lib_a-tzlock.* *libc.a:lib_a-strncasecmp.* *libc.a:lib_a-refill.* *libc.a:lib_a-longjmp.* *libc.a:lib_a-memrchr.* *libc.a:lib_a-toascii.* *libc.a:lib_a-ctime.* *libc.a:lib_a-strspn.* *libc.a:lib_a-ungetc.* *libc.a:lib_a-strndup.* *libc.a:lib_a-strtoul.* *libc.a:lib_a-strtol.* *libc.a:lib_a-memcpy.* *libc.a:lib_a-isprint.* *libc.a:lib_a-sbrk.* *libc.a:lib_a-strchr.* *libc.a:lib_a-strdup.* *libc.a:lib_a-isspace.* *libc.a:lib_a-isalpha.* *libc.a:lib_a-isascii.* *libc.a:lib_a-rand.* *libc.a:lib_a-strncat.* *libc.a:lib_a-creat.* *libc.a:lib_a-read.* *libc.a:lib_a-memcmp.* *libc.a:lib_a-fflush.* *libc.a:lib_a-fputwc.* *libc.a:lib_a-toupper.* *libc.a:lib_a-quorem.* *libc.a:lib_a-div.* *libc.a:lib_a-tzcalc_limits.* *libc.a:lib_a-labs.* *libc.a:lib_a-strtok_r.* *libc.a:lib_a-strcpy.* *libc.a:lib_a-iscntrl.* *libc.a:lib_a-mktime.* *libc.a:lib_a-strdup_r.* *libc.a:lib_a-strstr.* *libc.a:lib_a-strsep.* *libc.a:lib_a-stdio.* *libc.a:lib_a-isgraph.* *libc.a:lib_a-wsetup.* *libc.a:lib_a-timelocal.* *libc.a:lib_a-strlcat.* *libc.a:lib_a-islower.* *libc.a:lib_a-ldiv.* *libc.a:lib_a-lcltime.* *libc.a:lib_a-environ.* *libc.a:lib_a-sccl.* *libc.a:lib_a-getenv_r.* *libc.a:lib_a-sysclose.* *libc.a:lib_a-strcasestr.* *libc.a:lib_a-ctime_r.* *libc.a:lib_a-syssbrk.* *libc.a:lib_a-setjmp.* *libc.a:lib_a-isalnum.* *libc.a:lib_a-strcoll.* *libc.a:lib_a-memmove.* *libc.a:lib_a-rshift.* *libc.a:lib_a-envlock.* *libc.a:lib_a-strlen.* *libc.a:lib_a-wcrtomb.* *libc.a:lib_a-strptime.* *libc.a:lib_a-findfp.* *libc.a:lib_a-impure.* *libc.a:lib_a-fvwrite.* *libc.a:lib_a-ispunct.* *libc.a:lib_a-utoa.* *libc.a:lib_a-srand.* *libc.a:lib_a-month_lengths.* *libc.a:lib_a-asctime.* *libc.a:lib_a-strrchr.* *libc.a:lib_a-makebuf.* *libc.a:lib_a-atoi.* *libc.a:lib_a-ctype_.* *libc.a:lib_a-memset.* *libc.a:lib_a-atol.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libheap.a:heap_tlsf.* *libxt_hal.a *libesp_system.a:startup.* *libesp_system.a:system_api.* *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *librtc.a *libsoc.a:lldesc.* *libxtensa.a:stdatomic.* *libxtensa.a:eri.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *libfreertos.a *libesp_hw_support.a:rtc_init.* *libesp_hw_support.a:cpu_util.* *libesp_hw_support.a:rtc_sleep.* *libesp_hw_support.a:rtc_pm.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:rtc_wdt.* *libesp_hw_support.a:rtc_time.* *libesp_hw_support.a:rtc_periph.*) .text.* EXCLUDE_FILE(*libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.*) .wifi0iram EXCLUDE_FILE(*libesp_system.a:startup.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libfreertos.a:port.* *libfreertos.a:queue.*) .wifi0iram.* EXCLUDE_FILE(*libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.*) .wifirxiram EXCLUDE_FILE(*libesp_system.a:startup.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libfreertos.a:port.* *libfreertos.a:queue.*) .wifirxiram.*) *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_add .literal.base_node_add_handler .literal.loop_node_add_handler .literal.handler_instances_remove .literal.handler_instances_remove_all$isra$1 .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_instances_add .text.base_node_add_handler .text.loop_node_add_handler .text.handler_instances_remove .text.handler_instances_remove_all$isra$1 .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) + *libesp_hw_support.a:rtc_init.*(.literal.rtc_init .literal.rtc_vddsdio_get_config .text.rtc_init .text.rtc_vddsdio_get_config) *libesp_system.a:startup.*(.literal.do_system_init_fn .literal.esp_startup_start_app_other_cores_default .text.do_system_init_fn .text.esp_startup_start_app_other_cores_default .wifi0iram.* .wifirxiram.*) *libesp_system.a:system_api.*(.literal.esp_register_shutdown_handler .literal.esp_unregister_shutdown_handler .literal.esp_get_free_heap_size .literal.esp_get_free_internal_heap_size .literal.esp_get_minimum_free_heap_size .literal.esp_get_idf_version .text.esp_register_shutdown_handler .text.esp_unregister_shutdown_handler .text.esp_get_free_heap_size .text.esp_get_free_internal_heap_size .text.esp_get_minimum_free_heap_size .text.esp_get_idf_version) *libesp_system.a:startup.*(.literal.do_core_init .text.do_core_init .wifi0iram.do_core_init .wifirxiram.do_core_init) @@ -835,7 +838,6 @@ SECTIONS *libhal.a:uart_hal_iram.*( .literal .literal.* .text .text.* .wifi0iram .wifi0iram.* .wifirxiram .wifirxiram.*) *liblog.a:log.*(.literal.heap_bubble_down .literal.esp_log_set_vprintf .literal.esp_log_level_set .literal.esp_log_writev .text.heap_bubble_down .text.esp_log_set_vprintf .text.esp_log_level_set .text.esp_log_writev) *liblog.a:log_freertos.*(.literal.esp_log_system_timestamp .text.esp_log_system_timestamp) - *libsoc.a:rtc_init.*(.literal.rtc_init .literal.rtc_vddsdio_get_config .text.rtc_init .text.rtc_vddsdio_get_config) *(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) *(.irom0.text) /* catch stray ICACHE_RODATA_ATTR */ diff --git a/tools/sdk/esp32/ld/esp32_out.ld b/tools/sdk/esp32/ld/esp32_out.ld index 749b0197..e6febb7b 100644 --- a/tools/sdk/esp32/ld/esp32_out.ld +++ b/tools/sdk/esp32/ld/esp32_out.ld @@ -62,7 +62,7 @@ MEMORY Start of RTC slow memory is reserved for ULP co-processor code + data, if enabled. */ rtc_slow_seg(RW) : org = 0x50000000 + 512, - len = 0x1000 - 512 + len = 0x2000 - 512 /* external memory ,including data and text */ extern_ram_seg(RWX) : org = 0x3F800000, len = 0x400000 diff --git a/tools/sdk/esp32/ld/libbtdm_app.a b/tools/sdk/esp32/ld/libbtdm_app.a index 1a0615c1..541eaec7 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 c43d6f99..e7143df3 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 3527fc7f..92253723 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 a8276928..d2310702 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 5e7c4650..f2efa22e 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 81292bd8..8680d4ca 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/libbutton.a b/tools/sdk/esp32/lib/libbutton.a index dc393866..3e641f2c 100644 Binary files a/tools/sdk/esp32/lib/libbutton.a and b/tools/sdk/esp32/lib/libbutton.a differ diff --git a/tools/sdk/esp32/lib/libcbor.a b/tools/sdk/esp32/lib/libcbor.a index 24068aba..6a42e529 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/libcmock.a b/tools/sdk/esp32/lib/libcmock.a index df45a459..13f38254 100644 Binary files a/tools/sdk/esp32/lib/libcmock.a and b/tools/sdk/esp32/lib/libcmock.a differ diff --git a/tools/sdk/esp32/lib/libcoap.a b/tools/sdk/esp32/lib/libcoap.a index bf7e53b3..27a8f6eb 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 41c9dc0a..390363a6 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 0b0274c8..59968770 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 70e2ab30..f3101b8f 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 08e847dc..778554cb 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 78385029..212c0063 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 221aa320..c4f7d541 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-face.a b/tools/sdk/esp32/lib/libesp-face.a index 37253b7b..992a9a55 100644 Binary files a/tools/sdk/esp32/lib/libesp-face.a and b/tools/sdk/esp32/lib/libesp-face.a differ diff --git a/tools/sdk/esp32/lib/libesp-tls.a b/tools/sdk/esp32/lib/libesp-tls.a index 46766043..c31f2891 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-camera.a b/tools/sdk/esp32/lib/libesp32-camera.a index 06031a8d..36666d09 100644 Binary files a/tools/sdk/esp32/lib/libesp32-camera.a and b/tools/sdk/esp32/lib/libesp32-camera.a differ diff --git a/tools/sdk/esp32/lib/libesp32.a b/tools/sdk/esp32/lib/libesp32.a index e947c4f7..5d8ffafe 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 e29673ca..45b8ccf8 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 372edff7..9cae92bc 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 5e781cf7..5098de52 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 a827c949..8505e165 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 21457523..ed050a94 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 6767b09a..9b3a00a2 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 f824547a..b9bb194c 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 14a7b8a4..08f0c797 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 20449908..eaa67cc7 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_hw_support.a b/tools/sdk/esp32/lib/libesp_hw_support.a new file mode 100644 index 00000000..9b6662b0 Binary files /dev/null and b/tools/sdk/esp32/lib/libesp_hw_support.a differ diff --git a/tools/sdk/esp32/lib/libesp_ipc.a b/tools/sdk/esp32/lib/libesp_ipc.a index 4efa7234..c1d864a5 100644 Binary files a/tools/sdk/esp32/lib/libesp_ipc.a and b/tools/sdk/esp32/lib/libesp_ipc.a differ diff --git a/tools/sdk/esp32/lib/libesp_littlefs.a b/tools/sdk/esp32/lib/libesp_littlefs.a index 38bdae11..c5b92136 100644 Binary files a/tools/sdk/esp32/lib/libesp_littlefs.a and b/tools/sdk/esp32/lib/libesp_littlefs.a differ diff --git a/tools/sdk/esp32/lib/libesp_local_ctrl.a b/tools/sdk/esp32/lib/libesp_local_ctrl.a index a9850516..b8bcaa5c 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 29422b99..1d3f91c3 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_pm.a b/tools/sdk/esp32/lib/libesp_pm.a index c9135fe1..50a4f471 100644 Binary files a/tools/sdk/esp32/lib/libesp_pm.a and b/tools/sdk/esp32/lib/libesp_pm.a differ diff --git a/tools/sdk/esp32/lib/libesp_rainmaker.a b/tools/sdk/esp32/lib/libesp_rainmaker.a index a2aa7bb3..26649071 100644 Binary files a/tools/sdk/esp32/lib/libesp_rainmaker.a and b/tools/sdk/esp32/lib/libesp_rainmaker.a differ diff --git a/tools/sdk/esp32/lib/libesp_ringbuf.a b/tools/sdk/esp32/lib/libesp_ringbuf.a index a710e756..dc8a2366 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_rom.a b/tools/sdk/esp32/lib/libesp_rom.a index 51811694..e2d6e651 100644 Binary files a/tools/sdk/esp32/lib/libesp_rom.a and b/tools/sdk/esp32/lib/libesp_rom.a differ diff --git a/tools/sdk/esp32/lib/libesp_schedule.a b/tools/sdk/esp32/lib/libesp_schedule.a index 89978b7a..905a3c9c 100644 Binary files a/tools/sdk/esp32/lib/libesp_schedule.a and b/tools/sdk/esp32/lib/libesp_schedule.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 2c79fbb0..28f6d5ab 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 c1b79801..8566b214 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 9e1e6181..f45398c1 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 6d105a0f..3246cde9 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 c4b2ce50..a8a26734 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 d7f06a07..53f3378b 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 62260fa3..72d25b0f 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 42dc39d4..88aeffcf 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 6fc20489..26235de5 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 d0cd6477..4770fbf5 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 e7510215..a171ebab 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 78695a1a..9fed30f5 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/libhal.a b/tools/sdk/esp32/lib/libhal.a index 5996f760..6b832de2 100644 Binary files a/tools/sdk/esp32/lib/libhal.a and b/tools/sdk/esp32/lib/libhal.a differ diff --git a/tools/sdk/esp32/lib/libheap.a b/tools/sdk/esp32/lib/libheap.a index ba49f91f..455a470c 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 2344deb7..3ecaf19b 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 94b64cec..14192480 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/libjson_generator.a b/tools/sdk/esp32/lib/libjson_generator.a index 26cdb967..d49fe190 100644 Binary files a/tools/sdk/esp32/lib/libjson_generator.a and b/tools/sdk/esp32/lib/libjson_generator.a differ diff --git a/tools/sdk/esp32/lib/libjson_parser.a b/tools/sdk/esp32/lib/libjson_parser.a index 6a96de77..9e2cb3b3 100644 Binary files a/tools/sdk/esp32/lib/libjson_parser.a and b/tools/sdk/esp32/lib/libjson_parser.a differ diff --git a/tools/sdk/esp32/lib/liblibsodium.a b/tools/sdk/esp32/lib/liblibsodium.a index 8ca248f7..7063d3e8 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 cf411845..62e167b3 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 1d7f8527..9aa17109 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 cf3fb2d9..2d27bdd9 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 9a101e5b..272dfbd7 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 b5544804..bb408cc8 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 e4e3c378..31cf8f73 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 513a638a..a279ae70 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 32b97960..531c3090 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 a63a2e48..d2796636 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 5ff2358b..088a65e6 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 94336e3f..0998572d 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 31aac62c..d10349b1 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 c2164092..38eeec6f 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 27ef2159..ab707238 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/libpp.a b/tools/sdk/esp32/lib/libpp.a index e0f27979..bcbbdb51 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 d083d47a..7edd500e 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 8d3dbf03..22f3976b 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 a9ff5fe7..1b0bfe8d 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/libqrcode.a b/tools/sdk/esp32/lib/libqrcode.a index 4c394590..41f47fe6 100644 Binary files a/tools/sdk/esp32/lib/libqrcode.a and b/tools/sdk/esp32/lib/libqrcode.a differ diff --git a/tools/sdk/esp32/lib/libsdmmc.a b/tools/sdk/esp32/lib/libsdmmc.a index c6cc10af..a60a411b 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 d9c12afa..9e4f8a79 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 e8ea21c7..50a36622 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 deleted file mode 100644 index a84e2371..00000000 Binary files a/tools/sdk/esp32/lib/libsoc_esp32.a and /dev/null differ diff --git a/tools/sdk/esp32/lib/libspi_flash.a b/tools/sdk/esp32/lib/libspi_flash.a index 269ef3b2..47d0ad90 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 2503a45a..a71031c0 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 ad496352..36eb07ca 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 f4803164..81a5c79d 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 b0bfe615..0ebaba95 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 ac19d372..b9efe795 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 17a54364..b591d588 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 14cef34d..88b7d81c 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 90a0da94..bdfadd7a 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 89df0d80..1dd76c6c 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/libws2812_led.a b/tools/sdk/esp32/lib/libws2812_led.a index 0650dc3d..bace8e5e 100644 Binary files a/tools/sdk/esp32/lib/libws2812_led.a and b/tools/sdk/esp32/lib/libws2812_led.a differ diff --git a/tools/sdk/esp32/lib/libxtensa.a b/tools/sdk/esp32/lib/libxtensa.a index 100e5b69..f281e1c0 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 d584677a..f7b7e48a 100644 --- a/tools/sdk/esp32/sdkconfig +++ b/tools/sdk/esp32/sdkconfig @@ -664,7 +664,8 @@ CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y # High resolution timer (esp_timer) # # CONFIG_ESP_TIMER_PROFILING is not set -CONFIG_ESP_TIMER_RTC_USE=y +CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y +CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y CONFIG_ESP_TIMER_TASK_STACK_SIZE=4096 # CONFIG_ESP_TIMER_IMPL_FRC2 is not set CONFIG_ESP_TIMER_IMPL_TG0_LAC=y @@ -901,8 +902,10 @@ CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 # # TCP # +CONFIG_LWIP_TCP_ISN_HOOK=y CONFIG_LWIP_MAX_ACTIVE_TCP=16 CONFIG_LWIP_MAX_LISTENING_TCP=16 +CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y CONFIG_LWIP_TCP_MAXRTX=12 CONFIG_LWIP_TCP_SYNMAXRTX=6 CONFIG_LWIP_TCP_MSS=1436 @@ -1189,6 +1192,7 @@ CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y # end of Auto-detect flash chips # end of SPI Flash driver diff --git a/tools/sdk/esp32s2/bin/bootloader_dio_40m.bin b/tools/sdk/esp32s2/bin/bootloader_dio_40m.bin index 103dc647..bd938818 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 ee31586f..9ea5abd7 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 103dc647..bd938818 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 ee31586f..9ea5abd7 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 103dc647..bd938818 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 ee31586f..9ea5abd7 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 103dc647..bd938818 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 ee31586f..9ea5abd7 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/bootloader_support/include/esp_app_format.h b/tools/sdk/esp32s2/include/bootloader_support/include/esp_app_format.h index a67c38ee..33b92cc9 100644 --- a/tools/sdk/esp32s2/include/bootloader_support/include/esp_app_format.h +++ b/tools/sdk/esp32s2/include/bootloader_support/include/esp_app_format.h @@ -13,6 +13,8 @@ // limitations under the License. #pragma once +#include + /** * @brief ESP chip ID * diff --git a/tools/sdk/esp32s2/include/config/sdkconfig.h b/tools/sdk/esp32s2/include/config/sdkconfig.h index b42bcca8..61a33b16 100644 --- a/tools/sdk/esp32s2/include/config/sdkconfig.h +++ b/tools/sdk/esp32s2/include/config/sdkconfig.h @@ -150,7 +150,8 @@ #define CONFIG_ESP_NETIF_TCPIP_ADAPTER_COMPATIBLE_LAYER 1 #define CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT 1 #define CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE 1 -#define CONFIG_ESP_TIMER_RTC_USE 1 +#define CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER 1 +#define CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER 1 #define CONFIG_ESP_TIMER_TASK_STACK_SIZE 4096 #define CONFIG_ESP_TIMER_IMPL_SYSTIMER 1 #define CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM 8 @@ -244,8 +245,10 @@ #define CONFIG_LWIP_DHCPS_MAX_STATION_NUM 8 #define CONFIG_LWIP_NETIF_LOOPBACK 1 #define CONFIG_LWIP_LOOPBACK_MAX_PBUFS 8 +#define CONFIG_LWIP_TCP_ISN_HOOK 1 #define CONFIG_LWIP_MAX_ACTIVE_TCP 16 #define CONFIG_LWIP_MAX_LISTENING_TCP 16 +#define CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION 1 #define CONFIG_LWIP_TCP_MAXRTX 12 #define CONFIG_LWIP_TCP_SYNMAXRTX 6 #define CONFIG_LWIP_TCP_MSS 1436 @@ -361,6 +364,7 @@ #define CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP 1 #define CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP 1 #define CONFIG_SPI_FLASH_SUPPORT_GD_CHIP 1 +#define CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP 1 #define CONFIG_SPIFFS_MAX_PARTITIONS 3 #define CONFIG_SPIFFS_CACHE 1 #define CONFIG_SPIFFS_CACHE_WR 1 @@ -503,5 +507,5 @@ #define CONFIG_TOOLPREFIX CONFIG_SDK_TOOLPREFIX #define CONFIG_UDP_RECVMBOX_SIZE CONFIG_LWIP_UDP_RECVMBOX_SIZE #define CONFIG_WARN_WRITE_STRINGS CONFIG_COMPILER_WARN_WRITE_STRINGS -#define CONFIG_ARDUINO_IDF_COMMIT "357a27760" +#define CONFIG_ARDUINO_IDF_COMMIT "494a124d9" #define CONFIG_ARDUINO_IDF_BRANCH "master" diff --git a/tools/sdk/esp32s2/include/driver/include/driver/dedic_gpio.h b/tools/sdk/esp32s2/include/driver/include/driver/dedic_gpio.h new file mode 100644 index 00000000..f7d9b4a6 --- /dev/null +++ b/tools/sdk/esp32s2/include/driver/include/driver/dedic_gpio.h @@ -0,0 +1,173 @@ +// Copyright 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 +// distributed under the License is distributed on an "AS IS" BASIS, +// 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. + +#pragma once + +#include +#include +#include "esp_err.h" +#include "esp_attr.h" +#include "soc/soc_caps.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Type of Dedicated GPIO bundle + */ +typedef struct dedic_gpio_bundle_t *dedic_gpio_bundle_handle_t; + +/** + * @brief Type of Dedicated GPIO bundle configuration + */ +typedef struct { + const int *gpio_array; /*!< Array of GPIO numbers, gpio_array[0] ~ gpio_array[size-1] <=> low_dedic_channel_num ~ high_dedic_channel_num */ + size_t array_size; /*!< Number of GPIOs in gpio_array */ + struct { + int in_en: 1; /*!< Enable input */ + int in_invert: 1; /*!< Invert input signal */ + int out_en: 1; /*!< Enable output */ + int out_invert: 1; /*!< Invert output signal */ + } flags; /*!< Flags to control specific behaviour of GPIO bundle */ +} dedic_gpio_bundle_config_t; + +/** + * @brief Create GPIO bundle and return the handle + * + * @param[in] config Configuration of GPIO bundle + * @param[out] ret_bundle Returned handle of the new created GPIO bundle + * @return + * - ESP_OK: Create GPIO bundle successfully + * - ESP_ERR_INVALID_ARG: Create GPIO bundle failed because of invalid argument + * - ESP_ERR_NO_MEM: Create GPIO bundle failed because of no capable memory + * - ESP_ERR_NOT_FOUND: Create GPIO bundle failed because of no enough continuous dedicated channels + * - ESP_FAIL: Create GPIO bundle failed because of other error + * + * @note One has to enable at least input or output mode in "config" parameter. + */ +esp_err_t dedic_gpio_new_bundle(const dedic_gpio_bundle_config_t *config, dedic_gpio_bundle_handle_t *ret_bundle); + +/** + * @brief Destory GPIO bundle + * + * @param[in] bundle Handle of GPIO bundle that returned from "dedic_gpio_new_bundle" + * @return + * - ESP_OK: Destory GPIO bundle successfully + * - ESP_ERR_INVALID_ARG: Destory GPIO bundle failed because of invalid argument + * - ESP_FAIL: Destory GPIO bundle failed because of other error + */ +esp_err_t dedic_gpio_del_bundle(dedic_gpio_bundle_handle_t bundle); + +/**@{*/ +/** + * @brief Get allocated channel mask + * + * @param[in] bundle Handle of GPIO bundle that returned from "dedic_gpio_new_bundle" + * @param[out] mask Returned mask value for on specific direction (in or out) + * @return + * - ESP_OK: Get channel mask successfully + * - ESP_ERR_INVALID_ARG: Get channel mask failed because of invalid argument + * - ESP_FAIL: Get channel mask failed because of other error + * + * @note Each bundle should have at least one mask (in or/and out), based on bundle configuration. + * @note With the returned mask, user can directly invoke LL function like "cpu_ll_write_dedic_gpio_mask" + * or write assembly code with dedicated GPIO instructions, to get better performance on GPIO manipulation. + */ +esp_err_t dedic_gpio_get_out_mask(dedic_gpio_bundle_handle_t bundle, uint32_t *mask); +esp_err_t dedic_gpio_get_in_mask(dedic_gpio_bundle_handle_t bundle, uint32_t *mask); +/**@}*/ + +/** + * @brief Write value to GPIO bundle + * + * @param[in] bundle Handle of GPIO bundle that returned from "dedic_gpio_new_bundle" + * @param[in] mask Mask of the GPIOs to be written in the given bundle + * @param[in] value Value to write to given GPIO bundle, low bit represents low member in the bundle + * + * @note The mask is seen from the view of GPIO bundle. + * For example, bundleA contains [GPIO10, GPIO12, GPIO17], to set GPIO17 individually, the mask should be 0x04. + * @note For performance reasons, this function doesn't check the validity of any parameters, and is placed in IRAM. + */ +void dedic_gpio_bundle_write(dedic_gpio_bundle_handle_t bundle, uint32_t mask, uint32_t value) IRAM_ATTR; + +/** + * @brief Read the value that output from the given GPIO bundle + * + * @param[in] bundle Handle of GPIO bundle that returned from "dedic_gpio_new_bundle" + * @return Value that output from the GPIO bundle, low bit represents low member in the bundle + * + * @note For performance reasons, this function doesn't check the validity of any parameters, and is placed in IRAM. + */ +uint32_t dedic_gpio_bundle_read_out(dedic_gpio_bundle_handle_t bundle) IRAM_ATTR; + +/** + * @brief Read the value that input to the given GPIO bundle + * + * @param[in] bundle Handle of GPIO bundle that returned from "dedic_gpio_new_bundle" + * @return Value that input to the GPIO bundle, low bit represents low member in the bundle + * + * @note For performance reasons, this function doesn't check the validity of any parameters, and is placed in IRAM. + */ +uint32_t dedic_gpio_bundle_read_in(dedic_gpio_bundle_handle_t bundle) IRAM_ATTR; + +#if SOC_DEDIC_GPIO_HAS_INTERRUPT + +/** + * @brief Supported type of dedicated GPIO interrupt + */ +typedef enum { + DEDIC_GPIO_INTR_NONE, /*!< No interrupt */ + DEDIC_GPIO_INTR_LOW_LEVEL = 2, /*!< Interrupt on low level */ + DEDIC_GPIO_INTR_HIGH_LEVEL, /*!< Interrupt on high level */ + DEDIC_GPIO_INTR_NEG_EDGE, /*!< Interrupt on negedge */ + DEDIC_GPIO_INTR_POS_EDGE, /*!< Interrupt on posedge */ + DEDIC_GPIO_INTR_BOTH_EDGE /*!< Interrupt on both negedge and posedge */ +} dedic_gpio_intr_type_t; + +/** + * @brief Type of dedicated GPIO ISR callback function + * + * @param bundle Handle of GPIO bundle that returned from "dedic_gpio_new_bundle" + * @param index Index of the GPIO in its corresponding bundle (count from 0) + * @param args User defined arguments for the callback function. It's passed through `dedic_gpio_bundle_set_interrupt_and_callback` + * @return If a high priority task is woken up by the callback function + */ +typedef bool (*dedic_gpio_isr_callback_t)(dedic_gpio_bundle_handle_t bundle, uint32_t index, void *args); + +/** + * @brief Set interrupt and callback function for GPIO bundle + * + * @param[in] bundle Handle of GPIO bundle that returned from "dedic_gpio_new_bundle" + * @param[in] mask Mask of the GPIOs in the given bundle + * @param[in] intr_type Interrupt type, set to DEDIC_GPIO_INTR_NONE can disable interrupt + * @param[in] cb_isr Callback function, which got invoked in ISR context. A NULL pointer here will bypass the callback + * @param[in] cb_args User defined argument to be passed to the callback function + * + * @note This function is only valid for bundle with input mode enabled. See "dedic_gpio_bundle_config_t" + * @note The mask is seen from the view of GPIO Bundle. + * For example, bundleA contains [GPIO10, GPIO12, GPIO17], to set GPIO17 individually, the mask should be 0x04. + * + * @return + * - ESP_OK: Set GPIO interrupt and callback function successfully + * - ESP_ERR_INVALID_ARG: Set GPIO interrupt and callback function failed because of invalid argument + * - ESP_FAIL: Set GPIO interrupt and callback function failed because of other error + */ +esp_err_t dedic_gpio_bundle_set_interrupt_and_callback(dedic_gpio_bundle_handle_t bundle, uint32_t mask, dedic_gpio_intr_type_t intr_type, dedic_gpio_isr_callback_t cb_isr, void *cb_args); + +#endif // SOC_DEDIC_GPIO_HAS_INTERRUPT + +#ifdef __cplusplus +} +#endif diff --git a/tools/sdk/esp32s2/include/driver/include/driver/spi_common_internal.h b/tools/sdk/esp32s2/include/driver/include/driver/spi_common_internal.h index 48b00166..51c7e01f 100644 --- a/tools/sdk/esp32s2/include/driver/include/driver/spi_common_internal.h +++ b/tools/sdk/esp32s2/include/driver/include/driver/spi_common_internal.h @@ -150,6 +150,14 @@ bool spicommon_dma_chan_in_use(int dma_chan); */ bool spicommon_dma_chan_free(int dma_chan); +/** + * @brief Connect SPI and DMA peripherals + * + * @param host SPI peripheral + * @param dma_chan DMA channel + */ +void spicommon_connect_spi_and_dma(spi_host_device_t host, int dma_chan); + /** * @brief Connect a SPI peripheral to GPIO pins * diff --git a/tools/sdk/esp32s2/include/efuse/include/esp32s3/esp_efuse.h b/tools/sdk/esp32s2/include/efuse/include/esp32s3/esp_efuse.h index c33eca5b..484ca444 100644 --- a/tools/sdk/esp32s2/include/efuse/include/esp32s3/esp_efuse.h +++ b/tools/sdk/esp32s2/include/efuse/include/esp32s3/esp_efuse.h @@ -56,6 +56,14 @@ typedef enum { EFUSE_BLK_MAX } esp_efuse_block_t; +struct esp_efuse_desc_s; + +/** + * @brief Given a key block in the range EFUSE_BLK_KEY0..EFUSE_BLK_KEY5, return + * efuse field for setting the key purpose + */ +const struct esp_efuse_desc_s **esp_efuse_get_purpose_field(esp_efuse_block_t block); + /** * @brief Type of coding scheme */ diff --git a/tools/sdk/esp32s2/include/esp-tls/esp-tls-crypto/esp_tls_crypto.h b/tools/sdk/esp32s2/include/esp-tls/esp-tls-crypto/esp_tls_crypto.h new file mode 100644 index 00000000..2336a9ce --- /dev/null +++ b/tools/sdk/esp32s2/include/esp-tls/esp-tls-crypto/esp_tls_crypto.h @@ -0,0 +1,68 @@ +// Copyright 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 +// distributed under the License is distributed on an "AS IS" BASIS, +// 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_TLS_CRYPTO_H +#define _ESP_TLS_CRYPTO_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Calculate sha1 sum + * esp-tls abstraction for crypto sha1 API, calculates the sha1 sum(digest) of + * the data provided in input which is of ilen size and returns + * a 20 char sha1 sum + * @param[in] input Input array + * @param[in] ilen Length of Input array + * @param[out] output calculated sha1 sum + * + * @return + * mbedtls stack:- + * - MBEDTLS_ERR_SHA1_BAD_INPUT_DATA on BAD INPUT. + * - 0 on success. + * wolfssl stack:- + * - -1 on failure. + * - 0 on success. + */ +int esp_crypto_sha1(const unsigned char *input, + size_t ilen, + unsigned char output[20]); + +/** + * @brief Do Base64 encode of the src data + * + * @param[in] dst destination buffer + * @param[in] dlen length of destination buffer + * @param[out] olen number of bytes written + * @param[in] src src buffer to be encoded + * @param[in] slen src buffer len + * + * @return + * mbedtls stack:- + * - MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL if buffer is of insufficient size. + * - 0 if successful. + * wolfssl stack:- + * - <0 on failure. + * - 0 if succcessful. + */ +int esp_crypto_base64_encode(unsigned char *dst, size_t dlen, + size_t *olen, const unsigned char *src, + size_t slen); + +#ifdef __cplusplus +} +#endif +#endif /* _ESP_TLS_CRYPTO_H */ diff --git a/tools/sdk/esp32s2/include/esp_common/include/esp_private/system_internal.h b/tools/sdk/esp32s2/include/esp_common/include/esp_private/system_internal.h index 4f5c90e8..12d7c2db 100644 --- a/tools/sdk/esp32s2/include/esp_common/include/esp_private/system_internal.h +++ b/tools/sdk/esp32s2/include/esp_common/include/esp_private/system_internal.h @@ -72,7 +72,7 @@ int64_t esp_system_get_time(void); /** * @brief Get the resolution of the time returned by `esp_system_get_time`. * - * @returns the resolution in microseconds + * @returns the resolution in nanoseconds */ uint32_t esp_system_get_time_resolution(void); diff --git a/tools/sdk/esp32s2/include/soc/include/soc/compare_set.h b/tools/sdk/esp32s2/include/esp_hw_support/include/soc/compare_set.h similarity index 96% rename from tools/sdk/esp32s2/include/soc/include/soc/compare_set.h rename to tools/sdk/esp32s2/include/esp_hw_support/include/soc/compare_set.h index 626752ad..b748fa9e 100644 --- a/tools/sdk/esp32s2/include/soc/include/soc/compare_set.h +++ b/tools/sdk/esp32s2/include/esp_hw_support/include/soc/compare_set.h @@ -21,6 +21,9 @@ #include "soc/soc_memory_layout.h" #include "xtensa/xtruntime.h" +#ifdef __cplusplus +extern "C" { +#endif static inline void __attribute__((always_inline)) compare_and_set_native(volatile uint32_t *addr, uint32_t compare, uint32_t *set) { @@ -53,4 +56,8 @@ static inline void __attribute__((always_inline)) compare_and_set_native(volatil void compare_and_set_extram(volatile uint32_t *addr, uint32_t compare, uint32_t *set); +#ifdef __cplusplus +} +#endif + #endif \ No newline at end of file diff --git a/tools/sdk/esp32s2/include/soc/include/soc/cpu.h b/tools/sdk/esp32s2/include/esp_hw_support/include/soc/cpu.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/include/soc/cpu.h rename to tools/sdk/esp32s2/include/esp_hw_support/include/soc/cpu.h diff --git a/tools/sdk/esp32s2/include/soc/include/soc/rtc_wdt.h b/tools/sdk/esp32s2/include/esp_hw_support/include/soc/rtc_wdt.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/include/soc/rtc_wdt.h rename to tools/sdk/esp32s2/include/esp_hw_support/include/soc/rtc_wdt.h diff --git a/tools/sdk/esp32/include/soc/include/soc/spinlock.h b/tools/sdk/esp32s2/include/esp_hw_support/include/soc/spinlock.h similarity index 98% rename from tools/sdk/esp32/include/soc/include/soc/spinlock.h rename to tools/sdk/esp32s2/include/esp_hw_support/include/soc/spinlock.h index aace1bbf..28685831 100644 --- a/tools/sdk/esp32/include/soc/include/soc/spinlock.h +++ b/tools/sdk/esp32s2/include/esp_hw_support/include/soc/spinlock.h @@ -21,6 +21,9 @@ #include "soc/compare_set.h" #include "xtensa/xtruntime.h" +#ifdef __cplusplus +extern "C" { +#endif #ifdef CONFIG_SPIRAM_WORKAROUND_NEED_VOLATILE_SPINLOCK #define NEED_VOLATILE_MUX volatile @@ -154,5 +157,9 @@ static inline void __attribute__((always_inline)) spinlock_release(spinlock_t *l #endif } +#ifdef __cplusplus +} +#endif + #endif diff --git a/tools/sdk/esp32/include/soc/include/soc_log.h b/tools/sdk/esp32s2/include/esp_hw_support/include/soc_log.h similarity index 99% rename from tools/sdk/esp32/include/soc/include/soc_log.h rename to tools/sdk/esp32s2/include/esp_hw_support/include/soc_log.h index 2934eb0c..2f2bfd4e 100644 --- a/tools/sdk/esp32/include/soc/include/soc_log.h +++ b/tools/sdk/esp32s2/include/esp_hw_support/include/soc_log.h @@ -14,6 +14,7 @@ #pragma once #include "esp_rom_sys.h" + /** * @file soc_log.h * @brief SOC library logging functions diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/private_include/regi2c_apll.h b/tools/sdk/esp32s2/include/esp_hw_support/port/esp32s2/private_include/regi2c_apll.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/private_include/regi2c_apll.h rename to tools/sdk/esp32s2/include/esp_hw_support/port/esp32s2/private_include/regi2c_apll.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/private_include/regi2c_bbpll.h b/tools/sdk/esp32s2/include/esp_hw_support/port/esp32s2/private_include/regi2c_bbpll.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/private_include/regi2c_bbpll.h rename to tools/sdk/esp32s2/include/esp_hw_support/port/esp32s2/private_include/regi2c_bbpll.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/private_include/regi2c_brownout.h b/tools/sdk/esp32s2/include/esp_hw_support/port/esp32s2/private_include/regi2c_brownout.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/private_include/regi2c_brownout.h rename to tools/sdk/esp32s2/include/esp_hw_support/port/esp32s2/private_include/regi2c_brownout.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/private_include/regi2c_saradc.h b/tools/sdk/esp32s2/include/esp_hw_support/port/esp32s2/private_include/regi2c_saradc.h similarity index 95% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/private_include/regi2c_saradc.h rename to tools/sdk/esp32s2/include/esp_hw_support/port/esp32s2/private_include/regi2c_saradc.h index 0c223812..2345e0a5 100644 --- a/tools/sdk/esp32s2/include/soc/soc/esp32s2/private_include/regi2c_saradc.h +++ b/tools/sdk/esp32s2/include/esp_hw_support/port/esp32s2/private_include/regi2c_saradc.h @@ -74,6 +74,10 @@ #define ADC_SARADC_ENT_RTC_ADDR_MSB 3 #define ADC_SARADC_ENT_RTC_ADDR_LSB 3 +#define ADC_SARADC_ENCAL_REF_ADDR 0x7 +#define ADC_SARADC_ENCAL_REF_ADDR_MSB 4 +#define ADC_SARADC_ENCAL_REF_ADDR_LSB 4 + #define I2C_SARADC_TSENS_DAC 0x6 #define I2C_SARADC_TSENS_DAC_MSB 3 #define I2C_SARADC_TSENS_DAC_LSB 0 diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/private_include/regi2c_ulp.h b/tools/sdk/esp32s2/include/esp_hw_support/port/esp32s2/private_include/regi2c_ulp.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/private_include/regi2c_ulp.h rename to tools/sdk/esp32s2/include/esp_hw_support/port/esp32s2/private_include/regi2c_ulp.h diff --git a/tools/sdk/esp32s2/include/soc/src/esp32s2/regi2c_ctrl.h b/tools/sdk/esp32s2/include/esp_hw_support/port/esp32s2/regi2c_ctrl.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/src/esp32s2/regi2c_ctrl.h rename to tools/sdk/esp32s2/include/esp_hw_support/port/esp32s2/regi2c_ctrl.h diff --git a/tools/sdk/esp32s2/include/soc/src/esp32s2/rtc_clk_common.h b/tools/sdk/esp32s2/include/esp_hw_support/port/esp32s2/rtc_clk_common.h similarity index 97% rename from tools/sdk/esp32s2/include/soc/src/esp32s2/rtc_clk_common.h rename to tools/sdk/esp32s2/include/esp_hw_support/port/esp32s2/rtc_clk_common.h index cb92f67a..d4dad103 100644 --- a/tools/sdk/esp32s2/include/soc/src/esp32s2/rtc_clk_common.h +++ b/tools/sdk/esp32s2/include/esp_hw_support/port/esp32s2/rtc_clk_common.h @@ -14,6 +14,9 @@ #pragma once +#include +#include + #define MHZ (1000000) #define DPORT_CPUPERIOD_SEL_80 0 diff --git a/tools/sdk/esp32s2/include/esp_rom/include/esp32/rom/rtc.h b/tools/sdk/esp32s2/include/esp_rom/include/esp32/rom/rtc.h index 83e62163..dcb46df8 100644 --- a/tools/sdk/esp32s2/include/esp_rom/include/esp32/rom/rtc.h +++ b/tools/sdk/esp32s2/include/esp_rom/include/esp32/rom/rtc.h @@ -45,8 +45,7 @@ extern "C" { ************************************************************************************* * rtc memory addr type size usage * 0x3ff61000(0x50000000) Slow SIZE_CP Co-Processor code/Reset Entry - * 0x3ff61000+SIZE_CP Slow 4096-SIZE_CP - * 0x3ff62800 Slow 4096 Reserved + * 0x3ff61000+SIZE_CP Slow 8192-SIZE_CP * * 0x3ff80000(0x400c0000) Fast 8192 deep sleep entry code * diff --git a/tools/sdk/esp32s2/include/esp_serial_slave_link/include/essl_spi/esp32s3_defs.h b/tools/sdk/esp32s2/include/esp_serial_slave_link/include/essl_spi/esp32s3_defs.h new file mode 100644 index 00000000..1de97d64 --- /dev/null +++ b/tools/sdk/esp32s2/include/esp_serial_slave_link/include/essl_spi/esp32s3_defs.h @@ -0,0 +1,38 @@ +// Copyright 2010-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 +// distributed under the License is distributed on an "AS IS" BASIS, +// 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. + + +#pragma once + +// NOTE: From the view of master +#define CMD_HD_WRBUF_REG 0x01 +#define CMD_HD_RDBUF_REG 0x02 +#define CMD_HD_WRDMA_REG 0x03 +#define CMD_HD_RDDMA_REG 0x04 + +#define CMD_HD_ONEBIT_MODE 0x00 +#define CMD_HD_DOUT_MODE 0x10 +#define CMD_HD_QOUT_MODE 0x20 +#define CMD_HD_DIO_MODE 0x50 +#define CMD_HD_QIO_MODE 0xA0 + +#define CMD_HD_SEG_END_REG 0x05 +#define CMD_HD_EN_QPI_REG 0x06 +#define CMD_HD_WR_END_REG 0x07 +#define CMD_HD_INT0_REG 0x08 +#define CMD_HD_INT1_REG 0x09 +#define CMD_HD_INT2_REG 0x0A +#define CMD_HD_EX_QPI_REG 0xDD + +#define SPI_SLAVE_HD_BUFFER_SIZE 64 \ No newline at end of file diff --git a/tools/sdk/esp32s2/include/esp_system/include/esp_sleep.h b/tools/sdk/esp32s2/include/esp_system/include/esp_sleep.h index e423e6df..8e5e4b39 100644 --- a/tools/sdk/esp32s2/include/esp_system/include/esp_sleep.h +++ b/tools/sdk/esp32s2/include/esp_system/include/esp_sleep.h @@ -93,8 +93,10 @@ esp_err_t esp_sleep_disable_wakeup_source(esp_sleep_source_t source); /** * @brief Enable wakeup by ULP coprocessor - * @note On ESP32, ULP wakeup source cannot be used when RTC_PERIPH power domain is forced - * to be powered on (ESP_PD_OPTION_ON) or when ext0 wakeup source is used. + * @note In revisions 0 and 1 of the ESP32, ULP wakeup source + * cannot be used when RTC_PERIPH power domain is forced + * to be powered on (ESP_PD_OPTION_ON) or when + * ext0 wakeup source is used. * @return * - ESP_OK on success * - ESP_ERR_NOT_SUPPORTED if additional current by touch (CONFIG_ESP32_RTC_EXT_CRYST_ADDIT_CURRENT) is enabled. @@ -116,6 +118,8 @@ esp_err_t esp_sleep_enable_timer_wakeup(uint64_t time_in_us); * * @note In revisions 0 and 1 of the ESP32, touch wakeup source * can not be used when RTC_PERIPH power domain is forced + * to be powered on (ESP_PD_OPTION_ON) or when ext0 wakeup + * source is used. * * @note The FSM mode of the touch button should be configured * as the timer trigger mode. diff --git a/tools/sdk/esp32s2/include/esp_wifi/include/esp_mesh_internal.h b/tools/sdk/esp32s2/include/esp_wifi/include/esp_mesh_internal.h index d10e2979..87f6a5f5 100644 --- a/tools/sdk/esp32s2/include/esp_wifi/include/esp_mesh_internal.h +++ b/tools/sdk/esp32s2/include/esp_wifi/include/esp_mesh_internal.h @@ -285,6 +285,15 @@ esp_err_t esp_mesh_get_announce_interval(int *short_ms, int *long_ms); */ esp_err_t esp_mesh_ps_get_duties(esp_mesh_ps_duties_t* ps_duties); +/** + * @brief Enable mesh print scan result + * + * @param[in] enable enable or not + * + * @return + * - ESP_OK + */ +esp_err_t esp_mesh_print_scan_result(bool enable); #ifdef __cplusplus } #endif diff --git a/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/adc_ll.h b/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/adc_ll.h index 530f67e6..cf4cd6e5 100644 --- a/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/adc_ll.h +++ b/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/adc_ll.h @@ -69,66 +69,6 @@ typedef enum { ADC2_CTRL_FORCE_DIG = 6, /*! #include +#include "esp_attr.h" #include "soc/periph_defs.h" #include "soc/system_reg.h" #include "soc/syscon_reg.h" @@ -84,6 +85,8 @@ static inline uint32_t periph_ll_get_clk_en_mask(periph_module_t periph) return DPORT_WIFI_CLK_WIFI_BT_COMMON_M; case PERIPH_SYSTIMER_MODULE: return DPORT_SYSTIMER_CLK_EN; + case PERIPH_DEDIC_GPIO_MODULE: + return DPORT_CLK_EN_DEDICATED_GPIO; case PERIPH_AES_MODULE: return DPORT_CRYPTO_AES_CLK_EN; case PERIPH_SHA_MODULE: @@ -156,6 +159,8 @@ static inline uint32_t periph_ll_get_rst_en_mask(periph_module_t periph, bool en return DPORT_TWAI_RST; case PERIPH_SYSTIMER_MODULE: return DPORT_SYSTIMER_RST; + case PERIPH_DEDIC_GPIO_MODULE: + return DPORT_RST_EN_DEDICATED_GPIO; case PERIPH_AES_MODULE: if (enable == true) { // Clear reset on digital signature, otherwise AES unit is held in reset also. @@ -207,6 +212,8 @@ static inline uint32_t periph_ll_get_rst_en_mask(periph_module_t periph, bool en static inline uint32_t periph_ll_get_clk_en_reg(periph_module_t periph) { switch (periph) { + case PERIPH_DEDIC_GPIO_MODULE: + return DPORT_CPU_PERI_CLK_EN_REG; case PERIPH_RNG_MODULE: case PERIPH_WIFI_MODULE: case PERIPH_WIFI_BT_COMMON_MODULE: @@ -226,6 +233,8 @@ static inline uint32_t periph_ll_get_clk_en_reg(periph_module_t periph) static inline uint32_t periph_ll_get_rst_en_reg(periph_module_t periph) { switch (periph) { + case PERIPH_DEDIC_GPIO_MODULE: + return DPORT_CPU_PERI_RST_EN_REG; case PERIPH_RNG_MODULE: case PERIPH_WIFI_MODULE: case PERIPH_WIFI_BT_COMMON_MODULE: diff --git a/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/cpu_ll.h b/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/cpu_ll.h index f0a6df04..56b22a4f 100644 --- a/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/cpu_ll.h +++ b/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/cpu_ll.h @@ -154,7 +154,7 @@ static inline bool cpu_ll_is_debugger_attached(void) uint32_t dcr = 0; uint32_t reg = DSRSET; RER(reg, dcr); - return (dcr&0x1); + return (dcr & 0x1); } @@ -168,6 +168,30 @@ static inline void cpu_ll_set_vecbase(const void* vecbase) asm volatile ("wsr %0, vecbase" :: "r" (vecbase)); } +static inline uint32_t cpu_ll_read_dedic_gpio_in(void) +{ + uint32_t value = 0; + asm volatile("get_gpio_in %0" : "=r"(value) : :); + return value; +} + +static inline uint32_t cpu_ll_read_dedic_gpio_out(void) +{ + uint32_t value = 0; + asm volatile("rur.gpio_out %0" : "=r"(value) : :); + return value; +} + +static inline void cpu_ll_write_dedic_gpio_all(uint32_t value) +{ + asm volatile("wur.gpio_out %0"::"r"(value):); +} + +static inline void cpu_ll_write_dedic_gpio_mask(uint32_t mask, uint32_t value) +{ + asm volatile("wr_mask_gpio_out %0, %1" : : "r"(value), "r"(mask):); +} + #ifdef __cplusplus } #endif diff --git a/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/dedic_gpio_ll.h b/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/dedic_gpio_ll.h new file mode 100644 index 00000000..3cbf29b7 --- /dev/null +++ b/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/dedic_gpio_ll.h @@ -0,0 +1,110 @@ +// Copyright 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 +// distributed under the License is distributed on an "AS IS" BASIS, +// 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. +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include "soc/dedic_gpio_struct.h" + +static inline void dedic_gpio_ll_enable_instruction_access_out(dedic_dev_t *dev, uint32_t channel_mask, bool enable) +{ + if (enable) { + dev->gpio_out_cpu.val |= channel_mask; + } else { + dev->gpio_out_cpu.val &= ~channel_mask; + } +} + +static inline void dedic_gpio_ll_write_all(dedic_dev_t *dev, uint32_t value) +{ + dev->gpio_out_drt.val = value; +} + +static inline void dedic_gpio_ll_write_mask(dedic_dev_t *dev, uint32_t channel_mask, uint32_t value) +{ + dedic_gpio_out_msk_reg_t d = { + .gpio_out_msk = channel_mask, + .gpio_out_value = value + }; + dev->gpio_out_msk.val = d.val; +} + +static inline void dedic_gpio_ll_set_channel(dedic_dev_t *dev, uint32_t channel) +{ + dev->gpio_out_idv.val = 1 << (2 * channel); +} + +static inline void dedic_gpio_ll_clear_channel(dedic_dev_t *dev, uint32_t channel) +{ + dev->gpio_out_idv.val = 2 << (2 * channel); +} + +static inline void dedic_gpio_ll_toggle_channel(dedic_dev_t *dev, uint32_t channel) +{ + dev->gpio_out_idv.val = 3 << (2 * channel); +} + +static inline uint32_t dedic_gpio_ll_read_out_all(dedic_dev_t *dev) +{ + return dev->gpio_out_scan.gpio_out_status; +} + +static inline uint32_t dedic_gpio_ll_read_in_all(dedic_dev_t *dev) +{ + return dev->gpio_in_scan.gpio_in_status; +} + +static inline void dedic_gpio_ll_set_input_delay(dedic_dev_t *dev, uint32_t channel, uint32_t delay_cpu_clks) +{ + dev->gpio_in_dly.val &= ~(3 << (2 * channel)); + dev->gpio_in_dly.val |= (delay_cpu_clks & 0x03) << (2 * channel); +} + +static inline uint32_t dedic_gpio_ll_get_input_delay(dedic_dev_t *dev, uint32_t channel) +{ + return (dev->gpio_in_dly.val & (3 << (2 * channel)) >> (2 * channel)); +} + +static inline void dedic_gpio_ll_set_interrupt_type(dedic_dev_t *dev, uint32_t channel, uint32_t type) +{ + dev->gpio_intr_rcgn.val &= ~(7 << (3 * channel)); + dev->gpio_intr_rcgn.val |= (type & 0x07) << (3 * channel); +} + +static inline void dedic_gpio_ll_enable_interrupt(dedic_dev_t *dev, uint32_t channel_mask, bool enable) +{ + if (enable) { + dev->gpio_intr_rls.val |= channel_mask; + } else { + dev->gpio_intr_rls.val &= ~channel_mask; + } +} + +static inline uint32_t __attribute__((always_inline)) dedic_gpio_ll_get_interrupt_status(dedic_dev_t *dev) +{ + return dev->gpio_intr_st.val; +} + +static inline void __attribute__((always_inline)) dedic_gpio_ll_clear_interrupt_status(dedic_dev_t *dev, uint32_t channel_mask) +{ + dev->gpio_intr_clr.val = channel_mask; +} + +#ifdef __cplusplus +} +#endif diff --git a/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/gpspi_flash_ll.h b/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/gpspi_flash_ll.h index aa948225..fce8aa92 100644 --- a/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/gpspi_flash_ll.h +++ b/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/gpspi_flash_ll.h @@ -275,17 +275,18 @@ static inline void gpspi_flash_ll_set_mosi_bitlen(spi_dev_t *dev, uint32_t bitle } /** - * Set the command with fixed length (8 bits). + * Set the command. * * @param dev Beginning address of the peripheral registers. * @param command Command to send + * @param bitlen Length of the command */ -static inline void gpspi_flash_ll_set_command8(spi_dev_t *dev, uint8_t command) +static inline void gpspi_flash_ll_set_command(spi_dev_t *dev, uint8_t command, uint32_t bitlen) { dev->user.usr_command = 1; typeof(dev->user2) user2 = { .usr_command_value = command, - .usr_command_bitlen = (8 - 1), + .usr_command_bitlen = (bitlen - 1), }; dev->user2 = user2; } @@ -321,7 +322,9 @@ static inline void gpspi_flash_ll_set_addr_bitlen(spi_dev_t *dev, uint32_t bitle */ static inline void gpspi_flash_ll_set_usr_address(spi_dev_t *dev, uint32_t addr, uint32_t bitlen) { - dev->addr = (addr << (32 - bitlen)); + // The blank region should be all ones + uint32_t padding_ones = (bitlen == 32? 0 : UINT32_MAX >> bitlen); + dev->addr = (addr << (32 - bitlen)) | padding_ones; } /** @@ -361,6 +364,12 @@ static inline void gpspi_flash_ll_set_dummy_out(spi_dev_t *dev, uint32_t out_en, dev->ctrl.d_pol = out_lev; } +static inline void gpspi_flash_ll_set_hold(spi_dev_t *dev, uint32_t hold_n) +{ + dev->ctrl2.cs_hold_time = hold_n - 1; + dev->user.cs_hold = (hold_n > 0? 1: 0); +} + #ifdef __cplusplus } #endif diff --git a/tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/memprot_peri_ll.h b/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/memprot_peri_ll.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/src/esp32s2/include/hal/memprot_peri_ll.h rename to tools/sdk/esp32s2/include/hal/esp32s2/include/hal/memprot_peri_ll.h diff --git a/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/spi_flash_ll.h b/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/spi_flash_ll.h index 8cb6cf7f..86665989 100644 --- a/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/spi_flash_ll.h +++ b/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/spi_flash_ll.h @@ -54,6 +54,7 @@ typedef union { } spi_flash_ll_clock_reg_t; #ifdef GPSPI_BUILD + #define spi_flash_ll_reset(dev) gpspi_flash_ll_reset((spi_dev_t*)dev) #define spi_flash_ll_cmd_is_done(dev) gpspi_flash_ll_cmd_is_done((spi_dev_t*)dev) #define spi_flash_ll_get_buffer_data(dev, buffer, read_len) gpspi_flash_ll_get_buffer_data((spi_dev_t*)dev, buffer, read_len) @@ -66,14 +67,17 @@ typedef union { #define spi_flash_ll_set_clock(dev, clk) gpspi_flash_ll_set_clock((spi_dev_t*)dev, (gpspi_flash_ll_clock_reg_t*)clk) #define spi_flash_ll_set_miso_bitlen(dev, bitlen) gpspi_flash_ll_set_miso_bitlen((spi_dev_t*)dev, bitlen) #define spi_flash_ll_set_mosi_bitlen(dev, bitlen) gpspi_flash_ll_set_mosi_bitlen((spi_dev_t*)dev, bitlen) -#define spi_flash_ll_set_command8(dev, cmd) gpspi_flash_ll_set_command8((spi_dev_t*)dev, cmd) +#define spi_flash_ll_set_command(dev, cmd, bitlen) gpspi_flash_ll_set_command((spi_dev_t*)dev, cmd, bitlen) #define spi_flash_ll_set_addr_bitlen(dev, bitlen) gpspi_flash_ll_set_addr_bitlen((spi_dev_t*)dev, bitlen) #define spi_flash_ll_get_addr_bitlen(dev) gpspi_flash_ll_get_addr_bitlen((spi_dev_t*)dev) #define spi_flash_ll_set_address(dev, addr) gpspi_flash_ll_set_address((spi_dev_t*)dev, addr) #define spi_flash_ll_set_usr_address(dev, addr, bitlen) gpspi_flash_ll_set_usr_address((spi_dev_t*)dev, addr, bitlen) #define spi_flash_ll_set_dummy(dev, dummy) gpspi_flash_ll_set_dummy((spi_dev_t*)dev, dummy) #define spi_flash_ll_set_dummy_out(dev, en, lev) gpspi_flash_ll_set_dummy_out((spi_dev_t*)dev, en, lev) +#define spi_flash_ll_set_hold(dev, hold_n) gpspi_flash_ll_set_hold((spi_dev_t*)dev, hold_n) + #else + #define spi_flash_ll_reset(dev) spimem_flash_ll_reset((spi_mem_dev_t*)dev) #define spi_flash_ll_cmd_is_done(dev) spimem_flash_ll_cmd_is_done((spi_mem_dev_t*)dev) #define spi_flash_ll_erase_chip(dev) spimem_flash_ll_erase_chip((spi_mem_dev_t*)dev) @@ -91,13 +95,15 @@ typedef union { #define spi_flash_ll_set_clock(dev, clk) spimem_flash_ll_set_clock((spi_mem_dev_t*)dev, (spimem_flash_ll_clock_reg_t*)clk) #define spi_flash_ll_set_miso_bitlen(dev, bitlen) spimem_flash_ll_set_miso_bitlen((spi_mem_dev_t*)dev, bitlen) #define spi_flash_ll_set_mosi_bitlen(dev, bitlen) spimem_flash_ll_set_mosi_bitlen((spi_mem_dev_t*)dev, bitlen) -#define spi_flash_ll_set_command8(dev, cmd) spimem_flash_ll_set_command8((spi_mem_dev_t*)dev, cmd) +#define spi_flash_ll_set_command(dev, cmd, bitlen) spimem_flash_ll_set_command((spi_mem_dev_t*)dev, cmd, bitlen) #define spi_flash_ll_set_addr_bitlen(dev, bitlen) spimem_flash_ll_set_addr_bitlen((spi_mem_dev_t*)dev, bitlen) #define spi_flash_ll_get_addr_bitlen(dev) spimem_flash_ll_get_addr_bitlen((spi_mem_dev_t*) dev) #define spi_flash_ll_set_address(dev, addr) spimem_flash_ll_set_address((spi_mem_dev_t*)dev, addr) -#define spi_flash_ll_set_usr_address(dev, addr, bitlen) spimem_flash_ll_set_address((spi_mem_dev_t*)dev, addr) +#define spi_flash_ll_set_usr_address(dev, addr, bitlen) spimem_flash_ll_set_usr_address((spi_mem_dev_t*)dev, addr, bitlen) #define spi_flash_ll_set_dummy(dev, dummy) spimem_flash_ll_set_dummy((spi_mem_dev_t*)dev, dummy) #define spi_flash_ll_set_dummy_out(dev, en, lev) spimem_flash_ll_set_dummy_out((spi_mem_dev_t*)dev, en, lev) +#define spi_flash_ll_set_hold(dev, hold_n) spimem_flash_ll_set_hold((spi_mem_dev_t*)dev, hold_n) + #endif #ifdef __cplusplus diff --git a/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/spi_ll.h b/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/spi_ll.h index 0506ed6b..e05b3ef0 100644 --- a/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/spi_ll.h +++ b/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/spi_ll.h @@ -166,11 +166,21 @@ static inline bool spi_ll_usr_is_done(spi_dev_t *hw) } /** - * Trigger start of user-defined transaction. + * Trigger start of user-defined transaction for master. * * @param hw Beginning address of the peripheral registers. */ -static inline void spi_ll_user_start(spi_dev_t *hw) +static inline void spi_ll_master_user_start(spi_dev_t *hw) +{ + hw->cmd.usr = 1; +} + +/** + * Trigger start of user-defined transaction for slave. + * + * @param hw Beginning address of the peripheral registers. + */ +static inline void spi_ll_slave_user_start(spi_dev_t *hw) { hw->cmd.usr = 1; } diff --git a/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/spimem_flash_ll.h b/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/spimem_flash_ll.h index 90f808aa..d2f7e6f3 100644 --- a/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/spimem_flash_ll.h +++ b/tools/sdk/esp32s2/include/hal/esp32s2/include/hal/spimem_flash_ll.h @@ -308,17 +308,18 @@ static inline void spimem_flash_ll_set_mosi_bitlen(spi_mem_dev_t *dev, uint32_t } /** - * Set the command with fixed length (8 bits). + * Set the command. * * @param dev Beginning address of the peripheral registers. * @param command Command to send + * @param bitlen Length of the command */ -static inline void spimem_flash_ll_set_command8(spi_mem_dev_t *dev, uint8_t command) +static inline void spimem_flash_ll_set_command(spi_mem_dev_t *dev, uint32_t command, uint32_t bitlen) { dev->user.usr_command = 1; typeof(dev->user2) user2 = { .usr_command_value = command, - .usr_command_bitlen = (8 - 1), + .usr_command_bitlen = (bitlen - 1), }; dev->user2 = user2; } @@ -357,6 +358,18 @@ static inline void spimem_flash_ll_set_address(spi_mem_dev_t *dev, uint32_t addr dev->addr = addr; } +/** + * Set the address to send in user mode. Should be called before commands that requires the address e.g. erase sector, read, write... + * + * @param dev Beginning address of the peripheral registers. + * @param addr Address to send + */ +static inline void spimem_flash_ll_set_usr_address(spi_mem_dev_t *dev, uint32_t addr, uint32_t bitlen) +{ + (void)bitlen; + spimem_flash_ll_set_address(dev, addr); +} + /** * Set the length of dummy cycles. * @@ -383,6 +396,13 @@ static inline void spimem_flash_ll_set_dummy_out(spi_mem_dev_t *dev, uint32_t ou dev->ctrl.d_pol = out_lev; } +static inline void spimem_flash_ll_set_hold(spi_mem_dev_t *dev, uint32_t hold_n) +{ + dev->ctrl2.cs_hold_time = hold_n - 1; + dev->user.cs_hold = (hold_n > 0? 1: 0); +} + + #ifdef __cplusplus } #endif diff --git a/tools/sdk/esp32s2/include/hal/include/hal/rtc_io_hal.h b/tools/sdk/esp32s2/include/hal/include/hal/rtc_io_hal.h index 5301cb32..74208559 100644 --- a/tools/sdk/esp32s2/include/hal/include/hal/rtc_io_hal.h +++ b/tools/sdk/esp32s2/include/hal/include/hal/rtc_io_hal.h @@ -220,9 +220,10 @@ void rtcio_hal_set_direction_in_sleep(int rtcio_num, rtc_gpio_mode_t mode); #define rtcio_hal_wakeup_disable(rtcio_num) rtcio_ll_wakeup_disable(rtcio_num) /** - * Disable wakeup function from light sleep status for rtcio. + * Set specific logic level on an RTC IO pin as a wakeup trigger. * * @param rtcio_num The index of rtcio. 0 ~ SOC_RTCIO_PIN_COUNT. + * @param level Logic level (0) */ #define rtcio_hal_ext0_set_wakeup_pin(rtcio_num, level) rtcio_ll_ext0_set_wakeup_pin(rtcio_num, level) @@ -243,4 +244,4 @@ void rtcio_hal_isolate(int rtc_num); #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/tools/sdk/esp32s2/include/soc/include/hal/sha_hal.h b/tools/sdk/esp32s2/include/hal/include/hal/sha_hal.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/include/hal/sha_hal.h rename to tools/sdk/esp32s2/include/hal/include/hal/sha_hal.h diff --git a/tools/sdk/esp32s2/include/hal/include/hal/sigmadelta_types.h b/tools/sdk/esp32s2/include/hal/include/hal/sigmadelta_types.h index e4dce6fb..81023905 100644 --- a/tools/sdk/esp32s2/include/hal/include/hal/sigmadelta_types.h +++ b/tools/sdk/esp32s2/include/hal/include/hal/sigmadelta_types.h @@ -38,10 +38,12 @@ typedef enum { SIGMADELTA_CHANNEL_1, /*!< Sigma-delta channel 1 */ SIGMADELTA_CHANNEL_2, /*!< Sigma-delta channel 2 */ SIGMADELTA_CHANNEL_3, /*!< Sigma-delta channel 3 */ +#if SOC_SIGMADELTA_CHANNEL_NUM > 4 SIGMADELTA_CHANNEL_4, /*!< Sigma-delta channel 4 */ SIGMADELTA_CHANNEL_5, /*!< Sigma-delta channel 5 */ SIGMADELTA_CHANNEL_6, /*!< Sigma-delta channel 6 */ SIGMADELTA_CHANNEL_7, /*!< Sigma-delta channel 7 */ +#endif SIGMADELTA_CHANNEL_MAX, /*!< Sigma-delta channel max */ } sigmadelta_channel_t; @@ -57,4 +59,4 @@ typedef struct { #ifdef __cplusplus } -#endif \ No newline at end of file +#endif diff --git a/tools/sdk/esp32s2/include/hal/include/hal/spi_flash_hal.h b/tools/sdk/esp32s2/include/hal/include/hal/spi_flash_hal.h index 63062947..c17ed986 100644 --- a/tools/sdk/esp32s2/include/hal/include/hal/spi_flash_hal.h +++ b/tools/sdk/esp32s2/include/hal/include/hal/spi_flash_hal.h @@ -40,10 +40,17 @@ typedef struct { spi_flash_host_inst_t inst; ///< Host instance, containing host data and function pointer table. May update with the host (hardware version). spi_dev_t *spi; ///< Pointer to SPI peripheral registers (SP1, SPI2 or SPI3). Set before initialisation. int cs_num; ///< Which cs pin is used, 0-2. - int extra_dummy; ///< Pre-calculated extra dummy used for compensation + struct { + uint8_t extra_dummy; ///< Pre-calculated extra dummy used for compensation + uint8_t reserved1; ///< Reserved, set to 0. + uint8_t cs_hold; ///< CS hold time config used by the host + uint8_t reserved2; ///< Reserved, set to 0. + }; spi_flash_ll_clock_reg_t clock_conf; ///< Pre-calculated clock configuration value - uint32_t reserved_config[2]; ///< The ROM has reserved some memory for configurations with one set of driver code. (e.g. QPI mode, 64-bit address mode, etc.) + esp_flash_io_mode_t base_io_mode; ///< Default IO mode mask for common commands + uint32_t reserved_config[1]; ///< The ROM has reserved some memory for configurations with one set of driver code. (e.g. QPI mode, 64-bit address mode, etc.) } spi_flash_hal_context_t; +_Static_assert(sizeof(spi_flash_hal_context_t) == 28, "size of spi_flash_hal_context_t incorrect. Please check data compatibility with the ROM"); /// Configuration structure for the SPI driver. typedef struct { @@ -52,6 +59,7 @@ typedef struct { bool iomux; ///< Whether the IOMUX is used, used for timing compensation. int input_delay_ns; ///< Input delay on the MISO pin after the launch clock, used for timing compensation. esp_flash_speed_t speed;///< SPI flash clock speed to work at. + uint32_t cs_hold; ///< CS hold time config used by the host } spi_flash_hal_config_t; /** @@ -98,7 +106,7 @@ void spi_flash_hal_erase_chip(spi_flash_host_inst_t *host); /** * Erase a specific sector by its start address through the sector erase (20h) - * command. + * command. For 24bit address only. * * @param host The driver context. * @param start_address Start address of the sector to erase. @@ -107,7 +115,7 @@ void spi_flash_hal_erase_sector(spi_flash_host_inst_t *host, uint32_t start_addr /** * Erase a specific 64KB block by its start address through the 64KB block - * erase (D8h) command. + * erase (D8h) command. For 24bit address only. * * @param host The driver context. * @param start_address Start address of the block to erase. @@ -115,7 +123,7 @@ void spi_flash_hal_erase_sector(spi_flash_host_inst_t *host, uint32_t start_addr void spi_flash_hal_erase_block(spi_flash_host_inst_t *host, uint32_t start_address); /** - * Program a page of the flash using the page program (02h) command. + * Program a page of the flash using the page program (02h) command. For 24bit address only. * * @param host The driver context. * @param address Address of the page to program diff --git a/tools/sdk/esp32s2/include/hal/include/hal/spi_flash_types.h b/tools/sdk/esp32s2/include/hal/include/hal/spi_flash_types.h index d2efe3e8..b763ee3d 100644 --- a/tools/sdk/esp32s2/include/hal/include/hal/spi_flash_types.h +++ b/tools/sdk/esp32s2/include/hal/include/hal/spi_flash_types.h @@ -15,6 +15,7 @@ #pragma once #include +#include #include "esp_flash_err.h" #ifdef __cplusplus @@ -23,13 +24,19 @@ extern "C" { /** Definition of a common transaction. Also holds the return value. */ typedef struct { - uint8_t command; ///< Command to send, always 8bits + uint8_t reserved; ///< Reserved, must be 0. uint8_t mosi_len; ///< Output data length, in bytes uint8_t miso_len; ///< Input data length, in bytes uint8_t address_bitlen; ///< Length of address in bits, set to 0 if command does not need an address uint32_t address; ///< Address to perform operation on const uint8_t *mosi_data; ///< Output data to salve uint8_t *miso_data; ///< [out] Input data from slave, little endian + uint32_t flags; ///< Flags for this transaction. Set to 0 for now. +#define SPI_FLASH_TRANS_FLAG_CMD16 BIT(0) ///< Send command of 16 bits +#define SPI_FLASH_TRANS_FLAG_IGNORE_BASEIO BIT(1) ///< Not applying the basic io mode configuration for this transaction +#define SPI_FLASH_TRANS_FLAG_BYTE_SWAP BIT(2) ///< Used for DTR mode, to swap the bytes of a pair of rising/falling edge + uint16_t command; ///< Command to send + uint8_t dummy_bitlen; ///< Basic dummy bits to use } spi_flash_trans_t; /** @@ -53,6 +60,9 @@ typedef enum { ///Lowest speed supported by the driver, currently 5 MHz #define ESP_FLASH_SPEED_MIN ESP_FLASH_5MHZ +// These bits are not quite like "IO mode", but are able to be appended into the io mode and used by the HAL. +#define SPI_FLASH_CONFIG_CONF_BITS BIT(31) ///< OR the io_mode with this mask, to enable the dummy output feature or replace the first several dummy bits into address to meet the requirements of conf bits. (Used in DIO/QIO/OIO mode) + /** @brief Mode used for reading from SPI flash */ typedef enum { SPI_FLASH_SLOWRD = 0, ///< Data read using single I/O, some limits on speed diff --git a/tools/sdk/esp32s2/include/idf_test/include/esp32/idf_performance_target.h b/tools/sdk/esp32s2/include/idf_test/include/esp32/idf_performance_target.h index 2e906b02..3002ece2 100644 --- a/tools/sdk/esp32s2/include/idf_test/include/esp32/idf_performance_target.h +++ b/tools/sdk/esp32s2/include/idf_test/include/esp32/idf_performance_target.h @@ -18,8 +18,18 @@ #define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_NO_POLLING 30 #define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_NO_POLLING_NO_DMA 27 +#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B 50600 +#endif +#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B 50300 +#endif + +#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B 68900 +#endif #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_4B -#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_4B (359*1000) +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_4B (338*1000) #endif #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_2KB diff --git a/tools/sdk/esp32s2/include/idf_test/include/esp32s2/idf_performance_target.h b/tools/sdk/esp32s2/include/idf_test/include/esp32s2/idf_performance_target.h index 3c805b02..7f3d6ac2 100644 --- a/tools/sdk/esp32s2/include/idf_test/include/esp32s2/idf_performance_target.h +++ b/tools/sdk/esp32s2/include/idf_test/include/esp32s2/idf_performance_target.h @@ -17,6 +17,17 @@ #define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_NO_POLLING 32 #define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_NO_POLLING_NO_DMA 30 +#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B 53400 +#endif + +#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B 53600 +#endif + +#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B 64900 +#endif #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_4B #define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_4B (309*1000) #endif @@ -26,5 +37,5 @@ #endif #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_ERASE -#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_ERASE 40300 +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_ERASE 37500 #endif diff --git a/tools/sdk/esp32s2/include/idf_test/include/esp32s3/idf_performance_target.h b/tools/sdk/esp32s2/include/idf_test/include/esp32s3/idf_performance_target.h index 269a3c91..67a1ae3e 100644 --- a/tools/sdk/esp32s2/include/idf_test/include/esp32s3/idf_performance_target.h +++ b/tools/sdk/esp32s2/include/idf_test/include/esp32s3/idf_performance_target.h @@ -16,6 +16,17 @@ #define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_NO_POLLING 32 #define IDF_PERFORMANCE_MAX_SPI_PER_TRANS_NO_POLLING_NO_DMA 30 +#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B 53400 +#endif + +#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B 53600 +#endif + +#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B +#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B 68900 +#endif #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_4B #define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_4B (309*1000) #endif diff --git a/tools/sdk/esp32s2/include/idf_test/include/idf_performance.h b/tools/sdk/esp32s2/include/idf_test/include/idf_performance.h index 844f9459..15a27a38 100644 --- a/tools/sdk/esp32s2/include/idf_test/include/idf_performance.h +++ b/tools/sdk/esp32s2/include/idf_test/include/idf_performance.h @@ -93,9 +93,7 @@ #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_WR_4B #define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_WR_4B 22200 #endif -#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B -#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B 53400 -#endif +// IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_RD_4B in target file #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_WR_2KB #define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_LEGACY_WR_2KB (701*1000) #endif @@ -110,9 +108,7 @@ #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_WR_4B #define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_WR_4B 27400 #endif -#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B -#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B 53600 -#endif +// IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_RD_4B in target file #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_WR_2KB #define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_WR_2KB (694*1000) #endif @@ -140,9 +136,7 @@ #endif // Some performance value based on the test against GD chip with single_core config. -#ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B -#define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B 68900 -#endif +// IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_4B in target file // IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_RD_4B in target file #ifndef IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_2KB #define IDF_PERFORMANCE_MIN_FLASH_SPEED_BYTE_PER_SEC_EXT_WR_2KB (475*1000) diff --git a/tools/sdk/esp32s2/include/lwip/include/apps/esp_ping.h b/tools/sdk/esp32s2/include/lwip/include/apps/esp_ping.h index 181921d3..86dcc6ac 100644 --- a/tools/sdk/esp32s2/include/lwip/include/apps/esp_ping.h +++ b/tools/sdk/esp32s2/include/lwip/include/apps/esp_ping.h @@ -54,7 +54,8 @@ typedef enum { PING_TARGET_RES_FN = 55, /**< ping result callback function */ PING_TARGET_RES_RESET = 56, /**< ping result statistic reset */ PING_TARGET_DATA_LEN = 57, /**< ping data length*/ - PING_TARGET_IP_TOS = 58 /**< ping QOS*/ + PING_TARGET_IP_TOS = 58, /**< ping QOS*/ + PING_TARGET_IF_INDEX = 59 /**< ping if index*/ } ping_target_id_t; typedef enum { diff --git a/tools/sdk/esp32s2/include/lwip/include/apps/ping/ping_sock.h b/tools/sdk/esp32s2/include/lwip/include/apps/ping/ping_sock.h index f2581fdb..2a37e583 100644 --- a/tools/sdk/esp32s2/include/lwip/include/apps/ping/ping_sock.h +++ b/tools/sdk/esp32s2/include/lwip/include/apps/ping/ping_sock.h @@ -71,6 +71,7 @@ typedef struct { ip_addr_t target_addr; /*!< Target IP address, either IPv4 or IPv6 */ uint32_t task_stack_size; /*!< Stack size of internal ping task */ uint32_t task_prio; /*!< Priority of internal ping task */ + uint32_t interface; /*!< Netif index, interface=0 means NETIF_NO_INDEX*/ } esp_ping_config_t; /** @@ -87,6 +88,7 @@ typedef struct { .target_addr = ip_addr_any_type, \ .task_stack_size = 2048, \ .task_prio = 2, \ + .interface = 0,\ } #define ESP_PING_COUNT_INFINITE (0) /*!< Set ping count to zero will ping target infinitely */ 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 5e178a20..709730af 100644 --- a/tools/sdk/esp32s2/include/lwip/port/esp32/include/lwipopts.h +++ b/tools/sdk/esp32s2/include/lwip/port/esp32/include/lwipopts.h @@ -420,6 +420,17 @@ */ #define LWIP_TCP_RTO_TIME CONFIG_LWIP_TCP_RTO_TIME +/** + * Set TCP hook for Initial Sequence Number (ISN) + */ +#ifdef CONFIG_LWIP_TCP_ISN_HOOK +#include +struct ip_addr; +u32_t lwip_hook_tcp_isn(const struct ip_addr *local_ip, u16_t local_port, + const struct ip_addr *remote_ip, u16_t remote_port); +#define LWIP_HOOK_TCP_ISN lwip_hook_tcp_isn +#endif + /* ---------------------------------- ---------- Pbuf options ---------- diff --git a/tools/sdk/esp32s2/include/lwip/port/esp32/tcp_isn/tcp_isn.h b/tools/sdk/esp32s2/include/lwip/port/esp32/tcp_isn/tcp_isn.h new file mode 100644 index 00000000..a40c4a1a --- /dev/null +++ b/tools/sdk/esp32s2/include/lwip/port/esp32/tcp_isn/tcp_isn.h @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2016 The MINIX 3 Project. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * Author: David van Moolenbroek + */ + +#ifndef LWIP_TCP_ISN_H +#define LWIP_TCP_ISN_H + +#include "lwip/opt.h" +#include "lwip/ip_addr.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void lwip_init_tcp_isn(u32_t boot_time, const u8_t *secret_16_bytes); +u32_t lwip_hook_tcp_isn(const ip_addr_t *local_ip, u16_t local_port, + const ip_addr_t *remote_ip, u16_t remote_port); + +#ifdef __cplusplus +} +#endif + +#endif /* LWIP_TCP_ISN_H */ diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/adc_channel.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/adc_channel.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/adc_channel.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/adc_channel.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/apb_ctrl_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/apb_ctrl_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/apb_ctrl_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/apb_ctrl_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/apb_ctrl_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/apb_ctrl_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/apb_ctrl_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/apb_ctrl_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/apb_saradc_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/apb_saradc_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/apb_saradc_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/apb_saradc_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/apb_saradc_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/apb_saradc_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/apb_saradc_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/apb_saradc_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/assist_debug_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/assist_debug_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/assist_debug_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/assist_debug_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/bb_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/bb_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/bb_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/bb_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/boot_mode.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/boot_mode.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/boot_mode.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/boot_mode.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/cache_memory.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/cache_memory.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/cache_memory.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/cache_memory.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/clkout_channel.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/clkout_channel.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/clkout_channel.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/clkout_channel.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/cp_dma_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/cp_dma_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/cp_dma_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/cp_dma_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/cp_dma_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/cp_dma_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/cp_dma_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/cp_dma_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/crypto_dma_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/crypto_dma_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/crypto_dma_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/crypto_dma_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/dac_channel.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/dac_channel.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/dac_channel.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/dac_channel.h diff --git a/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/dedic_gpio_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/dedic_gpio_reg.h new file mode 100644 index 00000000..7ad7022c --- /dev/null +++ b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/dedic_gpio_reg.h @@ -0,0 +1,751 @@ +/** Copyright 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 + * distributed under the License is distributed on an "AS IS" BASIS, + * 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. + */ + +#pragma once + +#include +#include "soc/soc.h" + +#ifdef __cplusplus +extern "C" { +#endif +/** Configuration registers */ + +/** DEDIC_GPIO_OUT_DRT_REG register + * Dedicated GPIO Directive Output + * register + */ +#define DEDIC_GPIO_OUT_DRT_REG (DR_REG_DEDICATED_GPIO_BASE + 0x0) +/* DEDIC_GPIO_OUT_DRT_VLAUE : WO; bitpos: [8:0]; default: 0; + * This register is used to configure directive output value of 8-channel + * dedicated + * gpio. + */ +#define DEDIC_GPIO_OUT_DRT_VLAUE 0x000000FF +#define DEDIC_GPIO_OUT_DRT_VLAUE_M (DEDIC_GPIO_OUT_DRT_VLAUE_V << DEDIC_GPIO_OUT_DRT_VLAUE_S) +#define DEDIC_GPIO_OUT_DRT_VLAUE_V 0x000000FF +#define DEDIC_GPIO_OUT_DRT_VLAUE_S 0 + +/** DEDIC_GPIO_OUT_MSK_REG register + * Dedicated GPIO Mask Output + * register + */ +#define DEDIC_GPIO_OUT_MSK_REG (DR_REG_DEDICATED_GPIO_BASE + 0x4) +/* DEDIC_GPIO_OUT_VALUE : WO; bitpos: [8:0]; default: 0; + * This register is used to configure masked output value of 8-channel + * dedicated + * gpio. + */ +#define DEDIC_GPIO_OUT_VALUE 0x000000FF +#define DEDIC_GPIO_OUT_VALUE_M (DEDIC_GPIO_OUT_VALUE_V << DEDIC_GPIO_OUT_VALUE_S) +#define DEDIC_GPIO_OUT_VALUE_V 0x000000FF +#define DEDIC_GPIO_OUT_VALUE_S 0 +/* DEDIC_GPIO_OUT_MSK : WO; bitpos: [16:8]; default: 0; + * This register is used to configure channels which would be masked. 1: + * corresponding channel's output would be + * masked. + */ +#define DEDIC_GPIO_OUT_MSK 0x000000FF +#define DEDIC_GPIO_OUT_MSK_M (DEDIC_GPIO_OUT_MSK_V << DEDIC_GPIO_OUT_MSK_S) +#define DEDIC_GPIO_OUT_MSK_V 0x000000FF +#define DEDIC_GPIO_OUT_MSK_S 8 + +/** DEDIC_GPIO_OUT_IDV_REG register + * Dedicated GPIO Individual Output + * register + */ +#define DEDIC_GPIO_OUT_IDV_REG (DR_REG_DEDICATED_GPIO_BASE + 0x8) +/* DEDIC_GPIO_OUT_IDV_CH0 : WO; bitpos: [2:0]; default: 0; + * Configure channel 0 output value. 0: hold output value; 1: set output + * value; 2: clear output value; 3: inverse output + * value. + */ +#define DEDIC_GPIO_OUT_IDV_CH0 0x00000003 +#define DEDIC_GPIO_OUT_IDV_CH0_M (DEDIC_GPIO_OUT_IDV_CH0_V << DEDIC_GPIO_OUT_IDV_CH0_S) +#define DEDIC_GPIO_OUT_IDV_CH0_V 0x00000003 +#define DEDIC_GPIO_OUT_IDV_CH0_S 0 +/* DEDIC_GPIO_OUT_IDV_CH1 : WO; bitpos: [4:2]; default: 0; + * Configure channel 1 output value. 0: hold output value; 1: set output + * value; 2: clear output value; 3: inverse output + * value. + */ +#define DEDIC_GPIO_OUT_IDV_CH1 0x00000003 +#define DEDIC_GPIO_OUT_IDV_CH1_M (DEDIC_GPIO_OUT_IDV_CH1_V << DEDIC_GPIO_OUT_IDV_CH1_S) +#define DEDIC_GPIO_OUT_IDV_CH1_V 0x00000003 +#define DEDIC_GPIO_OUT_IDV_CH1_S 2 +/* DEDIC_GPIO_OUT_IDV_CH2 : WO; bitpos: [6:4]; default: 0; + * Configure channel 2 output value. 0: hold output value; 1: set output + * value; 2: clear output value; 3: inverse output + * value. + */ +#define DEDIC_GPIO_OUT_IDV_CH2 0x00000003 +#define DEDIC_GPIO_OUT_IDV_CH2_M (DEDIC_GPIO_OUT_IDV_CH2_V << DEDIC_GPIO_OUT_IDV_CH2_S) +#define DEDIC_GPIO_OUT_IDV_CH2_V 0x00000003 +#define DEDIC_GPIO_OUT_IDV_CH2_S 4 +/* DEDIC_GPIO_OUT_IDV_CH3 : WO; bitpos: [8:6]; default: 0; + * Configure channel 3 output value. 0: hold output value; 1: set output + * value; 2: clear output value; 3: inverse output + * value. + */ +#define DEDIC_GPIO_OUT_IDV_CH3 0x00000003 +#define DEDIC_GPIO_OUT_IDV_CH3_M (DEDIC_GPIO_OUT_IDV_CH3_V << DEDIC_GPIO_OUT_IDV_CH3_S) +#define DEDIC_GPIO_OUT_IDV_CH3_V 0x00000003 +#define DEDIC_GPIO_OUT_IDV_CH3_S 6 +/* DEDIC_GPIO_OUT_IDV_CH4 : WO; bitpos: [10:8]; default: 0; + * Configure channel 4 output value. 0: hold output value; 1: set output + * value; 2: clear output value; 3: inverse output + * value. + */ +#define DEDIC_GPIO_OUT_IDV_CH4 0x00000003 +#define DEDIC_GPIO_OUT_IDV_CH4_M (DEDIC_GPIO_OUT_IDV_CH4_V << DEDIC_GPIO_OUT_IDV_CH4_S) +#define DEDIC_GPIO_OUT_IDV_CH4_V 0x00000003 +#define DEDIC_GPIO_OUT_IDV_CH4_S 8 +/* DEDIC_GPIO_OUT_IDV_CH5 : WO; bitpos: [12:10]; default: 0; + * Configure channel 5 output value. 0: hold output value; 1: set output + * value; 2: clear output value; 3: inverse output + * value. + */ +#define DEDIC_GPIO_OUT_IDV_CH5 0x00000003 +#define DEDIC_GPIO_OUT_IDV_CH5_M (DEDIC_GPIO_OUT_IDV_CH5_V << DEDIC_GPIO_OUT_IDV_CH5_S) +#define DEDIC_GPIO_OUT_IDV_CH5_V 0x00000003 +#define DEDIC_GPIO_OUT_IDV_CH5_S 10 +/* DEDIC_GPIO_OUT_IDV_CH6 : WO; bitpos: [14:12]; default: 0; + * Configure channel 6 output value. 0: hold output value; 1: set output + * value; 2: clear output value; 3: inverse output + * value. + */ +#define DEDIC_GPIO_OUT_IDV_CH6 0x00000003 +#define DEDIC_GPIO_OUT_IDV_CH6_M (DEDIC_GPIO_OUT_IDV_CH6_V << DEDIC_GPIO_OUT_IDV_CH6_S) +#define DEDIC_GPIO_OUT_IDV_CH6_V 0x00000003 +#define DEDIC_GPIO_OUT_IDV_CH6_S 12 +/* DEDIC_GPIO_OUT_IDV_CH7 : WO; bitpos: [16:14]; default: 0; + * Configure channel 7 output value. 0: hold output value; 1: set output + * value; 2: clear output value; 3: inverse output + * value. + */ +#define DEDIC_GPIO_OUT_IDV_CH7 0x00000003 +#define DEDIC_GPIO_OUT_IDV_CH7_M (DEDIC_GPIO_OUT_IDV_CH7_V << DEDIC_GPIO_OUT_IDV_CH7_S) +#define DEDIC_GPIO_OUT_IDV_CH7_V 0x00000003 +#define DEDIC_GPIO_OUT_IDV_CH7_S 14 + +/** DEDIC_GPIO_OUT_CPU_REG register + * Dedicated GPIO Output Mode Select + * register + */ +#define DEDIC_GPIO_OUT_CPU_REG (DR_REG_DEDICATED_GPIO_BASE + 0x10) +/* DEDIC_GPIO_OUT_CPU_SEL0 : R/W; bitpos: [0]; default: 0; + * Select gpio out value configured by registers or CPU instructors for + * channel 0. 1: select CPU + * instructors. + */ +#define DEDIC_GPIO_OUT_CPU_SEL0 (BIT(0)) +#define DEDIC_GPIO_OUT_CPU_SEL0_M (DEDIC_GPIO_OUT_CPU_SEL0_V << DEDIC_GPIO_OUT_CPU_SEL0_S) +#define DEDIC_GPIO_OUT_CPU_SEL0_V 0x00000001 +#define DEDIC_GPIO_OUT_CPU_SEL0_S 0 +/* DEDIC_GPIO_OUT_CPU_SEL1 : R/W; bitpos: [1]; default: 0; + * Select gpio out value configured by registers or CPU instructors for + * channel 1. 1: select CPU + * instructors. + */ +#define DEDIC_GPIO_OUT_CPU_SEL1 (BIT(1)) +#define DEDIC_GPIO_OUT_CPU_SEL1_M (DEDIC_GPIO_OUT_CPU_SEL1_V << DEDIC_GPIO_OUT_CPU_SEL1_S) +#define DEDIC_GPIO_OUT_CPU_SEL1_V 0x00000001 +#define DEDIC_GPIO_OUT_CPU_SEL1_S 1 +/* DEDIC_GPIO_OUT_CPU_SEL2 : R/W; bitpos: [2]; default: 0; + * Select gpio out value configured by registers or CPU instructors for + * channel 2. 1: select CPU + * instructors. + */ +#define DEDIC_GPIO_OUT_CPU_SEL2 (BIT(2)) +#define DEDIC_GPIO_OUT_CPU_SEL2_M (DEDIC_GPIO_OUT_CPU_SEL2_V << DEDIC_GPIO_OUT_CPU_SEL2_S) +#define DEDIC_GPIO_OUT_CPU_SEL2_V 0x00000001 +#define DEDIC_GPIO_OUT_CPU_SEL2_S 2 +/* DEDIC_GPIO_OUT_CPU_SEL3 : R/W; bitpos: [3]; default: 0; + * Select gpio out value configured by registers or CPU instructors for + * channel 3. 1: select CPU + * instructors. + */ +#define DEDIC_GPIO_OUT_CPU_SEL3 (BIT(3)) +#define DEDIC_GPIO_OUT_CPU_SEL3_M (DEDIC_GPIO_OUT_CPU_SEL3_V << DEDIC_GPIO_OUT_CPU_SEL3_S) +#define DEDIC_GPIO_OUT_CPU_SEL3_V 0x00000001 +#define DEDIC_GPIO_OUT_CPU_SEL3_S 3 +/* DEDIC_GPIO_OUT_CPU_SEL4 : R/W; bitpos: [4]; default: 0; + * Select gpio out value configured by registers or CPU instructors for + * channel 4. 1: select CPU + * instructors. + */ +#define DEDIC_GPIO_OUT_CPU_SEL4 (BIT(4)) +#define DEDIC_GPIO_OUT_CPU_SEL4_M (DEDIC_GPIO_OUT_CPU_SEL4_V << DEDIC_GPIO_OUT_CPU_SEL4_S) +#define DEDIC_GPIO_OUT_CPU_SEL4_V 0x00000001 +#define DEDIC_GPIO_OUT_CPU_SEL4_S 4 +/* DEDIC_GPIO_OUT_CPU_SEL5 : R/W; bitpos: [5]; default: 0; + * Select gpio out value configured by registers or CPU instructors for + * channel 5. 1: select CPU + * instructors. + */ +#define DEDIC_GPIO_OUT_CPU_SEL5 (BIT(5)) +#define DEDIC_GPIO_OUT_CPU_SEL5_M (DEDIC_GPIO_OUT_CPU_SEL5_V << DEDIC_GPIO_OUT_CPU_SEL5_S) +#define DEDIC_GPIO_OUT_CPU_SEL5_V 0x00000001 +#define DEDIC_GPIO_OUT_CPU_SEL5_S 5 +/* DEDIC_GPIO_OUT_CPU_SEL6 : R/W; bitpos: [6]; default: 0; + * Select gpio out value configured by registers or CPU instructors for + * channel 6. 1: select CPU + * instructors. + */ +#define DEDIC_GPIO_OUT_CPU_SEL6 (BIT(6)) +#define DEDIC_GPIO_OUT_CPU_SEL6_M (DEDIC_GPIO_OUT_CPU_SEL6_V << DEDIC_GPIO_OUT_CPU_SEL6_S) +#define DEDIC_GPIO_OUT_CPU_SEL6_V 0x00000001 +#define DEDIC_GPIO_OUT_CPU_SEL6_S 6 +/* DEDIC_GPIO_OUT_CPU_SEL7 : R/W; bitpos: [7]; default: 0; + * Select gpio out value configured by registers or CPU instructors for + * channel 7. 1: select CPU + * instructors. + */ +#define DEDIC_GPIO_OUT_CPU_SEL7 (BIT(7)) +#define DEDIC_GPIO_OUT_CPU_SEL7_M (DEDIC_GPIO_OUT_CPU_SEL7_V << DEDIC_GPIO_OUT_CPU_SEL7_S) +#define DEDIC_GPIO_OUT_CPU_SEL7_V 0x00000001 +#define DEDIC_GPIO_OUT_CPU_SEL7_S 7 + +/** DEDIC_GPIO_IN_DLY_REG register + * Dedicated GPIO Input Delay Configuration + * register + */ +#define DEDIC_GPIO_IN_DLY_REG (DR_REG_DEDICATED_GPIO_BASE + 0x14) +/* DEDIC_GPIO_IN_DLY_CH0 : R/W; bitpos: [2:0]; default: 0; + * Configure gpio 0 input delay. 0: No delay; 1: one clock delay; 2: two + * clock delay; 3: three clock + * delay. + */ +#define DEDIC_GPIO_IN_DLY_CH0 0x00000003 +#define DEDIC_GPIO_IN_DLY_CH0_M (DEDIC_GPIO_IN_DLY_CH0_V << DEDIC_GPIO_IN_DLY_CH0_S) +#define DEDIC_GPIO_IN_DLY_CH0_V 0x00000003 +#define DEDIC_GPIO_IN_DLY_CH0_S 0 +/* DEDIC_GPIO_IN_DLY_CH1 : R/W; bitpos: [4:2]; default: 0; + * Configure gpio 1 input delay. 0: No delay; 1: one clock delay; 2: two + * clock delay; 3: three clock + * delay. + */ +#define DEDIC_GPIO_IN_DLY_CH1 0x00000003 +#define DEDIC_GPIO_IN_DLY_CH1_M (DEDIC_GPIO_IN_DLY_CH1_V << DEDIC_GPIO_IN_DLY_CH1_S) +#define DEDIC_GPIO_IN_DLY_CH1_V 0x00000003 +#define DEDIC_GPIO_IN_DLY_CH1_S 2 +/* DEDIC_GPIO_IN_DLY_CH2 : R/W; bitpos: [6:4]; default: 0; + * Configure gpio 2 input delay. 0: No delay; 1: one clock delay; 2: two + * clock delay; 3: three clock + * delay. + */ +#define DEDIC_GPIO_IN_DLY_CH2 0x00000003 +#define DEDIC_GPIO_IN_DLY_CH2_M (DEDIC_GPIO_IN_DLY_CH2_V << DEDIC_GPIO_IN_DLY_CH2_S) +#define DEDIC_GPIO_IN_DLY_CH2_V 0x00000003 +#define DEDIC_GPIO_IN_DLY_CH2_S 4 +/* DEDIC_GPIO_IN_DLY_CH3 : R/W; bitpos: [8:6]; default: 0; + * Configure gpio 3 input delay. 0: No delay; 1: one clock delay; 2: two + * clock delay; 3: three clock + * delay. + */ +#define DEDIC_GPIO_IN_DLY_CH3 0x00000003 +#define DEDIC_GPIO_IN_DLY_CH3_M (DEDIC_GPIO_IN_DLY_CH3_V << DEDIC_GPIO_IN_DLY_CH3_S) +#define DEDIC_GPIO_IN_DLY_CH3_V 0x00000003 +#define DEDIC_GPIO_IN_DLY_CH3_S 6 +/* DEDIC_GPIO_IN_DLY_CH4 : R/W; bitpos: [10:8]; default: 0; + * Configure gpio 4 input delay. 0: No delay; 1: one clock delay; 2: two + * clock delay; 3: three clock + * delay. + */ +#define DEDIC_GPIO_IN_DLY_CH4 0x00000003 +#define DEDIC_GPIO_IN_DLY_CH4_M (DEDIC_GPIO_IN_DLY_CH4_V << DEDIC_GPIO_IN_DLY_CH4_S) +#define DEDIC_GPIO_IN_DLY_CH4_V 0x00000003 +#define DEDIC_GPIO_IN_DLY_CH4_S 8 +/* DEDIC_GPIO_IN_DLY_CH5 : R/W; bitpos: [12:10]; default: 0; + * Configure gpio 5 input delay. 0: No delay; 1: one clock delay; 2: two + * clock delay; 3: three clock + * delay. + */ +#define DEDIC_GPIO_IN_DLY_CH5 0x00000003 +#define DEDIC_GPIO_IN_DLY_CH5_M (DEDIC_GPIO_IN_DLY_CH5_V << DEDIC_GPIO_IN_DLY_CH5_S) +#define DEDIC_GPIO_IN_DLY_CH5_V 0x00000003 +#define DEDIC_GPIO_IN_DLY_CH5_S 10 +/* DEDIC_GPIO_IN_DLY_CH6 : R/W; bitpos: [14:12]; default: 0; + * Configure gpio 6 input delay. 0: No delay; 1: one clock delay; 2: two + * clock delay; 3: three clock + * delay. + */ +#define DEDIC_GPIO_IN_DLY_CH6 0x00000003 +#define DEDIC_GPIO_IN_DLY_CH6_M (DEDIC_GPIO_IN_DLY_CH6_V << DEDIC_GPIO_IN_DLY_CH6_S) +#define DEDIC_GPIO_IN_DLY_CH6_V 0x00000003 +#define DEDIC_GPIO_IN_DLY_CH6_S 12 +/* DEDIC_GPIO_IN_DLY_CH7 : R/W; bitpos: [16:14]; default: 0; + * Configure gpio 7 input delay. 0: No delay; 1: one clock delay; 2: two + * clock delay; 3: three clock + * delay. + */ +#define DEDIC_GPIO_IN_DLY_CH7 0x00000003 +#define DEDIC_GPIO_IN_DLY_CH7_M (DEDIC_GPIO_IN_DLY_CH7_V << DEDIC_GPIO_IN_DLY_CH7_S) +#define DEDIC_GPIO_IN_DLY_CH7_V 0x00000003 +#define DEDIC_GPIO_IN_DLY_CH7_S 14 + +/** DEDIC_GPIO_INTR_RCGN_REG register + * Dedicated GPIO Interrupts Generate Mode + * register + */ +#define DEDIC_GPIO_INTR_RCGN_REG (DR_REG_DEDICATED_GPIO_BASE + 0x1c) +/* DEDIC_GPIO_INTR_MODE_CH0 : R/W; bitpos: [3:0]; default: 0; + * Configure channel 0 interrupt generate mode. + * 0/1: do not generate interrupt; + * 2: low level trigger; + * 3: high level trigger; + * 4: falling edge trigger; + * 5: raising edge trigger; + * 6/7: falling and raising edge + * trigger. + */ +#define DEDIC_GPIO_INTR_MODE_CH0 0x00000007 +#define DEDIC_GPIO_INTR_MODE_CH0_M (DEDIC_GPIO_INTR_MODE_CH0_V << DEDIC_GPIO_INTR_MODE_CH0_S) +#define DEDIC_GPIO_INTR_MODE_CH0_V 0x00000007 +#define DEDIC_GPIO_INTR_MODE_CH0_S 0 +/* DEDIC_GPIO_INTR_MODE_CH1 : R/W; bitpos: [6:3]; default: 0; + * Configure channel 1 interrupt generate mode. + * 0/1: do not generate interrupt; + * 2: low level trigger; + * 3: high level trigger; + * 4: falling edge trigger; + * 5: raising edge trigger; + * 6/7: falling and raising edge + * trigger. + */ +#define DEDIC_GPIO_INTR_MODE_CH1 0x00000007 +#define DEDIC_GPIO_INTR_MODE_CH1_M (DEDIC_GPIO_INTR_MODE_CH1_V << DEDIC_GPIO_INTR_MODE_CH1_S) +#define DEDIC_GPIO_INTR_MODE_CH1_V 0x00000007 +#define DEDIC_GPIO_INTR_MODE_CH1_S 3 +/* DEDIC_GPIO_INTR_MODE_CH2 : R/W; bitpos: [9:6]; default: 0; + * Configure channel 2 interrupt generate mode. + * 0/1: do not generate interrupt; + * 2: low level trigger; + * 3: high level trigger; + * 4: falling edge trigger; + * 5: raising edge trigger; + * 6/7: falling and raising edge + * trigger. + */ +#define DEDIC_GPIO_INTR_MODE_CH2 0x00000007 +#define DEDIC_GPIO_INTR_MODE_CH2_M (DEDIC_GPIO_INTR_MODE_CH2_V << DEDIC_GPIO_INTR_MODE_CH2_S) +#define DEDIC_GPIO_INTR_MODE_CH2_V 0x00000007 +#define DEDIC_GPIO_INTR_MODE_CH2_S 6 +/* DEDIC_GPIO_INTR_MODE_CH3 : R/W; bitpos: [12:9]; default: 0; + * Configure channel 3 interrupt generate mode. + * 0/1: do not generate interrupt; + * 2: low level trigger; + * 3: high level trigger; + * 4: falling edge trigger; + * 5: raising edge trigger; + * 6/7: falling and raising edge + * trigger. + */ +#define DEDIC_GPIO_INTR_MODE_CH3 0x00000007 +#define DEDIC_GPIO_INTR_MODE_CH3_M (DEDIC_GPIO_INTR_MODE_CH3_V << DEDIC_GPIO_INTR_MODE_CH3_S) +#define DEDIC_GPIO_INTR_MODE_CH3_V 0x00000007 +#define DEDIC_GPIO_INTR_MODE_CH3_S 9 +/* DEDIC_GPIO_INTR_MODE_CH4 : R/W; bitpos: [15:12]; default: 0; + * Configure channel 4 interrupt generate mode. + * 0/1: do not generate interrupt; + * 2: low level trigger; + * 3: high level trigger; + * 4: falling edge trigger; + * 5: raising edge trigger; + * 6/7: falling and raising edge + * trigger. + */ +#define DEDIC_GPIO_INTR_MODE_CH4 0x00000007 +#define DEDIC_GPIO_INTR_MODE_CH4_M (DEDIC_GPIO_INTR_MODE_CH4_V << DEDIC_GPIO_INTR_MODE_CH4_S) +#define DEDIC_GPIO_INTR_MODE_CH4_V 0x00000007 +#define DEDIC_GPIO_INTR_MODE_CH4_S 12 +/* DEDIC_GPIO_INTR_MODE_CH5 : R/W; bitpos: [18:15]; default: 0; + * Configure channel 5 interrupt generate mode. + * 0/1: do not generate interrupt; + * 2: low level trigger; + * 3: high level trigger; + * 4: falling edge trigger; + * 5: raising edge trigger; + * 6/7: falling and raising edge + * trigger. + */ +#define DEDIC_GPIO_INTR_MODE_CH5 0x00000007 +#define DEDIC_GPIO_INTR_MODE_CH5_M (DEDIC_GPIO_INTR_MODE_CH5_V << DEDIC_GPIO_INTR_MODE_CH5_S) +#define DEDIC_GPIO_INTR_MODE_CH5_V 0x00000007 +#define DEDIC_GPIO_INTR_MODE_CH5_S 15 +/* DEDIC_GPIO_INTR_MODE_CH6 : R/W; bitpos: [21:18]; default: 0; + * Configure channel 6 interrupt generate mode. + * 0/1: do not generate interrupt; + * 2: low level trigger; + * 3: high level trigger; + * 4: falling edge trigger; + * 5: raising edge trigger; + * 6/7: falling and raising edge + * trigger. + */ +#define DEDIC_GPIO_INTR_MODE_CH6 0x00000007 +#define DEDIC_GPIO_INTR_MODE_CH6_M (DEDIC_GPIO_INTR_MODE_CH6_V << DEDIC_GPIO_INTR_MODE_CH6_S) +#define DEDIC_GPIO_INTR_MODE_CH6_V 0x00000007 +#define DEDIC_GPIO_INTR_MODE_CH6_S 18 +/* DEDIC_GPIO_INTR_MODE_CH7 : R/W; bitpos: [24:21]; default: 0; + * Configure channel 7 interrupt generate mode. + * 0/1: do not generate interrupt; + * 2: low level trigger; + * 3: high level trigger; + * 4: falling edge trigger; + * 5: raising edge trigger; + * 6/7: falling and raising edge + * trigger. + */ +#define DEDIC_GPIO_INTR_MODE_CH7 0x00000007 +#define DEDIC_GPIO_INTR_MODE_CH7_M (DEDIC_GPIO_INTR_MODE_CH7_V << DEDIC_GPIO_INTR_MODE_CH7_S) +#define DEDIC_GPIO_INTR_MODE_CH7_V 0x00000007 +#define DEDIC_GPIO_INTR_MODE_CH7_S 21 + + +/** Status registers */ + +/** DEDIC_GPIO_OUT_SCAN_REG register + * Dedicated GPIO Output Status + * register + */ +#define DEDIC_GPIO_OUT_SCAN_REG (DR_REG_DEDICATED_GPIO_BASE + 0xc) +/* DEDIC_GPIO_OUT_STATUS : RO; bitpos: [8:0]; default: 0; + * gpio out value configured by DEDIC_GPIO_OUT_DRT_REG, + * DEDIC_GPIO_OUT_MSK_REG, + * DEDIC_GPIO_OUT_IDV_REG. + */ +#define DEDIC_GPIO_OUT_STATUS 0x000000FF +#define DEDIC_GPIO_OUT_STATUS_M (DEDIC_GPIO_OUT_STATUS_V << DEDIC_GPIO_OUT_STATUS_S) +#define DEDIC_GPIO_OUT_STATUS_V 0x000000FF +#define DEDIC_GPIO_OUT_STATUS_S 0 + +/** DEDIC_GPIO_IN_SCAN_REG register + * Dedicated GPIO Input Status + * register + */ +#define DEDIC_GPIO_IN_SCAN_REG (DR_REG_DEDICATED_GPIO_BASE + 0x18) +/* DEDIC_GPIO_IN_STATUS : RO; bitpos: [8:0]; default: 0; + * gpio in value after configured by + * DEDIC_GPIO_IN_DLY_REG. + */ +#define DEDIC_GPIO_IN_STATUS 0x000000FF +#define DEDIC_GPIO_IN_STATUS_M (DEDIC_GPIO_IN_STATUS_V << DEDIC_GPIO_IN_STATUS_S) +#define DEDIC_GPIO_IN_STATUS_V 0x000000FF +#define DEDIC_GPIO_IN_STATUS_S 0 + + +/** Interrupt registers */ + +/** DEDIC_GPIO_INTR_RAW_REG register + * Raw interrupt + * status + */ +#define DEDIC_GPIO_INTR_RAW_REG (DR_REG_DEDICATED_GPIO_BASE + 0x20) +/* DEDIC_GPIO0_INT_RAW : RO; bitpos: [0]; default: 0; + * This interrupt raw bit turns to high level when dedicated GPIO 0 has + * level/edge change configured by + * DEDIC_GPIO_INTR_RCGN_REG. + */ +#define DEDIC_GPIO0_INT_RAW (BIT(0)) +#define DEDIC_GPIO0_INT_RAW_M (DEDIC_GPIO0_INT_RAW_V << DEDIC_GPIO0_INT_RAW_S) +#define DEDIC_GPIO0_INT_RAW_V 0x00000001 +#define DEDIC_GPIO0_INT_RAW_S 0 +/* DEDIC_GPIO1_INT_RAW : RO; bitpos: [1]; default: 0; + * This interrupt raw bit turns to high level when dedicated GPIO 1 has + * level/edge change configured by + * DEDIC_GPIO_INTR_RCGN_REG. + */ +#define DEDIC_GPIO1_INT_RAW (BIT(1)) +#define DEDIC_GPIO1_INT_RAW_M (DEDIC_GPIO1_INT_RAW_V << DEDIC_GPIO1_INT_RAW_S) +#define DEDIC_GPIO1_INT_RAW_V 0x00000001 +#define DEDIC_GPIO1_INT_RAW_S 1 +/* DEDIC_GPIO2_INT_RAW : RO; bitpos: [2]; default: 0; + * This interrupt raw bit turns to high level when dedicated GPIO 2 has + * level/edge change configured by + * DEDIC_GPIO_INTR_RCGN_REG. + */ +#define DEDIC_GPIO2_INT_RAW (BIT(2)) +#define DEDIC_GPIO2_INT_RAW_M (DEDIC_GPIO2_INT_RAW_V << DEDIC_GPIO2_INT_RAW_S) +#define DEDIC_GPIO2_INT_RAW_V 0x00000001 +#define DEDIC_GPIO2_INT_RAW_S 2 +/* DEDIC_GPIO3_INT_RAW : RO; bitpos: [3]; default: 0; + * This interrupt raw bit turns to high level when dedicated GPIO 3 has + * level/edge change configured by + * DEDIC_GPIO_INTR_RCGN_REG. + */ +#define DEDIC_GPIO3_INT_RAW (BIT(3)) +#define DEDIC_GPIO3_INT_RAW_M (DEDIC_GPIO3_INT_RAW_V << DEDIC_GPIO3_INT_RAW_S) +#define DEDIC_GPIO3_INT_RAW_V 0x00000001 +#define DEDIC_GPIO3_INT_RAW_S 3 +/* DEDIC_GPIO4_INT_RAW : RO; bitpos: [4]; default: 0; + * This interrupt raw bit turns to high level when dedicated GPIO 4 has + * level/edge change configured by + * DEDIC_GPIO_INTR_RCGN_REG. + */ +#define DEDIC_GPIO4_INT_RAW (BIT(4)) +#define DEDIC_GPIO4_INT_RAW_M (DEDIC_GPIO4_INT_RAW_V << DEDIC_GPIO4_INT_RAW_S) +#define DEDIC_GPIO4_INT_RAW_V 0x00000001 +#define DEDIC_GPIO4_INT_RAW_S 4 +/* DEDIC_GPIO5_INT_RAW : RO; bitpos: [5]; default: 0; + * This interrupt raw bit turns to high level when dedicated GPIO 5 has + * level/edge change configured by + * DEDIC_GPIO_INTR_RCGN_REG. + */ +#define DEDIC_GPIO5_INT_RAW (BIT(5)) +#define DEDIC_GPIO5_INT_RAW_M (DEDIC_GPIO5_INT_RAW_V << DEDIC_GPIO5_INT_RAW_S) +#define DEDIC_GPIO5_INT_RAW_V 0x00000001 +#define DEDIC_GPIO5_INT_RAW_S 5 +/* DEDIC_GPIO6_INT_RAW : RO; bitpos: [6]; default: 0; + * This interrupt raw bit turns to high level when dedicated GPIO 6 has + * level/edge change configured by + * DEDIC_GPIO_INTR_RCGN_REG. + */ +#define DEDIC_GPIO6_INT_RAW (BIT(6)) +#define DEDIC_GPIO6_INT_RAW_M (DEDIC_GPIO6_INT_RAW_V << DEDIC_GPIO6_INT_RAW_S) +#define DEDIC_GPIO6_INT_RAW_V 0x00000001 +#define DEDIC_GPIO6_INT_RAW_S 6 +/* DEDIC_GPIO7_INT_RAW : RO; bitpos: [7]; default: 0; + * This interrupt raw bit turns to high level when dedicated GPIO 7 has + * level/edge change configured by + * DEDIC_GPIO_INTR_RCGN_REG. + */ +#define DEDIC_GPIO7_INT_RAW (BIT(7)) +#define DEDIC_GPIO7_INT_RAW_M (DEDIC_GPIO7_INT_RAW_V << DEDIC_GPIO7_INT_RAW_S) +#define DEDIC_GPIO7_INT_RAW_V 0x00000001 +#define DEDIC_GPIO7_INT_RAW_S 7 + +/** DEDIC_GPIO_INTR_RLS_REG register + * Interrupt enable + * bits + */ +#define DEDIC_GPIO_INTR_RLS_REG (DR_REG_DEDICATED_GPIO_BASE + 0x24) +/* DEDIC_GPIO0_INT_ENA : R/W; bitpos: [0]; default: 0; + * This enable bit for reg_gpio0_int_st + * register. + */ +#define DEDIC_GPIO0_INT_ENA (BIT(0)) +#define DEDIC_GPIO0_INT_ENA_M (DEDIC_GPIO0_INT_ENA_V << DEDIC_GPIO0_INT_ENA_S) +#define DEDIC_GPIO0_INT_ENA_V 0x00000001 +#define DEDIC_GPIO0_INT_ENA_S 0 +/* DEDIC_GPIO1_INT_ENA : R/W; bitpos: [1]; default: 0; + * This enable bit for reg_gpio1_int_st + * register. + */ +#define DEDIC_GPIO1_INT_ENA (BIT(1)) +#define DEDIC_GPIO1_INT_ENA_M (DEDIC_GPIO1_INT_ENA_V << DEDIC_GPIO1_INT_ENA_S) +#define DEDIC_GPIO1_INT_ENA_V 0x00000001 +#define DEDIC_GPIO1_INT_ENA_S 1 +/* DEDIC_GPIO2_INT_ENA : R/W; bitpos: [2]; default: 0; + * This enable bit for reg_gpio2_int_st + * register. + */ +#define DEDIC_GPIO2_INT_ENA (BIT(2)) +#define DEDIC_GPIO2_INT_ENA_M (DEDIC_GPIO2_INT_ENA_V << DEDIC_GPIO2_INT_ENA_S) +#define DEDIC_GPIO2_INT_ENA_V 0x00000001 +#define DEDIC_GPIO2_INT_ENA_S 2 +/* DEDIC_GPIO3_INT_ENA : R/W; bitpos: [3]; default: 0; + * This enable bit for reg_gpio3_int_st + * register. + */ +#define DEDIC_GPIO3_INT_ENA (BIT(3)) +#define DEDIC_GPIO3_INT_ENA_M (DEDIC_GPIO3_INT_ENA_V << DEDIC_GPIO3_INT_ENA_S) +#define DEDIC_GPIO3_INT_ENA_V 0x00000001 +#define DEDIC_GPIO3_INT_ENA_S 3 +/* DEDIC_GPIO4_INT_ENA : R/W; bitpos: [4]; default: 0; + * This enable bit for reg_gpio4_int_st + * register. + */ +#define DEDIC_GPIO4_INT_ENA (BIT(4)) +#define DEDIC_GPIO4_INT_ENA_M (DEDIC_GPIO4_INT_ENA_V << DEDIC_GPIO4_INT_ENA_S) +#define DEDIC_GPIO4_INT_ENA_V 0x00000001 +#define DEDIC_GPIO4_INT_ENA_S 4 +/* DEDIC_GPIO5_INT_ENA : R/W; bitpos: [5]; default: 0; + * This enable bit for reg_gpio5_int_st + * register. + */ +#define DEDIC_GPIO5_INT_ENA (BIT(5)) +#define DEDIC_GPIO5_INT_ENA_M (DEDIC_GPIO5_INT_ENA_V << DEDIC_GPIO5_INT_ENA_S) +#define DEDIC_GPIO5_INT_ENA_V 0x00000001 +#define DEDIC_GPIO5_INT_ENA_S 5 +/* DEDIC_GPIO6_INT_ENA : R/W; bitpos: [6]; default: 0; + * This enable bit for reg_gpio6_int_st + * register. + */ +#define DEDIC_GPIO6_INT_ENA (BIT(6)) +#define DEDIC_GPIO6_INT_ENA_M (DEDIC_GPIO6_INT_ENA_V << DEDIC_GPIO6_INT_ENA_S) +#define DEDIC_GPIO6_INT_ENA_V 0x00000001 +#define DEDIC_GPIO6_INT_ENA_S 6 +/* DEDIC_GPIO7_INT_ENA : R/W; bitpos: [7]; default: 0; + * This enable bit for reg_gpio7_int_st + * register. + */ +#define DEDIC_GPIO7_INT_ENA (BIT(7)) +#define DEDIC_GPIO7_INT_ENA_M (DEDIC_GPIO7_INT_ENA_V << DEDIC_GPIO7_INT_ENA_S) +#define DEDIC_GPIO7_INT_ENA_V 0x00000001 +#define DEDIC_GPIO7_INT_ENA_S 7 + +/** DEDIC_GPIO_INTR_ST_REG register + * Masked interrupt + * status + */ +#define DEDIC_GPIO_INTR_ST_REG (DR_REG_DEDICATED_GPIO_BASE + 0x28) +/* DEDIC_GPIO0_INT_ST : RO; bitpos: [0]; default: 0; + * This is the status bit for reg_gpio0_int_raw when reg_gpio0_int_ena is + * set to + * 1. + */ +#define DEDIC_GPIO0_INT_ST (BIT(0)) +#define DEDIC_GPIO0_INT_ST_M (DEDIC_GPIO0_INT_ST_V << DEDIC_GPIO0_INT_ST_S) +#define DEDIC_GPIO0_INT_ST_V 0x00000001 +#define DEDIC_GPIO0_INT_ST_S 0 +/* DEDIC_GPIO1_INT_ST : RO; bitpos: [1]; default: 0; + * This is the status bit for reg_gpio1_int_raw when reg_gpio1_int_ena is + * set to + * 1. + */ +#define DEDIC_GPIO1_INT_ST (BIT(1)) +#define DEDIC_GPIO1_INT_ST_M (DEDIC_GPIO1_INT_ST_V << DEDIC_GPIO1_INT_ST_S) +#define DEDIC_GPIO1_INT_ST_V 0x00000001 +#define DEDIC_GPIO1_INT_ST_S 1 +/* DEDIC_GPIO2_INT_ST : RO; bitpos: [2]; default: 0; + * This is the status bit for reg_gpio2_int_raw when reg_gpio2_int_ena is + * set to + * 1. + */ +#define DEDIC_GPIO2_INT_ST (BIT(2)) +#define DEDIC_GPIO2_INT_ST_M (DEDIC_GPIO2_INT_ST_V << DEDIC_GPIO2_INT_ST_S) +#define DEDIC_GPIO2_INT_ST_V 0x00000001 +#define DEDIC_GPIO2_INT_ST_S 2 +/* DEDIC_GPIO3_INT_ST : RO; bitpos: [3]; default: 0; + * This is the status bit for reg_gpio3_int_raw when reg_gpio3_int_ena is + * set to + * 1. + */ +#define DEDIC_GPIO3_INT_ST (BIT(3)) +#define DEDIC_GPIO3_INT_ST_M (DEDIC_GPIO3_INT_ST_V << DEDIC_GPIO3_INT_ST_S) +#define DEDIC_GPIO3_INT_ST_V 0x00000001 +#define DEDIC_GPIO3_INT_ST_S 3 +/* DEDIC_GPIO4_INT_ST : RO; bitpos: [4]; default: 0; + * This is the status bit for reg_gpio4_int_raw when reg_gpio4_int_ena is + * set to + * 1. + */ +#define DEDIC_GPIO4_INT_ST (BIT(4)) +#define DEDIC_GPIO4_INT_ST_M (DEDIC_GPIO4_INT_ST_V << DEDIC_GPIO4_INT_ST_S) +#define DEDIC_GPIO4_INT_ST_V 0x00000001 +#define DEDIC_GPIO4_INT_ST_S 4 +/* DEDIC_GPIO5_INT_ST : RO; bitpos: [5]; default: 0; + * This is the status bit for reg_gpio5_int_raw when reg_gpio5_int_ena is + * set to + * 1. + */ +#define DEDIC_GPIO5_INT_ST (BIT(5)) +#define DEDIC_GPIO5_INT_ST_M (DEDIC_GPIO5_INT_ST_V << DEDIC_GPIO5_INT_ST_S) +#define DEDIC_GPIO5_INT_ST_V 0x00000001 +#define DEDIC_GPIO5_INT_ST_S 5 +/* DEDIC_GPIO6_INT_ST : RO; bitpos: [6]; default: 0; + * This is the status bit for reg_gpio6_int_raw when reg_gpio6_int_ena is + * set to + * 1. + */ +#define DEDIC_GPIO6_INT_ST (BIT(6)) +#define DEDIC_GPIO6_INT_ST_M (DEDIC_GPIO6_INT_ST_V << DEDIC_GPIO6_INT_ST_S) +#define DEDIC_GPIO6_INT_ST_V 0x00000001 +#define DEDIC_GPIO6_INT_ST_S 6 +/* DEDIC_GPIO7_INT_ST : RO; bitpos: [7]; default: 0; + * This is the status bit for reg_gpio7_int_raw when reg_gpio7_int_ena is + * set to + * 1. + */ +#define DEDIC_GPIO7_INT_ST (BIT(7)) +#define DEDIC_GPIO7_INT_ST_M (DEDIC_GPIO7_INT_ST_V << DEDIC_GPIO7_INT_ST_S) +#define DEDIC_GPIO7_INT_ST_V 0x00000001 +#define DEDIC_GPIO7_INT_ST_S 7 + +/** DEDIC_GPIO_INTR_CLR_REG register + * Interrupt clear + * bits + */ +#define DEDIC_GPIO_INTR_CLR_REG (DR_REG_DEDICATED_GPIO_BASE + 0x2c) +/* DEDIC_GPIO0_INT_CLR : WO; bitpos: [0]; default: 0; + * Set this bit to clear the reg_gpio0_int_raw + * interrupt. + */ +#define DEDIC_GPIO0_INT_CLR (BIT(0)) +#define DEDIC_GPIO0_INT_CLR_M (DEDIC_GPIO0_INT_CLR_V << DEDIC_GPIO0_INT_CLR_S) +#define DEDIC_GPIO0_INT_CLR_V 0x00000001 +#define DEDIC_GPIO0_INT_CLR_S 0 +/* DEDIC_GPIO1_INT_CLR : WO; bitpos: [1]; default: 0; + * Set this bit to clear the reg_gpio1_int_raw + * interrupt. + */ +#define DEDIC_GPIO1_INT_CLR (BIT(1)) +#define DEDIC_GPIO1_INT_CLR_M (DEDIC_GPIO1_INT_CLR_V << DEDIC_GPIO1_INT_CLR_S) +#define DEDIC_GPIO1_INT_CLR_V 0x00000001 +#define DEDIC_GPIO1_INT_CLR_S 1 +/* DEDIC_GPIO2_INT_CLR : WO; bitpos: [2]; default: 0; + * Set this bit to clear the reg_gpio2_int_raw + * interrupt. + */ +#define DEDIC_GPIO2_INT_CLR (BIT(2)) +#define DEDIC_GPIO2_INT_CLR_M (DEDIC_GPIO2_INT_CLR_V << DEDIC_GPIO2_INT_CLR_S) +#define DEDIC_GPIO2_INT_CLR_V 0x00000001 +#define DEDIC_GPIO2_INT_CLR_S 2 +/* DEDIC_GPIO3_INT_CLR : WO; bitpos: [3]; default: 0; + * Set this bit to clear the reg_gpio3_int_raw + * interrupt. + */ +#define DEDIC_GPIO3_INT_CLR (BIT(3)) +#define DEDIC_GPIO3_INT_CLR_M (DEDIC_GPIO3_INT_CLR_V << DEDIC_GPIO3_INT_CLR_S) +#define DEDIC_GPIO3_INT_CLR_V 0x00000001 +#define DEDIC_GPIO3_INT_CLR_S 3 +/* DEDIC_GPIO4_INT_CLR : WO; bitpos: [4]; default: 0; + * Set this bit to clear the reg_gpio4_int_raw + * interrupt. + */ +#define DEDIC_GPIO4_INT_CLR (BIT(4)) +#define DEDIC_GPIO4_INT_CLR_M (DEDIC_GPIO4_INT_CLR_V << DEDIC_GPIO4_INT_CLR_S) +#define DEDIC_GPIO4_INT_CLR_V 0x00000001 +#define DEDIC_GPIO4_INT_CLR_S 4 +/* DEDIC_GPIO5_INT_CLR : WO; bitpos: [5]; default: 0; + * Set this bit to clear the reg_gpio5_int_raw + * interrupt. + */ +#define DEDIC_GPIO5_INT_CLR (BIT(5)) +#define DEDIC_GPIO5_INT_CLR_M (DEDIC_GPIO5_INT_CLR_V << DEDIC_GPIO5_INT_CLR_S) +#define DEDIC_GPIO5_INT_CLR_V 0x00000001 +#define DEDIC_GPIO5_INT_CLR_S 5 +/* DEDIC_GPIO6_INT_CLR : WO; bitpos: [6]; default: 0; + * Set this bit to clear the reg_gpio6_int_raw + * interrupt. + */ +#define DEDIC_GPIO6_INT_CLR (BIT(6)) +#define DEDIC_GPIO6_INT_CLR_M (DEDIC_GPIO6_INT_CLR_V << DEDIC_GPIO6_INT_CLR_S) +#define DEDIC_GPIO6_INT_CLR_V 0x00000001 +#define DEDIC_GPIO6_INT_CLR_S 6 +/* DEDIC_GPIO7_INT_CLR : WO; bitpos: [7]; default: 0; + * Set this bit to clear the reg_gpio7_int_raw + * interrupt. + */ +#define DEDIC_GPIO7_INT_CLR (BIT(7)) +#define DEDIC_GPIO7_INT_CLR_M (DEDIC_GPIO7_INT_CLR_V << DEDIC_GPIO7_INT_CLR_S) +#define DEDIC_GPIO7_INT_CLR_V 0x00000001 +#define DEDIC_GPIO7_INT_CLR_S 7 + +#ifdef __cplusplus +} +#endif + diff --git a/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/dedic_gpio_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/dedic_gpio_struct.h new file mode 100644 index 00000000..3ccd588b --- /dev/null +++ b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/dedic_gpio_struct.h @@ -0,0 +1,516 @@ +/** Copyright 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 + * distributed under the License is distributed on an "AS IS" BASIS, + * 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. + */ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** Configuration registers */ +/** Type of gpio_out_drt register + * Dedicated GPIO Directive Output register + */ +typedef union { + struct { + /** gpio_out_drt_vlaue : WO; bitpos: [7:0]; default: 0; + * This register is used to configure directive output value of 8-channel dedicated + * gpio. + */ + uint32_t gpio_out_drt_vlaue: 8; + }; + uint32_t val; +} dedic_gpio_out_drt_reg_t; + +/** Type of gpio_out_msk register + * Dedicated GPIO Mask Output register + */ +typedef union { + struct { + /** gpio_out_value : WO; bitpos: [7:0]; default: 0; + * This register is used to configure masked output value of 8-channel dedicated gpio. + */ + uint32_t gpio_out_value: 8; + /** gpio_out_msk : WO; bitpos: [15:8]; default: 0; + * This register is used to configure channels which would be masked. 1: corresponding + * channel's output would be masked. + */ + uint32_t gpio_out_msk: 8; + }; + uint32_t val; +} dedic_gpio_out_msk_reg_t; + +/** Type of gpio_out_idv register + * Dedicated GPIO Individual Output register + */ +typedef union { + struct { + /** gpio_out_idv_ch0 : WO; bitpos: [1:0]; default: 0; + * Configure channel 0 output value. 0: hold output value; 1: set output value; 2: + * clear output value; 3: inverse output value. + */ + uint32_t gpio_out_idv_ch0: 2; + /** gpio_out_idv_ch1 : WO; bitpos: [3:2]; default: 0; + * Configure channel 1 output value. 0: hold output value; 1: set output value; 2: + * clear output value; 3: inverse output value. + */ + uint32_t gpio_out_idv_ch1: 2; + /** gpio_out_idv_ch2 : WO; bitpos: [5:4]; default: 0; + * Configure channel 2 output value. 0: hold output value; 1: set output value; 2: + * clear output value; 3: inverse output value. + */ + uint32_t gpio_out_idv_ch2: 2; + /** gpio_out_idv_ch3 : WO; bitpos: [7:6]; default: 0; + * Configure channel 3 output value. 0: hold output value; 1: set output value; 2: + * clear output value; 3: inverse output value. + */ + uint32_t gpio_out_idv_ch3: 2; + /** gpio_out_idv_ch4 : WO; bitpos: [9:8]; default: 0; + * Configure channel 4 output value. 0: hold output value; 1: set output value; 2: + * clear output value; 3: inverse output value. + */ + uint32_t gpio_out_idv_ch4: 2; + /** gpio_out_idv_ch5 : WO; bitpos: [11:10]; default: 0; + * Configure channel 5 output value. 0: hold output value; 1: set output value; 2: + * clear output value; 3: inverse output value. + */ + uint32_t gpio_out_idv_ch5: 2; + /** gpio_out_idv_ch6 : WO; bitpos: [13:12]; default: 0; + * Configure channel 6 output value. 0: hold output value; 1: set output value; 2: + * clear output value; 3: inverse output value. + */ + uint32_t gpio_out_idv_ch6: 2; + /** gpio_out_idv_ch7 : WO; bitpos: [15:14]; default: 0; + * Configure channel 7 output value. 0: hold output value; 1: set output value; 2: + * clear output value; 3: inverse output value. + */ + uint32_t gpio_out_idv_ch7: 2; + }; + uint32_t val; +} dedic_gpio_out_idv_reg_t; + +/** Type of gpio_out_cpu register + * Dedicated GPIO Output Mode Select register + */ +typedef union { + struct { + /** gpio_out_cpu_sel0 : R/W; bitpos: [0]; default: 0; + * Select gpio out value configured by registers or CPU instructors for channel 0. 1: + * select CPU instructors. + */ + uint32_t gpio_out_cpu_sel0: 1; + /** gpio_out_cpu_sel1 : R/W; bitpos: [1]; default: 0; + * Select gpio out value configured by registers or CPU instructors for channel 1. 1: + * select CPU instructors. + */ + uint32_t gpio_out_cpu_sel1: 1; + /** gpio_out_cpu_sel2 : R/W; bitpos: [2]; default: 0; + * Select gpio out value configured by registers or CPU instructors for channel 2. 1: + * select CPU instructors. + */ + uint32_t gpio_out_cpu_sel2: 1; + /** gpio_out_cpu_sel3 : R/W; bitpos: [3]; default: 0; + * Select gpio out value configured by registers or CPU instructors for channel 3. 1: + * select CPU instructors. + */ + uint32_t gpio_out_cpu_sel3: 1; + /** gpio_out_cpu_sel4 : R/W; bitpos: [4]; default: 0; + * Select gpio out value configured by registers or CPU instructors for channel 4. 1: + * select CPU instructors. + */ + uint32_t gpio_out_cpu_sel4: 1; + /** gpio_out_cpu_sel5 : R/W; bitpos: [5]; default: 0; + * Select gpio out value configured by registers or CPU instructors for channel 5. 1: + * select CPU instructors. + */ + uint32_t gpio_out_cpu_sel5: 1; + /** gpio_out_cpu_sel6 : R/W; bitpos: [6]; default: 0; + * Select gpio out value configured by registers or CPU instructors for channel 6. 1: + * select CPU instructors. + */ + uint32_t gpio_out_cpu_sel6: 1; + /** gpio_out_cpu_sel7 : R/W; bitpos: [7]; default: 0; + * Select gpio out value configured by registers or CPU instructors for channel 7. 1: + * select CPU instructors. + */ + uint32_t gpio_out_cpu_sel7: 1; + }; + uint32_t val; +} dedic_gpio_out_cpu_reg_t; + +/** Type of gpio_in_dly register + * Dedicated GPIO Input Delay Configuration register + */ +typedef union { + struct { + /** gpio_in_dly_ch0 : R/W; bitpos: [1:0]; default: 0; + * Configure gpio 0 input delay. 0: No delay; 1: one clock delay; 2: two clock delay; + * 3: three clock delay. + */ + uint32_t gpio_in_dly_ch0: 2; + /** gpio_in_dly_ch1 : R/W; bitpos: [3:2]; default: 0; + * Configure gpio 1 input delay. 0: No delay; 1: one clock delay; 2: two clock delay; + * 3: three clock delay. + */ + uint32_t gpio_in_dly_ch1: 2; + /** gpio_in_dly_ch2 : R/W; bitpos: [5:4]; default: 0; + * Configure gpio 2 input delay. 0: No delay; 1: one clock delay; 2: two clock delay; + * 3: three clock delay. + */ + uint32_t gpio_in_dly_ch2: 2; + /** gpio_in_dly_ch3 : R/W; bitpos: [7:6]; default: 0; + * Configure gpio 3 input delay. 0: No delay; 1: one clock delay; 2: two clock delay; + * 3: three clock delay. + */ + uint32_t gpio_in_dly_ch3: 2; + /** gpio_in_dly_ch4 : R/W; bitpos: [9:8]; default: 0; + * Configure gpio 4 input delay. 0: No delay; 1: one clock delay; 2: two clock delay; + * 3: three clock delay. + */ + uint32_t gpio_in_dly_ch4: 2; + /** gpio_in_dly_ch5 : R/W; bitpos: [11:10]; default: 0; + * Configure gpio 5 input delay. 0: No delay; 1: one clock delay; 2: two clock delay; + * 3: three clock delay. + */ + uint32_t gpio_in_dly_ch5: 2; + /** gpio_in_dly_ch6 : R/W; bitpos: [13:12]; default: 0; + * Configure gpio 6 input delay. 0: No delay; 1: one clock delay; 2: two clock delay; + * 3: three clock delay. + */ + uint32_t gpio_in_dly_ch6: 2; + /** gpio_in_dly_ch7 : R/W; bitpos: [15:14]; default: 0; + * Configure gpio 7 input delay. 0: No delay; 1: one clock delay; 2: two clock delay; + * 3: three clock delay. + */ + uint32_t gpio_in_dly_ch7: 2; + }; + uint32_t val; +} dedic_gpio_in_dly_reg_t; + +/** Type of gpio_intr_rcgn register + * Dedicated GPIO Interrupts Generate Mode register + */ +typedef union { + struct { + /** gpio_intr_mode_ch0 : R/W; bitpos: [2:0]; default: 0; + * Configure channel 0 interrupt generate mode. + * 0/1: do not generate interrupt; + * 2: low level trigger; + * 3: high level trigger; + * 4: falling edge trigger; + * 5: raising edge trigger; + * 6/7: falling and raising edge trigger. + */ + uint32_t gpio_intr_mode_ch0: 3; + /** gpio_intr_mode_ch1 : R/W; bitpos: [5:3]; default: 0; + * Configure channel 1 interrupt generate mode. + * 0/1: do not generate interrupt; + * 2: low level trigger; + * 3: high level trigger; + * 4: falling edge trigger; + * 5: raising edge trigger; + * 6/7: falling and raising edge trigger. + */ + uint32_t gpio_intr_mode_ch1: 3; + /** gpio_intr_mode_ch2 : R/W; bitpos: [8:6]; default: 0; + * Configure channel 2 interrupt generate mode. + * 0/1: do not generate interrupt; + * 2: low level trigger; + * 3: high level trigger; + * 4: falling edge trigger; + * 5: raising edge trigger; + * 6/7: falling and raising edge trigger. + */ + uint32_t gpio_intr_mode_ch2: 3; + /** gpio_intr_mode_ch3 : R/W; bitpos: [11:9]; default: 0; + * Configure channel 3 interrupt generate mode. + * 0/1: do not generate interrupt; + * 2: low level trigger; + * 3: high level trigger; + * 4: falling edge trigger; + * 5: raising edge trigger; + * 6/7: falling and raising edge trigger. + */ + uint32_t gpio_intr_mode_ch3: 3; + /** gpio_intr_mode_ch4 : R/W; bitpos: [14:12]; default: 0; + * Configure channel 4 interrupt generate mode. + * 0/1: do not generate interrupt; + * 2: low level trigger; + * 3: high level trigger; + * 4: falling edge trigger; + * 5: raising edge trigger; + * 6/7: falling and raising edge trigger. + */ + uint32_t gpio_intr_mode_ch4: 3; + /** gpio_intr_mode_ch5 : R/W; bitpos: [17:15]; default: 0; + * Configure channel 5 interrupt generate mode. + * 0/1: do not generate interrupt; + * 2: low level trigger; + * 3: high level trigger; + * 4: falling edge trigger; + * 5: raising edge trigger; + * 6/7: falling and raising edge trigger. + */ + uint32_t gpio_intr_mode_ch5: 3; + /** gpio_intr_mode_ch6 : R/W; bitpos: [20:18]; default: 0; + * Configure channel 6 interrupt generate mode. + * 0/1: do not generate interrupt; + * 2: low level trigger; + * 3: high level trigger; + * 4: falling edge trigger; + * 5: raising edge trigger; + * 6/7: falling and raising edge trigger. + */ + uint32_t gpio_intr_mode_ch6: 3; + /** gpio_intr_mode_ch7 : R/W; bitpos: [23:21]; default: 0; + * Configure channel 7 interrupt generate mode. + * 0/1: do not generate interrupt; + * 2: low level trigger; + * 3: high level trigger; + * 4: falling edge trigger; + * 5: raising edge trigger; + * 6/7: falling and raising edge trigger. + */ + uint32_t gpio_intr_mode_ch7: 3; + }; + uint32_t val; +} dedic_gpio_intr_rcgn_reg_t; + + +/** Status registers */ +/** Type of gpio_out_scan register + * Dedicated GPIO Output Status register + */ +typedef union { + struct { + /** gpio_out_status : RO; bitpos: [7:0]; default: 0; + * gpio out value configured by DEDIC_GPIO_OUT_DRT_REG, DEDIC_GPIO_OUT_MSK_REG, + * DEDIC_GPIO_OUT_IDV_REG. + */ + uint32_t gpio_out_status: 8; + }; + uint32_t val; +} dedic_gpio_out_scan_reg_t; + +/** Type of gpio_in_scan register + * Dedicated GPIO Input Status register + */ +typedef union { + struct { + /** gpio_in_status : RO; bitpos: [7:0]; default: 0; + * gpio in value after configured by DEDIC_GPIO_IN_DLY_REG. + */ + uint32_t gpio_in_status: 8; + }; + uint32_t val; +} dedic_gpio_in_scan_reg_t; + + +/** Interrupt registers */ +/** Type of gpio_intr_raw register + * Raw interrupt status + */ +typedef union { + struct { + /** gpio0_int_raw : RO; bitpos: [0]; default: 0; + * This interrupt raw bit turns to high level when dedicated GPIO 0 has level/edge + * change configured by DEDIC_GPIO_INTR_RCGN_REG. + */ + uint32_t gpio0_int_raw: 1; + /** gpio1_int_raw : RO; bitpos: [1]; default: 0; + * This interrupt raw bit turns to high level when dedicated GPIO 1 has level/edge + * change configured by DEDIC_GPIO_INTR_RCGN_REG. + */ + uint32_t gpio1_int_raw: 1; + /** gpio2_int_raw : RO; bitpos: [2]; default: 0; + * This interrupt raw bit turns to high level when dedicated GPIO 2 has level/edge + * change configured by DEDIC_GPIO_INTR_RCGN_REG. + */ + uint32_t gpio2_int_raw: 1; + /** gpio3_int_raw : RO; bitpos: [3]; default: 0; + * This interrupt raw bit turns to high level when dedicated GPIO 3 has level/edge + * change configured by DEDIC_GPIO_INTR_RCGN_REG. + */ + uint32_t gpio3_int_raw: 1; + /** gpio4_int_raw : RO; bitpos: [4]; default: 0; + * This interrupt raw bit turns to high level when dedicated GPIO 4 has level/edge + * change configured by DEDIC_GPIO_INTR_RCGN_REG. + */ + uint32_t gpio4_int_raw: 1; + /** gpio5_int_raw : RO; bitpos: [5]; default: 0; + * This interrupt raw bit turns to high level when dedicated GPIO 5 has level/edge + * change configured by DEDIC_GPIO_INTR_RCGN_REG. + */ + uint32_t gpio5_int_raw: 1; + /** gpio6_int_raw : RO; bitpos: [6]; default: 0; + * This interrupt raw bit turns to high level when dedicated GPIO 6 has level/edge + * change configured by DEDIC_GPIO_INTR_RCGN_REG. + */ + uint32_t gpio6_int_raw: 1; + /** gpio7_int_raw : RO; bitpos: [7]; default: 0; + * This interrupt raw bit turns to high level when dedicated GPIO 7 has level/edge + * change configured by DEDIC_GPIO_INTR_RCGN_REG. + */ + uint32_t gpio7_int_raw: 1; + }; + uint32_t val; +} dedic_gpio_intr_raw_reg_t; + +/** Type of gpio_intr_rls register + * Interrupt enable bits + */ +typedef union { + struct { + /** gpio0_int_ena : R/W; bitpos: [0]; default: 0; + * This enable bit for reg_gpio0_int_st register. + */ + uint32_t gpio0_int_ena: 1; + /** gpio1_int_ena : R/W; bitpos: [1]; default: 0; + * This enable bit for reg_gpio1_int_st register. + */ + uint32_t gpio1_int_ena: 1; + /** gpio2_int_ena : R/W; bitpos: [2]; default: 0; + * This enable bit for reg_gpio2_int_st register. + */ + uint32_t gpio2_int_ena: 1; + /** gpio3_int_ena : R/W; bitpos: [3]; default: 0; + * This enable bit for reg_gpio3_int_st register. + */ + uint32_t gpio3_int_ena: 1; + /** gpio4_int_ena : R/W; bitpos: [4]; default: 0; + * This enable bit for reg_gpio4_int_st register. + */ + uint32_t gpio4_int_ena: 1; + /** gpio5_int_ena : R/W; bitpos: [5]; default: 0; + * This enable bit for reg_gpio5_int_st register. + */ + uint32_t gpio5_int_ena: 1; + /** gpio6_int_ena : R/W; bitpos: [6]; default: 0; + * This enable bit for reg_gpio6_int_st register. + */ + uint32_t gpio6_int_ena: 1; + /** gpio7_int_ena : R/W; bitpos: [7]; default: 0; + * This enable bit for reg_gpio7_int_st register. + */ + uint32_t gpio7_int_ena: 1; + }; + uint32_t val; +} dedic_gpio_intr_rls_reg_t; + +/** Type of gpio_intr_st register + * Masked interrupt status + */ +typedef union { + struct { + /** gpio0_int_st : RO; bitpos: [0]; default: 0; + * This is the status bit for reg_gpio0_int_raw when reg_gpio0_int_ena is set to 1. + */ + uint32_t gpio0_int_st: 1; + /** gpio1_int_st : RO; bitpos: [1]; default: 0; + * This is the status bit for reg_gpio1_int_raw when reg_gpio1_int_ena is set to 1. + */ + uint32_t gpio1_int_st: 1; + /** gpio2_int_st : RO; bitpos: [2]; default: 0; + * This is the status bit for reg_gpio2_int_raw when reg_gpio2_int_ena is set to 1. + */ + uint32_t gpio2_int_st: 1; + /** gpio3_int_st : RO; bitpos: [3]; default: 0; + * This is the status bit for reg_gpio3_int_raw when reg_gpio3_int_ena is set to 1. + */ + uint32_t gpio3_int_st: 1; + /** gpio4_int_st : RO; bitpos: [4]; default: 0; + * This is the status bit for reg_gpio4_int_raw when reg_gpio4_int_ena is set to 1. + */ + uint32_t gpio4_int_st: 1; + /** gpio5_int_st : RO; bitpos: [5]; default: 0; + * This is the status bit for reg_gpio5_int_raw when reg_gpio5_int_ena is set to 1. + */ + uint32_t gpio5_int_st: 1; + /** gpio6_int_st : RO; bitpos: [6]; default: 0; + * This is the status bit for reg_gpio6_int_raw when reg_gpio6_int_ena is set to 1. + */ + uint32_t gpio6_int_st: 1; + /** gpio7_int_st : RO; bitpos: [7]; default: 0; + * This is the status bit for reg_gpio7_int_raw when reg_gpio7_int_ena is set to 1. + */ + uint32_t gpio7_int_st: 1; + }; + uint32_t val; +} dedic_gpio_intr_st_reg_t; + +/** Type of gpio_intr_clr register + * Interrupt clear bits + */ +typedef union { + struct { + /** gpio0_int_clr : WO; bitpos: [0]; default: 0; + * Set this bit to clear the reg_gpio0_int_raw interrupt. + */ + uint32_t gpio0_int_clr: 1; + /** gpio1_int_clr : WO; bitpos: [1]; default: 0; + * Set this bit to clear the reg_gpio1_int_raw interrupt. + */ + uint32_t gpio1_int_clr: 1; + /** gpio2_int_clr : WO; bitpos: [2]; default: 0; + * Set this bit to clear the reg_gpio2_int_raw interrupt. + */ + uint32_t gpio2_int_clr: 1; + /** gpio3_int_clr : WO; bitpos: [3]; default: 0; + * Set this bit to clear the reg_gpio3_int_raw interrupt. + */ + uint32_t gpio3_int_clr: 1; + /** gpio4_int_clr : WO; bitpos: [4]; default: 0; + * Set this bit to clear the reg_gpio4_int_raw interrupt. + */ + uint32_t gpio4_int_clr: 1; + /** gpio5_int_clr : WO; bitpos: [5]; default: 0; + * Set this bit to clear the reg_gpio5_int_raw interrupt. + */ + uint32_t gpio5_int_clr: 1; + /** gpio6_int_clr : WO; bitpos: [6]; default: 0; + * Set this bit to clear the reg_gpio6_int_raw interrupt. + */ + uint32_t gpio6_int_clr: 1; + /** gpio7_int_clr : WO; bitpos: [7]; default: 0; + * Set this bit to clear the reg_gpio7_int_raw interrupt. + */ + uint32_t gpio7_int_clr: 1; + }; + uint32_t val; +} dedic_gpio_intr_clr_reg_t; + +typedef struct { + volatile dedic_gpio_out_drt_reg_t gpio_out_drt; + volatile dedic_gpio_out_msk_reg_t gpio_out_msk; + volatile dedic_gpio_out_idv_reg_t gpio_out_idv; + volatile dedic_gpio_out_scan_reg_t gpio_out_scan; + volatile dedic_gpio_out_cpu_reg_t gpio_out_cpu; + volatile dedic_gpio_in_dly_reg_t gpio_in_dly; + volatile dedic_gpio_in_scan_reg_t gpio_in_scan; + volatile dedic_gpio_intr_rcgn_reg_t gpio_intr_rcgn; + volatile dedic_gpio_intr_raw_reg_t gpio_intr_raw; + volatile dedic_gpio_intr_rls_reg_t gpio_intr_rls; + volatile dedic_gpio_intr_st_reg_t gpio_intr_st; + volatile dedic_gpio_intr_clr_reg_t gpio_intr_clr; +} dedic_dev_t; + +_Static_assert(sizeof(dedic_dev_t) == 0x30, "dedic_dev_t should occupy 0x30 bytes in memory"); + +extern dedic_dev_t DEDIC_GPIO; + +#ifdef __cplusplus +} +#endif diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/dport_access.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/dport_access.h similarity index 98% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/dport_access.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/dport_access.h index e5dfeda8..d6d9bfff 100644 --- a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/dport_access.h +++ b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/dport_access.h @@ -16,11 +16,8 @@ #define _DPORT_ACCESS_H_ #include -#include "esp_attr.h" + #include "esp32s2/dport_access.h" -#include "soc.h" -#include "uart_reg.h" -#include "xtensa/xtruntime.h" #ifdef __cplusplus extern "C" { diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/dport_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/dport_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/dport_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/dport_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/efuse_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/efuse_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/efuse_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/efuse_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/efuse_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/efuse_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/efuse_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/efuse_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/extmem_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/extmem_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/extmem_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/extmem_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/fe_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/fe_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/fe_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/fe_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/frc_timer_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/frc_timer_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/frc_timer_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/frc_timer_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/gpio_pins.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/gpio_pins.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/gpio_pins.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/gpio_pins.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/gpio_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/gpio_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/gpio_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/gpio_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/gpio_sd_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/gpio_sd_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/gpio_sd_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/gpio_sd_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/gpio_sd_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/gpio_sd_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/gpio_sd_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/gpio_sd_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/gpio_sig_map.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/gpio_sig_map.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/gpio_sig_map.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/gpio_sig_map.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/gpio_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/gpio_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/gpio_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/gpio_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/hwcrypto_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/hwcrypto_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/hwcrypto_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/hwcrypto_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/i2c_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/i2c_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/i2c_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/i2c_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/i2c_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/i2c_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/i2c_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/i2c_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/i2s_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/i2s_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/i2s_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/i2s_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/i2s_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/i2s_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/i2s_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/i2s_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/interrupt_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/interrupt_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/interrupt_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/interrupt_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/io_mux_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/io_mux_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/io_mux_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/io_mux_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/ledc_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/ledc_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/ledc_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/ledc_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/ledc_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/ledc_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/ledc_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/ledc_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/nrx_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/nrx_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/nrx_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/nrx_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/pcnt_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/pcnt_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/pcnt_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/pcnt_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/pcnt_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/pcnt_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/pcnt_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/pcnt_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/periph_defs.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/periph_defs.h similarity index 99% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/periph_defs.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/periph_defs.h index 40a1e559..53614897 100644 --- a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/periph_defs.h +++ b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/periph_defs.h @@ -54,6 +54,7 @@ typedef enum { PERIPH_CRYPTO_DMA_MODULE, //this DMA is shared between AES and SHA PERIPH_AES_DMA_MODULE, PERIPH_SHA_DMA_MODULE, + PERIPH_DEDIC_GPIO_MODULE, PERIPH_MODULE_MAX } periph_module_t; diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rmt_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rmt_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rmt_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rmt_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rmt_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rmt_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rmt_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rmt_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rsa_caps.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rsa_caps.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rsa_caps.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rsa_caps.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rtc.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rtc.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rtc.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rtc.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rtc_cntl_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rtc_cntl_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rtc_cntl_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rtc_cntl_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rtc_cntl_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rtc_cntl_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rtc_cntl_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rtc_cntl_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rtc_i2c_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rtc_i2c_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rtc_i2c_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rtc_i2c_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rtc_i2c_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rtc_i2c_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rtc_i2c_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rtc_i2c_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rtc_io_channel.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rtc_io_channel.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rtc_io_channel.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rtc_io_channel.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rtc_io_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rtc_io_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rtc_io_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rtc_io_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rtc_io_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rtc_io_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/rtc_io_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/rtc_io_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/sdio_slave_pins.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/sdio_slave_pins.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/sdio_slave_pins.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/sdio_slave_pins.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/sdmmc_pins.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/sdmmc_pins.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/sdmmc_pins.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/sdmmc_pins.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/sdmmc_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/sdmmc_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/sdmmc_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/sdmmc_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/sdmmc_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/sdmmc_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/sdmmc_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/sdmmc_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/sens_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/sens_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/sens_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/sens_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/sens_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/sens_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/sens_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/sens_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/sensitive_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/sensitive_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/sensitive_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/sensitive_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/sha_caps.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/sha_caps.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/sha_caps.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/sha_caps.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/soc.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/soc.h similarity index 99% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/soc.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/soc.h index a8c4cd7b..a1ff1eda 100644 --- a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/soc.h +++ b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/soc.h @@ -66,7 +66,7 @@ #define DR_REG_PCNT_BASE 0x3f417000 #define DR_REG_SLC_BASE 0x3f418000 #define DR_REG_LEDC_BASE 0x3f419000 -#define DR_REG_MCP_BASE 0x3f4c3000 +#define DR_REG_CP_BASE 0x3f4c3000 #define DR_REG_EFUSE_BASE 0x3f41A000 #define DR_REG_NRX_BASE 0x3f41CC00 #define DR_REG_BB_BASE 0x3f41D000 diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/soc_caps.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/soc_caps.h similarity index 92% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/soc_caps.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/soc_caps.h index 00dd682f..e1b18dcc 100644 --- a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/soc_caps.h +++ b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/soc_caps.h @@ -40,6 +40,7 @@ #define SOC_TWAI_SUPPORTED 1 #define SOC_CP_DMA_SUPPORTED 1 #define SOC_CPU_CORES_NUM 1 +#define SOC_DEDICATED_GPIO_SUPPORTED 1 #define SOC_SUPPORTS_SECURE_DL_MODE 1 #define SOC_RISCV_COPROC_SUPPORTED 1 #define SOC_USB_SUPPORTED 1 @@ -95,6 +96,12 @@ // GPIO 46, 47 are input only #define SOC_GPIO_VALID_OUTPUT_GPIO_MASK (SOC_GPIO_VALID_GPIO_MASK & ~(0ULL | BIT46 | BIT47)) +/*-------------------------- Dedicated GPIO CAPS ---------------------------------------*/ +#define SOC_DEDIC_GPIO_OUT_CHANNELS_NUM (8) /*!< 8 outward channels on each CPU core */ +#define SOC_DEDIC_GPIO_IN_CHANNELS_NUM (8) /*!< 8 inward channels on each CPU core */ +#define SOC_DEDIC_GPIO_ALLOW_REG_ACCESS (1) /*!< Allow access dedicated GPIO channel by register */ +#define SOC_DEDIC_GPIO_HAS_INTERRUPT (1) /*!< Dedicated GPIO has its own interrupt source */ + /*-------------------------- I2C CAPS ----------------------------------------*/ // ESP32-S2 have 2 I2C. #define SOC_I2C_NUM (2) @@ -147,8 +154,8 @@ #define SOC_RTCIO_PIN_COUNT 22 /*-------------------------- SIGMA DELTA CAPS --------------------------------*/ -// ESP32-S2 have 1 SIGMADELTA peripheral. -#define SOC_SIGMADELTA_NUM 1 +#define SOC_SIGMADELTA_NUM (1) // 1 sigma-delta peripheral +#define SOC_SIGMADELTA_CHANNEL_NUM (8) // 8 channels /*-------------------------- SPI CAPS ----------------------------------------*/ #define SOC_SPI_PERIPH_NUM 3 @@ -171,7 +178,7 @@ // Peripheral supports output given level during its "dummy phase" // Only SPI1 supports this feature -#define SOC_SPI_PERIPH_SUPPORT_CONTROL_DUMMY_OUTPUT(host_id) ((host_id) == 0) +#define SOC_SPI_PERIPH_SUPPORT_CONTROL_DUMMY_OUTPUT 1 #define SOC_MEMSPI_IS_INDEPENDENT 1 @@ -207,4 +214,4 @@ #define SOC_USB_PERIPH_NUM 1 /* ---------------------------- Compatibility ------------------------------- */ -// No contents \ No newline at end of file +// No contents diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/soc_pins.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/soc_pins.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/soc_pins.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/soc_pins.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/soc_ulp.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/soc_ulp.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/soc_ulp.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/soc_ulp.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/spi_mem_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/spi_mem_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/spi_mem_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/spi_mem_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/spi_mem_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/spi_mem_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/spi_mem_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/spi_mem_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/spi_pins.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/spi_pins.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/spi_pins.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/spi_pins.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/spi_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/spi_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/spi_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/spi_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/spi_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/spi_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/spi_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/spi_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/syscon_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/syscon_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/syscon_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/syscon_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/syscon_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/syscon_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/syscon_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/syscon_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/system_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/system_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/system_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/system_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/systimer_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/systimer_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/systimer_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/systimer_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/timer_group_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/timer_group_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/timer_group_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/timer_group_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/timer_group_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/timer_group_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/timer_group_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/timer_group_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/touch_sensor_channel.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/touch_sensor_channel.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/touch_sensor_channel.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/touch_sensor_channel.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/touch_sensor_pins.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/touch_sensor_pins.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/touch_sensor_pins.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/touch_sensor_pins.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/twai_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/twai_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/twai_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/twai_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/uart_channel.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/uart_channel.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/uart_channel.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/uart_channel.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/uart_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/uart_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/uart_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/uart_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/uart_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/uart_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/uart_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/uart_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/uhci_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/uhci_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/uhci_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/uhci_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/uhci_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/uhci_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/uhci_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/uhci_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/usb_periph.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/usb_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/usb_periph.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/usb_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/usb_pins.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/usb_pins.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/usb_pins.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/usb_pins.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/usb_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/usb_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/usb_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/usb_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/usb_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/usb_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/usb_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/usb_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/usb_types.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/usb_types.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/usb_types.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/usb_types.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/usb_wrap_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/usb_wrap_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/usb_wrap_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/usb_wrap_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/usb_wrap_struct.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/usb_wrap_struct.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/usb_wrap_struct.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/usb_wrap_struct.h diff --git a/tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/wdev_reg.h b/tools/sdk/esp32s2/include/soc/esp32s2/include/soc/wdev_reg.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/esp32s2/include/soc/wdev_reg.h rename to tools/sdk/esp32s2/include/soc/esp32s2/include/soc/wdev_reg.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/adc_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/adc_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/adc_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/adc_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/dac_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/dac_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/dac_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/dac_periph.h diff --git a/tools/sdk/esp32s2/include/soc/include/soc/dedic_gpio_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/dedic_gpio_periph.h new file mode 100644 index 00000000..f6eeeeb5 --- /dev/null +++ b/tools/sdk/esp32s2/include/soc/include/soc/dedic_gpio_periph.h @@ -0,0 +1,41 @@ +// Copyright 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 +// distributed under the License is distributed on an "AS IS" BASIS, +// 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. + +#pragma once + +#include +#include "soc/soc.h" +#include "soc/soc_caps.h" +#include "soc/periph_defs.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#if SOC_DEDICATED_GPIO_SUPPORTED +typedef struct { + const periph_module_t module; // Peripheral module + const int irq; // Interrupt resource (-1 means no interrupt supported) + struct { + const int in_sig_per_channel[SOC_DEDIC_GPIO_IN_CHANNELS_NUM]; + const int out_sig_per_channel[SOC_DEDIC_GPIO_OUT_CHANNELS_NUM]; + } cores[SOC_CPU_CORES_NUM]; // Signals routed to/from GPIO matrix +} dedic_gpio_signal_conn_t; + +extern const dedic_gpio_signal_conn_t dedic_gpio_periph_signals; +#endif // SOC_DEDICATED_GPIO_SUPPORTED + +#ifdef __cplusplus +} +#endif diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/efuse_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/efuse_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/efuse_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/efuse_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/emac_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/emac_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/emac_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/emac_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/gpio_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/gpio_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/gpio_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/gpio_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/hwcrypto_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/hwcrypto_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/hwcrypto_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/hwcrypto_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/i2c_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/i2c_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/i2c_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/i2c_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/i2s_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/i2s_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/i2s_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/i2s_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/interrupts.h b/tools/sdk/esp32s2/include/soc/include/soc/interrupts.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/interrupts.h rename to tools/sdk/esp32s2/include/soc/include/soc/interrupts.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/ledc_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/ledc_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/ledc_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/ledc_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/mcpwm_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/mcpwm_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/mcpwm_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/mcpwm_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/pcnt_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/pcnt_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/pcnt_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/pcnt_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/rmt_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/rmt_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/rmt_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/rmt_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/rtc_cntl_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/rtc_cntl_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/rtc_cntl_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/rtc_cntl_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/rtc_io_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/rtc_io_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/rtc_io_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/rtc_io_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/rtc_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/rtc_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/rtc_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/rtc_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/sdio_slave_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/sdio_slave_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/sdio_slave_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/sdio_slave_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/sdmmc_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/sdmmc_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/sdmmc_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/sdmmc_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/sens_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/sens_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/sens_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/sens_periph.h diff --git a/tools/sdk/esp32/include/soc/soc/include/soc/sigmadelta_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/sigmadelta_periph.h similarity index 68% rename from tools/sdk/esp32/include/soc/soc/include/soc/sigmadelta_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/sigmadelta_periph.h index 63ec3a41..75e723c7 100644 --- a/tools/sdk/esp32/include/soc/soc/include/soc/sigmadelta_periph.h +++ b/tools/sdk/esp32s2/include/soc/include/soc/sigmadelta_periph.h @@ -13,5 +13,24 @@ // limitations under the License. #pragma once -#include "soc/gpio_sd_struct.h" + +#include +#include "soc/soc_caps.h" #include "soc/gpio_sd_reg.h" +#include "soc/gpio_sd_struct.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + struct { + const uint32_t sd_sig; + } channels[SOC_SIGMADELTA_CHANNEL_NUM]; +} sigma_delta_signal_conn_t; + +extern const sigma_delta_signal_conn_t sigma_delta_periph_signals; + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/spi_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/spi_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/spi_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/spi_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/syscon_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/syscon_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/syscon_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/syscon_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/timer_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/timer_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/timer_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/timer_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/touch_sensor_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/touch_sensor_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/touch_sensor_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/touch_sensor_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/twai_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/twai_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/twai_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/twai_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/uart_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/uart_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/uart_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/uart_periph.h diff --git a/tools/sdk/esp32s2/include/soc/soc/include/soc/uhci_periph.h b/tools/sdk/esp32s2/include/soc/include/soc/uhci_periph.h similarity index 100% rename from tools/sdk/esp32s2/include/soc/soc/include/soc/uhci_periph.h rename to tools/sdk/esp32s2/include/soc/include/soc/uhci_periph.h diff --git a/tools/sdk/esp32s2/include/spi_flash/include/memspi_host_driver.h b/tools/sdk/esp32s2/include/spi_flash/include/memspi_host_driver.h index 46336f67..80cc5523 100644 --- a/tools/sdk/esp32s2/include/spi_flash/include/memspi_host_driver.h +++ b/tools/sdk/esp32s2/include/spi_flash/include/memspi_host_driver.h @@ -107,7 +107,7 @@ esp_err_t memspi_host_flush_cache(spi_flash_host_inst_t *host, uint32_t addr, ui void memspi_host_erase_chip(spi_flash_host_inst_t *host); /** - * Erase a sector starting from a given address. + * Erase a sector starting from a given address. For 24bit address only. * * @param host The driver context. * @param start_address Starting address of the sector. @@ -115,7 +115,7 @@ void memspi_host_erase_chip(spi_flash_host_inst_t *host); void memspi_host_erase_sector(spi_flash_host_inst_t *host, uint32_t start_address); /** - * Erase a block starting from a given address. + * Erase a block starting from a given address. For 24bit address only. * * @param host The driver context. * @param start_address Starting address of the block. @@ -123,7 +123,7 @@ void memspi_host_erase_sector(spi_flash_host_inst_t *host, uint32_t start_addres void memspi_host_erase_block(spi_flash_host_inst_t *host, uint32_t start_address); /** - * Program a page with contents of a buffer. + * Program a page with contents of a buffer. For 24bit address only. * * @param host The driver context. * @param buffer Buffer which contains the data to be flashed. diff --git a/tools/sdk/esp32s2/include/spi_flash/include/spi_flash_chip_driver.h b/tools/sdk/esp32s2/include/spi_flash/include/spi_flash_chip_driver.h index 7d875b4c..349adbe5 100644 --- a/tools/sdk/esp32s2/include/spi_flash/include/spi_flash_chip_driver.h +++ b/tools/sdk/esp32s2/include/spi_flash/include/spi_flash_chip_driver.h @@ -29,6 +29,10 @@ typedef struct { uint32_t page_program_timeout; ///< Timeout for page program operation } flash_chip_op_timeout_t; +typedef enum { + SPI_FLASH_REG_STATUS = 1, +} spi_flash_register_t; + /** @brief SPI flash chip driver definition structure. * * The chip driver structure contains chip-specific pointers to functions to perform SPI flash operations, and some @@ -167,6 +171,17 @@ struct spi_flash_chip_t { * enabled, otherwise disabled */ esp_err_t (*get_io_mode)(esp_flash_t *chip, esp_flash_io_mode_t* out_io_mode); + + /* + * Read the chip ID. Called when chip driver is set, but we want to know the exact chip id (to + * get the size, etc.). + */ + esp_err_t (*read_id)(esp_flash_t *chip, uint32_t* out_chip_id); + + /* + * Read the requested register (status, etc.). + */ + esp_err_t (*read_reg)(esp_flash_t *chip, spi_flash_register_t reg_id, uint32_t* out_reg); }; /* Pointer to an array of pointers to all known drivers for flash chips. This array is used diff --git a/tools/sdk/esp32s2/include/spi_flash/include/spi_flash_chip_generic.h b/tools/sdk/esp32s2/include/spi_flash/include/spi_flash_chip_generic.h index 372a1e1b..1c76ec1e 100644 --- a/tools/sdk/esp32s2/include/spi_flash/include/spi_flash_chip_generic.h +++ b/tools/sdk/esp32s2/include/spi_flash/include/spi_flash_chip_generic.h @@ -189,6 +189,16 @@ esp_err_t spi_flash_chip_generic_set_write_protect(esp_flash_t *chip, bool write esp_err_t spi_flash_chip_generic_get_write_protect(esp_flash_t *chip, bool *out_write_protect); #define ESP_FLASH_CHIP_GENERIC_NO_TIMEOUT -1 +/** + * @brief Send commands to read one of the reg of the chip + * + * @param chip Pointer to SPI flash chip to use. If NULL, esp_flash_default_chip is substituted. + * @param reg_id Type of the register to read + * @param out_reg Output of the register value + * @return esp_err_t Error code passed from the ``read_status`` function of host driver. + */ +esp_err_t spi_flash_chip_generic_read_reg(esp_flash_t* chip, spi_flash_register_t reg_id, uint32_t* out_reg); + /** * @brief Read flash status via the RDSR command and wait for bit 0 (write in * progress bit) to be cleared. @@ -362,13 +372,14 @@ esp_err_t spi_flash_common_set_io_mode(esp_flash_t *chip, esp_flash_wrsr_func_t * transactions. Also prepare the command to be sent in read functions. * * @param chip Pointer to SPI flash chip to use. If NULL, esp_flash_default_chip is substituted. + * @param addr_32bit Whether 32 bit commands will be used (Currently only W25Q256 is supported) * * @return * - ESP_OK if success * - ESP_ERR_FLASH_NOT_INITIALISED if chip not initialized properly * - or other error passed from the ``configure_host_mode`` function of host driver */ -esp_err_t spi_flash_chip_generic_config_host_io_mode(esp_flash_t *chip); +esp_err_t spi_flash_chip_generic_config_host_io_mode(esp_flash_t *chip, bool addr_32bit); /// Default timeout configuration used by most chips const flash_chip_op_timeout_t spi_flash_chip_generic_timeout; \ No newline at end of file diff --git a/tools/sdk/esp32s2/include/spi_flash/include/spi_flash_chip_winbond.h b/tools/sdk/esp32s2/include/spi_flash/include/spi_flash_chip_winbond.h new file mode 100644 index 00000000..23dc19c2 --- /dev/null +++ b/tools/sdk/esp32s2/include/spi_flash/include/spi_flash_chip_winbond.h @@ -0,0 +1,27 @@ +// 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 +// distributed under the License is distributed on an "AS IS" BASIS, +// 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. + +#pragma once + +#include +#include "esp_flash.h" +#include "spi_flash_chip_driver.h" + + +/** + * Winbond SPI flash chip_drv, uses all the above functions for its operations. In + * default autodetection, this is used as a catchall if a more specific chip_drv + * is not found. + */ +extern const spi_flash_chip_t esp_flash_chip_winbond; diff --git a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/cdc/cdc.h b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/cdc/cdc.h index f0488acb..2c044ac7 100644 --- a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/cdc/cdc.h +++ b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/cdc/cdc.h @@ -63,7 +63,7 @@ typedef enum CDC_COMM_SUBCLASS_TELEPHONE_CONTROL_MODEL , ///< Telephone Control Model [USBPSTN1.2] CDC_COMM_SUBCLASS_MULTICHANNEL_CONTROL_MODEL , ///< Multi-Channel Control Model [USBISDN1.2] CDC_COMM_SUBCLASS_CAPI_CONTROL_MODEL , ///< CAPI Control Model [USBISDN1.2] - CDC_COMM_SUBCLASS_ETHERNET_NETWORKING_CONTROL_MODEL , ///< Ethernet Networking Control Model [USBECM1.2] + CDC_COMM_SUBCLASS_ETHERNET_CONTROL_MODEL , ///< Ethernet Networking Control Model [USBECM1.2] CDC_COMM_SUBCLASS_ATM_NETWORKING_CONTROL_MODEL , ///< ATM Networking Control Model [USBATM1.2] CDC_COMM_SUBCLASS_WIRELESS_HANDSET_CONTROL_MODEL , ///< Wireless Handset Control Model [USBWMC1.1] CDC_COMM_SUBCLASS_DEVICE_MANAGEMENT , ///< Device Management [USBWMC1.1] diff --git a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/cdc/cdc_host.h b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/cdc/cdc_host.h index 306420ce..66c2f072 100644 --- a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/cdc/cdc_host.h +++ b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/cdc/cdc_host.h @@ -44,6 +44,18 @@ * \defgroup CDC_Serial_Host Host * @{ */ +bool tuh_cdc_set_control_line_state(uint8_t dev_addr, bool dtr, bool rts, tuh_control_complete_cb_t complete_cb); + +static inline bool tuh_cdc_connect(uint8_t dev_addr, tuh_control_complete_cb_t complete_cb) +{ + return tuh_cdc_set_control_line_state(dev_addr, true, true, complete_cb); +} + +static inline bool tuh_cdc_disconnect(uint8_t dev_addr, tuh_control_complete_cb_t complete_cb) +{ + return tuh_cdc_set_control_line_state(dev_addr, false, false, complete_cb); +} + /** \brief Check if device support CDC Serial interface or not * \param[in] dev_addr device address * \retval true if device supports @@ -113,7 +125,8 @@ void tuh_cdc_xfer_isr(uint8_t dev_addr, xfer_result_t event, cdc_pipeid_t pipe_i //--------------------------------------------------------------------+ void cdch_init(void); bool cdch_open(uint8_t rhport, uint8_t dev_addr, tusb_desc_interface_t const *itf_desc, uint16_t *p_length); -void cdch_isr(uint8_t dev_addr, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes); +bool cdch_set_config(uint8_t dev_addr, uint8_t itf_num); +bool cdch_xfer_cb(uint8_t dev_addr, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes); void cdch_close(uint8_t dev_addr); #ifdef __cplusplus diff --git a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/hid/hid_host.h b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/hid/hid_host.h index 2e7f5267..5c77398f 100644 --- a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/hid/hid_host.h +++ b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/hid/hid_host.h @@ -197,7 +197,8 @@ void tuh_hid_generic_isr(uint8_t dev_addr, xfer_result_t event); //--------------------------------------------------------------------+ void hidh_init(void); bool hidh_open_subtask(uint8_t rhport, uint8_t dev_addr, tusb_desc_interface_t const *p_interface_desc, uint16_t *p_length); -void hidh_isr(uint8_t dev_addr, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes); +bool hidh_set_config(uint8_t dev_addr, uint8_t itf_num); +bool hidh_xfer_cb(uint8_t dev_addr, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes); void hidh_close(uint8_t dev_addr); #ifdef __cplusplus diff --git a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/msc/msc_host.h b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/msc/msc_host.h index 959294ad..5913350b 100644 --- a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/msc/msc_host.h +++ b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/msc/msc_host.h @@ -40,15 +40,16 @@ * \defgroup MSC_Host Host * The interface API includes status checking function, data transferring function and callback functions * @{ */ + +typedef bool (*tuh_msc_complete_cb_t)(uint8_t dev_addr, msc_cbw_t const* cbw, msc_csw_t const* csw); + //--------------------------------------------------------------------+ -// MASS STORAGE Application API +// Application API //--------------------------------------------------------------------+ -/** \brief Check if device supports MassStorage interface or not - * \param[in] dev_addr device address - * \retval true if device supports - * \retval false if device does not support or is not mounted - */ -bool tuh_msc_is_mounted(uint8_t dev_addr); + +// Check if device supports MassStorage interface. +// This function true after tuh_msc_mounted_cb() and false after tuh_msc_unmounted_cb() +bool tuh_msc_mounted(uint8_t dev_addr); /** \brief Check if the interface is currently busy or not * \param[in] dev_addr device address @@ -60,35 +61,27 @@ bool tuh_msc_is_mounted(uint8_t dev_addr); */ bool tuh_msc_is_busy(uint8_t dev_addr); -/** \brief Get SCSI vendor's name of MassStorage device - * \param[in] dev_addr device address - * \return pointer to vendor's name or NULL if specified device does not support MassStorage - * \note SCSI vendor's name is 8-byte length field in \ref scsi_inquiry_data_t. During enumeration, the stack has already - * retrieved (via SCSI INQUIRY) and store this information internally. There is no need for application to re-send SCSI INQUIRY - * command or allocate buffer for this. - */ -uint8_t const* tuh_msc_get_vendor_name(uint8_t dev_addr); +// Get Max Lun +uint8_t tuh_msc_get_maxlun(uint8_t dev_addr); -/** \brief Get SCSI product's name of MassStorage device - * \param[in] dev_addr device address - * \return pointer to product's name or NULL if specified device does not support MassStorage - * \note SCSI product's name is 16-byte length field in \ref scsi_inquiry_data_t. During enumeration, the stack has already - * retrieved (via SCSI INQUIRY) and store this information internally. There is no need for application to re-send SCSI INQUIRY - * command or allocate buffer for this. - */ -uint8_t const* tuh_msc_get_product_name(uint8_t dev_addr); +// Carry out a full SCSI command (cbw, data, csw) in non-blocking manner. +// `complete_cb` callback is invoked when SCSI op is complete. +// return true if success, false if there is already pending operation. +bool tuh_msc_scsi_command(uint8_t dev_addr, msc_cbw_t const* cbw, void* data, tuh_msc_complete_cb_t complete_cb); -/** \brief Get SCSI Capacity of MassStorage device - * \param[in] dev_addr device address - * \param[out] p_last_lba Last Logical Block Address of device - * \param[out] p_block_size Block Size of device in bytes - * \retval pointer to product's name or NULL if specified device does not support MassStorage - * \note MassStorage's capacity can be computed by last LBA x block size (in bytes). During enumeration, the stack has already - * retrieved (via SCSI READ CAPACITY 10) and store this information internally. There is no need for application - * to re-send SCSI READ CAPACITY 10 command - */ -tusb_error_t tuh_msc_get_capacity(uint8_t dev_addr, uint32_t* p_last_lba, uint32_t* p_block_size); +// Carry out SCSI INQUIRY command in non-blocking manner. +bool tuh_msc_scsi_inquiry(uint8_t dev_addr, uint8_t lun, scsi_inquiry_resp_t* response, tuh_msc_complete_cb_t complete_cb); +// Carry out SCSI REQUEST SENSE (10) command in non-blocking manner. +bool tuh_msc_test_unit_ready(uint8_t dev_addr, uint8_t lun, tuh_msc_complete_cb_t complete_cb); + +// Carry out SCSI REQUEST SENSE (10) command in non-blocking manner. +bool tuh_msc_request_sense(uint8_t dev_addr, uint8_t lun, void *resposne, tuh_msc_complete_cb_t complete_cb); + +// Carry out SCSI READ CAPACITY (10) command in non-blocking manner. +bool tuh_msc_read_capacity(uint8_t dev_addr, uint8_t lun, scsi_read_capacity10_resp_t* response, tuh_msc_complete_cb_t complete_cb); + +#if 0 /** \brief Perform SCSI READ 10 command to read data from MassStorage device * \param[in] dev_addr device address * \param[in] lun Targeted Logical Unit @@ -116,84 +109,24 @@ tusb_error_t tuh_msc_read10 (uint8_t dev_addr, uint8_t lun, void * p_buffer, uin * \note This function is non-blocking and returns immediately. The result of USB transfer will be reported by the interface's callback function */ tusb_error_t tuh_msc_write10(uint8_t dev_addr, uint8_t lun, void const * p_buffer, uint32_t lba, uint16_t block_count); - -/** \brief Perform SCSI REQUEST SENSE command, used to retrieve sense data from MassStorage device - * \param[in] dev_addr device address - * \param[in] lun Targeted Logical Unit - * \param[in] p_data Buffer to store response's data from device. Must be accessible by USB controller (see \ref CFG_TUSB_MEM_SECTION) - * \retval TUSB_ERROR_NONE on success - * \retval TUSB_ERROR_INTERFACE_IS_BUSY if the interface is already transferring data with device - * \retval TUSB_ERROR_DEVICE_NOT_READY if device is not yet configured (by SET CONFIGURED request) - * \retval TUSB_ERROR_INVALID_PARA if input parameters are not correct - * \note This function is non-blocking and returns immediately. The result of USB transfer will be reported by the interface's callback function - */ -tusb_error_t tuh_msc_request_sense(uint8_t dev_addr, uint8_t lun, uint8_t *p_data); - -/** \brief Perform SCSI TEST UNIT READY command to test if MassStorage device is ready - * \param[in] dev_addr device address - * \param[in] lun Targeted Logical Unit - * \retval TUSB_ERROR_NONE on success - * \retval TUSB_ERROR_INTERFACE_IS_BUSY if the interface is already transferring data with device - * \retval TUSB_ERROR_DEVICE_NOT_READY if device is not yet configured (by SET CONFIGURED request) - * \retval TUSB_ERROR_INVALID_PARA if input parameters are not correct - * \note This function is non-blocking and returns immediately. The result of USB transfer will be reported by the interface's callback function - */ -tusb_error_t tuh_msc_test_unit_ready(uint8_t dev_addr, uint8_t lun, msc_csw_t * p_csw); // TODO to be refractor - -//tusb_error_t tusbh_msc_scsi_send(uint8_t dev_addr, uint8_t lun, bool is_direction_in, -// uint8_t const * p_command, uint8_t cmd_len, -// uint8_t * p_response, uint32_t resp_len); +#endif //------------- Application Callback -------------// -/** \brief Callback function that will be invoked when a device with MassStorage interface is mounted - * \param[in] dev_addr Address of newly mounted device - * \note This callback should be used by Application to set-up interface-related data - */ + +// Invoked when a device with MassStorage interface is mounted void tuh_msc_mounted_cb(uint8_t dev_addr); -/** \brief Callback function that will be invoked when a device with MassStorage interface is unmounted - * \param[in] dev_addr Address of newly unmounted device - * \note This callback should be used by Application to tear-down interface-related data - */ +// Invoked when a device with MassStorage interface is unmounted void tuh_msc_unmounted_cb(uint8_t dev_addr); -/** \brief Callback function that is invoked when an transferring event occurred - * \param[in] dev_addr Address of device - * \param[in] event an value from \ref xfer_result_t - * \param[in] xferred_bytes Number of bytes transferred via USB bus - * \note event can be one of following - * - XFER_RESULT_SUCCESS : previously scheduled transfer completes successfully. - * - XFER_RESULT_FAILED : previously scheduled transfer encountered a transaction error. - * - XFER_RESULT_STALLED : previously scheduled transfer is stalled by device. - * \note - */ -void tuh_msc_isr(uint8_t dev_addr, xfer_result_t event, uint32_t xferred_bytes); - - //--------------------------------------------------------------------+ // Internal Class Driver API //--------------------------------------------------------------------+ -typedef struct -{ - uint8_t itf_num; - uint8_t ep_in; - uint8_t ep_out; - - uint8_t max_lun; - uint16_t block_size; - uint32_t last_lba; // last logical block address - - volatile bool is_initialized; - uint8_t vendor_id[8]; - uint8_t product_id[16]; - - msc_cbw_t cbw; - msc_csw_t csw; -}msch_interface_t; void msch_init(void); bool msch_open(uint8_t rhport, uint8_t dev_addr, tusb_desc_interface_t const *itf_desc, uint16_t *p_length); -void msch_isr(uint8_t dev_addr, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes); +bool msch_set_config(uint8_t dev_addr, uint8_t itf_num); +bool msch_xfer_cb(uint8_t dev_addr, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes); void msch_close(uint8_t dev_addr); #ifdef __cplusplus diff --git a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/net/net_device.h b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/net/net_device.h index 0175ea56..795b2f9e 100644 --- a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/net/net_device.h +++ b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/class/net/net_device.h @@ -32,15 +32,13 @@ #include "device/usbd.h" #include "class/cdc/cdc.h" -// TODO should not include external files -#include "lwip/pbuf.h" -#include "netif/ethernet.h" - /* declared here, NOT in usb_descriptors.c, so that the driver can intelligently ZLP as needed */ #define CFG_TUD_NET_ENDPOINT_SIZE (TUD_OPT_HIGH_SPEED ? 512 : 64) /* Maximum Tranmission Unit (in bytes) of the network, including Ethernet header */ -#define CFG_TUD_NET_MTU (1500 + SIZEOF_ETH_HDR) +#ifndef CFG_TUD_NET_MTU +#define CFG_TUD_NET_MTU 1514 +#endif #ifdef __cplusplus extern "C" { @@ -54,7 +52,10 @@ void tud_network_init_cb(void); // client must provide this: return false if the packet buffer was not accepted -bool tud_network_recv_cb(struct pbuf *p); +bool tud_network_recv_cb(const uint8_t *src, uint16_t size); + +// client must provide this: copy from network stack packet pointer to dst +uint16_t tud_network_xmit_cb(uint8_t *dst, void *ref, uint16_t arg); // client must provide this: 48-bit MAC address // TODO removed later since it is not part of tinyusb stack @@ -67,7 +68,7 @@ void tud_network_recv_renew(void); bool tud_network_can_xmit(void); // if network_can_xmit() returns true, network_xmit() can be called once -void tud_network_xmit(struct pbuf *p); +void tud_network_xmit(void *ref, uint16_t arg); //--------------------------------------------------------------------+ // INTERNAL USBD-CLASS DRIVER API diff --git a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/common/tusb_common.h b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/common/tusb_common.h index 15892fa3..f10be88a 100644 --- a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/common/tusb_common.h +++ b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/common/tusb_common.h @@ -213,7 +213,7 @@ static inline bool tu_bit_test (uint32_t value, uint8_t pos) { return (value // 2 : print out log #if CFG_TUSB_DEBUG -void tu_print_mem(void const *buf, uint16_t count, uint8_t indent); +void tu_print_mem(void const *buf, uint32_t count, uint8_t indent); #ifdef CFG_TUSB_DEBUG_PRINTF extern int CFG_TUSB_DEBUG_PRINTF(const char *format, ...); diff --git a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/common/tusb_types.h b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/common/tusb_types.h index 70d0db94..d6b6ea62 100644 --- a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/common/tusb_types.h +++ b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/common/tusb_types.h @@ -276,6 +276,8 @@ typedef struct TU_ATTR_PACKED uint8_t bNumConfigurations ; ///< Number of possible configurations. } tusb_desc_device_t; +TU_VERIFY_STATIC( sizeof(tusb_desc_device_t) == 18, "size is not correct"); + // USB Binary Device Object Store (BOS) Descriptor typedef struct TU_ATTR_PACKED { @@ -431,7 +433,7 @@ typedef struct TU_ATTR_PACKED{ uint16_t wLength; } tusb_control_request_t; -TU_VERIFY_STATIC( sizeof(tusb_control_request_t) == 8, "mostly compiler option issue"); +TU_VERIFY_STATIC( sizeof(tusb_control_request_t) == 8, "size is not correct"); // TODO move to somewhere suitable static inline uint8_t bm_request_type(uint8_t direction, uint8_t type, uint8_t recipient) diff --git a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/device/dcd.h b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/device/dcd.h index 776f782b..b7e5a8da 100644 --- a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/device/dcd.h +++ b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/device/dcd.h @@ -77,7 +77,7 @@ typedef struct TU_ATTR_ALIGNED(4) uint32_t len; }xfer_complete; - // USBD_EVENT_FUNC_CALL + // FUNC_CALL struct { void (*func) (void*); void* param; @@ -140,7 +140,7 @@ void dcd_edpt_stall (uint8_t rhport, uint8_t ep_addr); void dcd_edpt_clear_stall (uint8_t rhport, uint8_t ep_addr); //--------------------------------------------------------------------+ -// Event API (Implemented by device stack) +// Event API (implemented by stack) //--------------------------------------------------------------------+ // Called by DCD to notify device stack diff --git a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/device/usbd.h b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/device/usbd.h index 1b0f0cbd..e88f64ba 100644 --- a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/device/usbd.h +++ b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/device/usbd.h @@ -41,8 +41,6 @@ extern "C" { //--------------------------------------------------------------------+ // Init device stack -// Note: when using with RTOS, this should be called after scheduler/kernel is started. -// Otherwise it could cause kernel issue since USB IRQ handler does use RTOS queue API. bool tud_init (void); // Task function should be called in main/rtos loop @@ -350,6 +348,11 @@ TU_ATTR_WEAK bool tud_vendor_control_complete_cb(uint8_t rhport, tusb_control_re #define TUD_AUDIO_DESC_FEATURE_UNIT_ONE_CHANNEL(_unitid, _srcid, _ctrlch0master, _ctrlch1, _stridx) \ TUD_AUDIO_DESC_FEATURE_UNIT_ONE_CHANNEL_LEN, TUSB_DESC_CS_INTERFACE, AUDIO_CS_AC_INTERFACE_FEATURE_UNIT, _unitid, _srcid, U32_TO_U8S_LE(_ctrlch0master), U32_TO_U8S_LE(_ctrlch1), _stridx +// 2 - Channels +#define TUD_AUDIO_DESC_FEATURE_UNIT_TWO_CHANNEL_LEN (6+(2+1)*4) +#define TUD_AUDIO_DESC_FEATURE_UNIT_TWO_CHANNEL(_unitid, _srcid, _ctrlch0master, _ctrlch1, _ctrlch2, _stridx) \ + TUD_AUDIO_DESC_FEATURE_UNIT_TWO_CHANNEL_LEN, TUSB_DESC_CS_INTERFACE, AUDIO_CS_AC_INTERFACE_FEATURE_UNIT, _unitid, _srcid, U32_TO_U8S_LE(_ctrlch0master), U32_TO_U8S_LE(_ctrlch1), U32_TO_U8S_LE(_ctrlch2), _stridx + // For more channels, add definitions here /* Standard AS Interface Descriptor(4.9.1) */ @@ -549,9 +552,9 @@ TU_ATTR_WEAK bool tud_vendor_control_complete_cb(uint8_t rhport, tusb_control_re // Interface number, description string index, MAC address string index, EP notification address and size, EP data address (out, in), and size, max segment size. #define TUD_CDC_ECM_DESCRIPTOR(_itfnum, _desc_stridx, _mac_stridx, _ep_notif, _ep_notif_size, _epout, _epin, _epsize, _maxsegmentsize) \ /* Interface Association */\ - 8, TUSB_DESC_INTERFACE_ASSOCIATION, _itfnum, 2, TUSB_CLASS_CDC, CDC_COMM_SUBCLASS_ETHERNET_NETWORKING_CONTROL_MODEL, 0, 0,\ + 8, TUSB_DESC_INTERFACE_ASSOCIATION, _itfnum, 2, TUSB_CLASS_CDC, CDC_COMM_SUBCLASS_ETHERNET_CONTROL_MODEL, 0, 0,\ /* CDC Control Interface */\ - 9, TUSB_DESC_INTERFACE, _itfnum, 0, 1, TUSB_CLASS_CDC, CDC_COMM_SUBCLASS_ETHERNET_NETWORKING_CONTROL_MODEL, 0, _desc_stridx,\ + 9, TUSB_DESC_INTERFACE, _itfnum, 0, 1, TUSB_CLASS_CDC, CDC_COMM_SUBCLASS_ETHERNET_CONTROL_MODEL, 0, _desc_stridx,\ /* CDC-ECM Header */\ 5, TUSB_DESC_CS_INTERFACE, CDC_FUNC_DESC_HEADER, U16_TO_U8S_LE(0x0120),\ /* CDC-ECM Union */\ diff --git a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/host/hcd.h b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/host/hcd.h index 24cc6250..db98f611 100644 --- a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/host/hcd.h +++ b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/host/hcd.h @@ -45,27 +45,39 @@ typedef enum HCD_EVENT_DEVICE_ATTACH, HCD_EVENT_DEVICE_REMOVE, HCD_EVENT_XFER_COMPLETE, + + // Not an HCD event, just a convenient way to defer ISR function + USBH_EVENT_FUNC_CALL, + + HCD_EVENT_COUNT } hcd_eventid_t; typedef struct { uint8_t rhport; uint8_t event_id; + uint8_t dev_addr; union { - struct - { + // Attach, Remove + struct { uint8_t hub_addr; uint8_t hub_port; - } attach, remove; + } connection; - struct - { + // XFER_COMPLETE + struct { uint8_t ep_addr; uint8_t result; uint32_t len; } xfer_complete; + + // FUNC_CALL + struct { + void (*func) (void*); + void* param; + }func_call; }; } hcd_event_t; @@ -109,20 +121,6 @@ tusb_speed_t hcd_port_speed_get(uint8_t hostid); // HCD closes all opened endpoints belong to this device void hcd_device_close(uint8_t rhport, uint8_t dev_addr); -//--------------------------------------------------------------------+ -// Event function -//--------------------------------------------------------------------+ -void hcd_event_handler(hcd_event_t const* event, bool in_isr); - -// Helper to send device attach event -void hcd_event_device_attach(uint8_t rhport); - -// Helper to send device removal event -void hcd_event_device_remove(uint8_t rhport); - -// Helper to send USB transfer event -void hcd_event_xfer_complete(uint8_t dev_addr, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes); - //--------------------------------------------------------------------+ // Endpoints API //--------------------------------------------------------------------+ @@ -145,6 +143,22 @@ bool hcd_pipe_xfer(uint8_t dev_addr, uint8_t ep_addr, uint8_t buffer[], uint16_t // tusb_error_t hcd_pipe_cancel(); +//--------------------------------------------------------------------+ +// Event API (implemented by stack) +//--------------------------------------------------------------------+ + +// Called by HCD to notify stack +extern void hcd_event_handler(hcd_event_t const* event, bool in_isr); + +// Helper to send device attach event +extern void hcd_event_device_attach(uint8_t rhport, bool in_isr); + +// Helper to send device removal event +extern void hcd_event_device_remove(uint8_t rhport, bool in_isr); + +// Helper to send USB transfer event +extern void hcd_event_xfer_complete(uint8_t dev_addr, uint8_t ep_addr, uint32_t xferred_bytes, xfer_result_t result, bool in_isr); + #ifdef __cplusplus } #endif diff --git a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/host/hub.h b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/host/hub.h index 62135631..35d8ad62 100644 --- a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/host/hub.h +++ b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/host/hub.h @@ -36,7 +36,7 @@ #ifndef _TUSB_HUB_H_ #define _TUSB_HUB_H_ -#include +#include "common/tusb_common.h" #include "usbh.h" #ifdef __cplusplus @@ -142,7 +142,7 @@ typedef struct { }; uint16_t value; - } status, status_change; + } status, change; } hub_status_response_t; TU_VERIFY_STATIC( sizeof(hub_status_response_t) == 4, "size is not correct"); @@ -151,30 +151,30 @@ TU_VERIFY_STATIC( sizeof(hub_status_response_t) == 4, "size is not correct"); typedef struct { union { struct TU_ATTR_PACKED { - uint16_t connect_status : 1; - uint16_t port_enable : 1; - uint16_t suspend : 1; - uint16_t over_current : 1; - uint16_t reset : 1; + uint16_t connection : 1; + uint16_t port_enable : 1; + uint16_t suspend : 1; + uint16_t over_current : 1; + uint16_t reset : 1; - uint16_t : 3; - uint16_t port_power : 1; - uint16_t low_speed_device_attached : 1; - uint16_t high_speed_device_attached : 1; - uint16_t port_test_mode : 1; - uint16_t port_indicator_control : 1; + uint16_t : 3; + uint16_t port_power : 1; + uint16_t low_speed : 1; + uint16_t high_speed : 1; + uint16_t port_test_mode : 1; + uint16_t port_indicator_control : 1; uint16_t : 0; }; uint16_t value; - } status_current, status_change; + } status, change; } hub_port_status_response_t; TU_VERIFY_STATIC( sizeof(hub_port_status_response_t) == 4, "size is not correct"); -bool hub_port_reset_subtask(uint8_t hub_addr, uint8_t hub_port); -bool hub_port_clear_feature_subtask(uint8_t hub_addr, uint8_t hub_port, uint8_t feature); -tusb_speed_t hub_port_get_speed(void); +bool hub_port_reset(uint8_t hub_addr, uint8_t hub_port, tuh_control_complete_cb_t complete_cb); +bool hub_port_get_status(uint8_t hub_addr, uint8_t hub_port, void* resp, tuh_control_complete_cb_t complete_cb); +bool hub_port_clear_feature(uint8_t hub_addr, uint8_t hub_port, uint8_t feature, tuh_control_complete_cb_t complete_cb); bool hub_status_pipe_queue(uint8_t dev_addr); //--------------------------------------------------------------------+ @@ -182,7 +182,8 @@ bool hub_status_pipe_queue(uint8_t dev_addr); //--------------------------------------------------------------------+ void hub_init(void); bool hub_open(uint8_t rhport, uint8_t dev_addr, tusb_desc_interface_t const *itf_desc, uint16_t *p_length); -void hub_isr(uint8_t dev_addr, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes); +bool hub_set_config(uint8_t dev_addr, uint8_t itf_num); +bool hub_xfer_cb(uint8_t dev_addr, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes); void hub_close(uint8_t dev_addr); #ifdef __cplusplus diff --git a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/host/usbh.h b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/host/usbh.h index 27193d37..12c9164d 100644 --- a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/host/usbh.h +++ b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/host/usbh.h @@ -58,11 +58,15 @@ typedef struct { uint8_t class_code; - void (* const init) (void); - bool (* const open)(uint8_t rhport, uint8_t dev_addr, tusb_desc_interface_t const * itf_desc, uint16_t* outlen); - void (* const isr) (uint8_t dev_addr, uint8_t ep_addr, xfer_result_t result, uint32_t len); - void (* const close) (uint8_t); -} host_class_driver_t; + void (* const init )(void); + bool (* const open )(uint8_t rhport, uint8_t dev_addr, tusb_desc_interface_t const * itf_desc, uint16_t* outlen); + bool (* const set_config )(uint8_t dev_addr, uint8_t itf_num); + bool (* const xfer_cb )(uint8_t dev_addr, uint8_t ep_addr, xfer_result_t result, uint32_t xferred_bytes); + void (* const close )(uint8_t dev_addr); +} usbh_class_driver_t; + +typedef bool (*tuh_control_complete_cb_t)(uint8_t dev_addr, tusb_control_request_t const * request, xfer_result_t result); + //--------------------------------------------------------------------+ // INTERNAL OBJECT & FUNCTION DECLARATION //--------------------------------------------------------------------+ @@ -70,6 +74,11 @@ typedef struct { //--------------------------------------------------------------------+ // APPLICATION API //--------------------------------------------------------------------+ + +// Init host stack +bool tuh_init(void); + +// Task function should be called in main/rtos loop void tuh_task(void); // Interrupt handler, name alias to HCD @@ -82,10 +91,12 @@ static inline bool tuh_device_is_configured(uint8_t dev_addr) return tuh_device_get_state(dev_addr) == TUSB_DEVICE_STATE_CONFIGURED; } +bool tuh_control_xfer (uint8_t dev_addr, tusb_control_request_t const* request, void* buffer, tuh_control_complete_cb_t complete_cb); + //--------------------------------------------------------------------+ // APPLICATION CALLBACK //--------------------------------------------------------------------+ -TU_ATTR_WEAK uint8_t tuh_device_attached_cb (tusb_desc_device_t const *p_desc_device); +//TU_ATTR_WEAK uint8_t tuh_attach_cb (tusb_desc_device_t const *desc_device); /** Callback invoked when device is mounted (configured) */ TU_ATTR_WEAK void tuh_mount_cb (uint8_t dev_addr); @@ -95,14 +106,19 @@ TU_ATTR_WEAK void tuh_umount_cb(uint8_t dev_addr); //--------------------------------------------------------------------+ // CLASS-USBH & INTERNAL API +// TODO move to usbh_pvt.h //--------------------------------------------------------------------+ -// Note: when using with RTOS, this should be called after scheduler/kernel is started. -// Otherwise it could cause kernel issue since USB IRQ handler does use RTOS queue API. -bool usbh_init(void); -bool usbh_control_xfer (uint8_t dev_addr, tusb_control_request_t* request, uint8_t* data); - bool usbh_edpt_open(uint8_t rhport, uint8_t dev_addr, tusb_desc_endpoint_t const * ep_desc); +bool usbh_edpt_xfer(uint8_t dev_addr, uint8_t ep_addr, uint8_t * buffer, uint16_t total_bytes); + +// Claim an endpoint before submitting a transfer. +// If caller does not make any transfer, it must release endpoint for others. +bool usbh_edpt_claim(uint8_t dev_addr, uint8_t ep_addr); + +void usbh_driver_set_config_complete(uint8_t dev_addr, uint8_t itf_num); + +uint8_t usbh_get_rhport(uint8_t dev_addr); #ifdef __cplusplus } diff --git a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/host/usbh_hcd.h b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/host/usbh_hcd.h index 01be8285..abc7fd25 100644 --- a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/host/usbh_hcd.h +++ b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/host/usbh_hcd.h @@ -40,9 +40,15 @@ #include "common/tusb_common.h" #include "osal/osal.h" +#ifndef CFG_TUH_EP_MAX +#define CFG_TUH_EP_MAX 9 +#endif + //--------------------------------------------------------------------+ // USBH-HCD common data structure //--------------------------------------------------------------------+ + +// TODO move to usbh.c typedef struct { //------------- port -------------// uint8_t rhport; @@ -53,29 +59,40 @@ typedef struct { //------------- device descriptor -------------// uint16_t vendor_id; uint16_t product_id; - uint8_t configure_count; // bNumConfigurations alias + uint8_t ep0_packet_size; //------------- configuration descriptor -------------// - uint8_t interface_count; // bNumInterfaces alias + // uint8_t interface_count; // bNumInterfaces alias //------------- device -------------// + struct TU_ATTR_PACKED + { + uint8_t connected : 1; + uint8_t addressed : 1; + uint8_t configured : 1; + uint8_t suspended : 1; + }; + volatile uint8_t state; // device state, value from enum tusbh_device_state_t - //------------- control pipe -------------// - struct { - volatile uint8_t pipe_status; -// uint8_t xferred_bytes; TODO not yet necessary - tusb_control_request_t request; - - osal_semaphore_def_t sem_def; - osal_semaphore_t sem_hdl; // used to synchronize with HCD when control xfer complete - - osal_mutex_def_t mutex_def; - osal_mutex_t mutex_hdl; // used to exclusively occupy control pipe - } control; - uint8_t itf2drv[16]; // map interface number to driver (0xff is invalid) - uint8_t ep2drv[8][2]; // map endpoint to driver ( 0xff is invalid ) + uint8_t ep2drv[CFG_TUH_EP_MAX][2]; // map endpoint to driver ( 0xff is invalid ) + + struct TU_ATTR_PACKED + { + volatile bool busy : 1; + volatile bool stalled : 1; + volatile bool claimed : 1; + + // TODO merge ep2drv here, 4-bit should be sufficient + }ep_status[CFG_TUH_EP_MAX][2]; + + // Mutex for claiming endpoint, only needed when using with preempted RTOS +#if CFG_TUSB_OS != OPT_OS_NONE + osal_mutex_def_t mutexdef; + osal_mutex_t mutex; +#endif + } usbh_device_t; extern usbh_device_t _usbh_devices[CFG_TUSB_HOST_DEVICE_MAX+1]; // including zero-address diff --git a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/osal/osal_none.h b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/osal/osal_none.h index 4a5843f8..1d170d2f 100644 --- a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/osal/osal_none.h +++ b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/osal/osal_none.h @@ -139,6 +139,8 @@ typedef osal_queue_def_t* osal_queue_t; .depth = _depth, \ .item_size = sizeof(_type), \ .overwritable = false, \ + .max_pointer_idx = (2*(_depth))-1, \ + .non_used_index_space = 0xFFFF-((2*(_depth))-1),\ }\ } diff --git a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/tusb_option.h b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/tusb_option.h index 39394028..2dd2b584 100644 --- a/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/tusb_option.h +++ b/tools/sdk/esp32s2/include/tinyusb/tinyusb/src/tusb_option.h @@ -28,7 +28,7 @@ #define _TUSB_OPTION_H_ #define TUSB_VERSION_MAJOR 0 -#define TUSB_VERSION_MINOR 5 +#define TUSB_VERSION_MINOR 7 #define TUSB_VERSION_REVISION 0 #define TUSB_VERSION_STRING TU_STRING(TUSB_VERSION_MAJOR) "." TU_STRING(TUSB_VERSION_MINOR) "." TU_STRING(TUSB_VERSION_REVISION) diff --git a/tools/sdk/esp32s2/include/xtensa/include/esp_debug_helpers.h b/tools/sdk/esp32s2/include/xtensa/include/esp_debug_helpers.h index d088ddee..5bdc028c 100644 --- a/tools/sdk/esp32s2/include/xtensa/include/esp_debug_helpers.h +++ b/tools/sdk/esp32s2/include/xtensa/include/esp_debug_helpers.h @@ -22,7 +22,7 @@ extern "C" { #include #include "esp_err.h" -#include "soc/soc.h" +#include "soc/soc.h" // [refactor-todo] IDF-2297 #define ESP_WATCHPOINT_LOAD 0x40000000 #define ESP_WATCHPOINT_STORE 0x80000000 diff --git a/tools/sdk/esp32s2/include/xtensa/include/xtensa-debug-module.h b/tools/sdk/esp32s2/include/xtensa/include/xtensa-debug-module.h index 6e44d782..8ac47a9c 100644 --- a/tools/sdk/esp32s2/include/xtensa/include/xtensa-debug-module.h +++ b/tools/sdk/esp32s2/include/xtensa/include/xtensa-debug-module.h @@ -1,6 +1,6 @@ #ifndef XTENSA_DEBUG_MODULE_H #define XTENSA_DEBUG_MODULE_H -#include "soc/cpu.h" + /* ERI registers / OCD offsets and field definitions */ diff --git a/tools/sdk/esp32s2/ld/esp32s2.peripherals.ld b/tools/sdk/esp32s2/ld/esp32s2.peripherals.ld index a35558a9..04e48f9b 100644 --- a/tools/sdk/esp32s2/ld/esp32s2.peripherals.ld +++ b/tools/sdk/esp32s2/ld/esp32s2.peripherals.ld @@ -26,5 +26,6 @@ PROVIDE ( SYSCON = 0x3f426000 ); PROVIDE ( I2C1 = 0x3f427000 ); PROVIDE ( TWAI = 0x3f42B000 ); PROVIDE ( APB_SARADC = 0x3f440000 ); +PROVIDE ( DEDIC_GPIO = 0x3f4cf000 ); PROVIDE ( USB0 = 0x60080000 ); PROVIDE ( USB_WRAP = 0x3f439000 ); diff --git a/tools/sdk/esp32s2/ld/esp32s2.project.ld b/tools/sdk/esp32s2/ld/esp32s2.project.ld index 539bc367..7f0e5ce9 100644 --- a/tools/sdk/esp32s2/ld/esp32s2.project.ld +++ b/tools/sdk/esp32s2/ld/esp32s2.project.ld @@ -242,6 +242,14 @@ SECTIONS *libesp_common.a:esp_err.*( .literal .literal.* .text .text.*) *libesp_event.a:default_event_loop.*(.literal.esp_event_isr_post .text.esp_event_isr_post) *libesp_event.a:esp_event.*(.literal.esp_event_isr_post_to .text.esp_event_isr_post_to) + *libesp_hw_support.a:cpu_util.*( .literal .literal.* .text .text.*) + *libesp_hw_support.a:rtc_clk.*( .literal .literal.* .text .text.*) + *libesp_hw_support.a:rtc_periph.*( .literal .literal.* .text .text.*) + *libesp_hw_support.a:rtc_pm.*( .literal .literal.* .text .text.*) + *libesp_hw_support.a:rtc_sleep.*( .literal .literal.* .text .text.*) + *libesp_hw_support.a:rtc_time.*( .literal .literal.* .text .text.*) + *libesp_hw_support.a:rtc_wdt.*( .literal .literal.* .text .text.*) + *libesp_hw_support.a:rtc_init.*(.literal.rtc_vddsdio_set_config .text.rtc_vddsdio_set_config) *libesp_ringbuf.a:( .literal .literal.* .text .text.*) *libesp_system.a:panic.*( .literal .literal.* .text .text.*) *libesp_system.a:panic_handler.*( .literal .literal.* .text .text.*) @@ -284,20 +292,13 @@ SECTIONS *libnewlib.a:abort.*( .literal .literal.* .text .text.*) *libnewlib.a:heap.*( .literal .literal.* .text .text.*) *librtc.a:( .literal .literal.* .text .text.*) - *libsoc.a:cpu_util.*( .literal .literal.* .text .text.*) *libsoc.a:lldesc.*( .literal .literal.* .text .text.*) - *libsoc.a:rtc_clk.*( .literal .literal.* .text .text.*) - *libsoc.a:rtc_periph.*( .literal .literal.* .text .text.*) - *libsoc.a:rtc_pm.*( .literal .literal.* .text .text.*) - *libsoc.a:rtc_sleep.*( .literal .literal.* .text .text.*) - *libsoc.a:rtc_time.*( .literal .literal.* .text .text.*) - *libsoc.a:rtc_wdt.*( .literal .literal.* .text .text.*) - *libsoc.a:rtc_init.*(.literal.rtc_vddsdio_set_config .text.rtc_vddsdio_set_config) *libspi_flash.a:memspi_host_driver.*( .literal .literal.* .text .text.*) *libspi_flash.a:spi_flash_chip_gd.*( .literal .literal.* .text .text.*) *libspi_flash.a:spi_flash_chip_generic.*( .literal .literal.* .text .text.*) *libspi_flash.a:spi_flash_chip_issi.*( .literal .literal.* .text .text.*) *libspi_flash.a:spi_flash_chip_mxic.*( .literal .literal.* .text .text.*) + *libspi_flash.a:spi_flash_chip_winbond.*( .literal .literal.* .text .text.*) *libspi_flash.a:spi_flash_rom_patch.*( .literal .literal.* .text .text.*) *libxt_hal.a:( .literal .literal.* .text .text.*) *libxtensa.a:eri.*( .literal .literal.* .text .text.*) @@ -363,6 +364,8 @@ SECTIONS *libesp_common.a:esp_err.*( .rodata .rodata.*) *libesp_event.a:default_event_loop.*(.rodata.esp_event_isr_post) *libesp_event.a:esp_event.*(.rodata.esp_event_isr_post_to) + *libesp_hw_support.a:rtc_clk.*( .rodata .rodata.*) + *libesp_hw_support.a:rtc_init.*(.rodata.rtc_vddsdio_set_config) *libesp_system.a:panic.*( .rodata .rodata.*) *libesp_system.a:panic_handler.*( .rodata .rodata.*) *libesp_system.a:reset_reason.*( .rodata .rodata.*) @@ -403,13 +406,12 @@ SECTIONS *libnewlib.a:heap.*( .rodata .rodata.*) *libphy.a:( .rodata .rodata.*) *libsoc.a:lldesc.*( .rodata .rodata.*) - *libsoc.a:rtc_clk.*( .rodata .rodata.*) - *libsoc.a:rtc_init.*(.rodata.rtc_vddsdio_set_config) *libspi_flash.a:memspi_host_driver.*( .rodata .rodata.*) *libspi_flash.a:spi_flash_chip_gd.*( .rodata .rodata.*) *libspi_flash.a:spi_flash_chip_generic.*( .rodata .rodata.*) *libspi_flash.a:spi_flash_chip_issi.*( .rodata .rodata.*) *libspi_flash.a:spi_flash_chip_mxic.*( .rodata .rodata.*) + *libspi_flash.a:spi_flash_chip_winbond.*( .rodata .rodata.*) *libspi_flash.a:spi_flash_rom_patch.*( .rodata .rodata.*) *libxtensa.a:stdatomic.*( .rodata .rodata.*) @@ -439,7 +441,7 @@ SECTIONS *(.ext_ram.bss*) *(EXCLUDE_FILE(*libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.*) .bss EXCLUDE_FILE(*libesp_system.a:startup.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libfreertos.a:queue.* *libfreertos.a:port.*) .bss.* EXCLUDE_FILE(*libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.*) COMMON) - *libesp_system.a:startup.*(.bss.ob$12122 .bss.g_startup_time) + *libesp_system.a:startup.*(.bss.ob$12209 .bss.g_startup_time) *libesp_system.a:startup.*(.bss.do_core_init) *libesp_system.a:startup.*(.bss.do_secondary_init) *libesp_system.a:startup.*(.bss.start_cpu0_default) @@ -477,16 +479,17 @@ 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:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libheap.a:heap_tlsf.* *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libsoc.a:rtc_clk.* *libsoc.a:lldesc.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *libphy.a) .rodata EXCLUDE_FILE(*libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *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.* *libheap.a:heap_tlsf.* *libesp_system.a:startup.* *libesp_system.a:system_api.* *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libsoc.a:rtc_init.* *libsoc.a:rtc_clk.* *libsoc.a:lldesc.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *libfreertos.a:queue.* *libfreertos.a:port.* *libphy.a) .rodata.*) + *(EXCLUDE_FILE(*libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libheap.a:heap_tlsf.* *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libsoc.a:lldesc.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *libesp_hw_support.a:rtc_clk.* *libphy.a) .rodata EXCLUDE_FILE(*libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *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.* *libheap.a:heap_tlsf.* *libesp_system.a:startup.* *libesp_system.a:system_api.* *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libsoc.a:lldesc.* *libxtensa.a:stdatomic.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *libfreertos.a:queue.* *libfreertos.a:port.* *libesp_hw_support.a:rtc_init.* *libesp_hw_support.a:rtc_clk.* *libphy.a) .rodata.*) *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__$10006 .rodata.__func__$9993 .rodata.__func__$9960 .rodata.__func__$9928 .rodata.__func__$9903 .rodata.__func__$9862 .rodata.__func__$9853) - *libesp_system.a:startup.*(.rodata.start_cpu0_default.str1.4 .rodata.__func__$12148) + *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__$10027 .rodata.__func__$10014 .rodata.__func__$9981 .rodata.__func__$9949 .rodata.__func__$9924 .rodata.__func__$9883 .rodata.__func__$9874) + *libesp_hw_support.a:rtc_init.*( .rodata.*) + *libesp_system.a:startup.*(.rodata.start_cpu0_default.str1.4 .rodata.__func__$12235) *libesp_system.a:system_api.*(.rodata.esp_get_idf_version.str1.4) *libesp_system.a:startup.*(.rodata.do_core_init) *libesp_system.a:startup.*(.rodata.do_secondary_init) *libesp_system.a:startup.*(.rodata.start_cpu0_default) - *libfreertos.a:port.*(.rodata.main_task.str1.4 .rodata.vPortAssertIfInISR.str1.4 .rodata.vApplicationStackOverflowHook.str1.4 .rodata.esp_startup_start_app.str1.4 .rodata.__func__$5492 .rodata.__func__$5497 .rodata.__FUNCTION__$5457) - *libfreertos.a:queue.*(.rodata.prvNotifyQueueSetContainer.str1.4 .rodata.__FUNCTION__$5499 .rodata.__FUNCTION__$5489 .rodata.__FUNCTION__$5452 .rodata.__FUNCTION__$5447 .rodata.__FUNCTION__$5441 .rodata.__FUNCTION__$5435 .rodata.__FUNCTION__$5429 .rodata.__FUNCTION__$5418 .rodata.__FUNCTION__$5407 .rodata.__FUNCTION__$5394 .rodata.__FUNCTION__$5383 .rodata.__FUNCTION__$5372 .rodata.__FUNCTION__$5363 .rodata.__FUNCTION__$5536 .rodata.__FUNCTION__$5351 .rodata.__FUNCTION__$5340 .rodata.__FUNCTION__$5334 .rodata.__FUNCTION__$5327 .rodata.__FUNCTION__$5320 .rodata.__FUNCTION__$5314 .rodata.__FUNCTION__$5281 .rodata.__FUNCTION__$5271 .rodata.__FUNCTION__$5262) + *libfreertos.a:port.*(.rodata.main_task.str1.4 .rodata.vPortAssertIfInISR.str1.4 .rodata.vApplicationStackOverflowHook.str1.4 .rodata.esp_startup_start_app.str1.4 .rodata.__func__$5507 .rodata.__func__$5512 .rodata.__FUNCTION__$5472) + *libfreertos.a:queue.*(.rodata.prvNotifyQueueSetContainer.str1.4 .rodata.__FUNCTION__$5514 .rodata.__FUNCTION__$5504 .rodata.__FUNCTION__$5467 .rodata.__FUNCTION__$5462 .rodata.__FUNCTION__$5456 .rodata.__FUNCTION__$5450 .rodata.__FUNCTION__$5444 .rodata.__FUNCTION__$5433 .rodata.__FUNCTION__$5422 .rodata.__FUNCTION__$5409 .rodata.__FUNCTION__$5398 .rodata.__FUNCTION__$5387 .rodata.__FUNCTION__$5378 .rodata.__FUNCTION__$5551 .rodata.__FUNCTION__$5366 .rodata.__FUNCTION__$5355 .rodata.__FUNCTION__$5349 .rodata.__FUNCTION__$5342 .rodata.__FUNCTION__$5335 .rodata.__FUNCTION__$5329 .rodata.__FUNCTION__$5296 .rodata.__FUNCTION__$5286 .rodata.__FUNCTION__$5277) *libfreertos.a:port.*(.rodata.esp_startup_start_app) *libfreertos.a:port.*(.rodata.esp_startup_start_app_other_cores) *libfreertos.a:port.*(.rodata.main_task) @@ -495,7 +498,6 @@ SECTIONS *libhal.a:uart_hal_iram.*( .rodata .rodata.*) *liblog.a:log.*(.rodata.esp_log_level_set.str1.4 .rodata.__func__$3542 .rodata.__func__$3513) *liblog.a:log_freertos.*(.rodata.esp_log_system_timestamp.str1.4) - *libsoc.a:rtc_init.*( .rodata.*) *(.irom1.text) /* catch stray ICACHE_RODATA_ATTR */ *(.gnu.linkonce.r.*) @@ -557,9 +559,10 @@ SECTIONS _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:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libgcc.a:lib2funcs.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libheap.a:heap_tlsf.* *libxt_hal.a *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libsoc.a:cpu_util.* *libsoc.a:rtc_sleep.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_clk.* *libsoc.a:lldesc.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_time.* *libsoc.a:rtc_periph.* *libxtensa.a:stdatomic.* *libxtensa.a:eri.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *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:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *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.* *libheap.a:heap_tlsf.* *libxt_hal.a *libesp_system.a:startup.* *libesp_system.a:system_api.* *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libsoc.a:rtc_init.* *libsoc.a:cpu_util.* *libsoc.a:rtc_sleep.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_clk.* *libsoc.a:lldesc.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_time.* *libsoc.a:rtc_periph.* *libxtensa.a:stdatomic.* *libxtensa.a:eri.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *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:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libgcc.a:lib2funcs.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libheap.a:heap_tlsf.* *libxt_hal.a *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libsoc.a:cpu_util.* *libsoc.a:rtc_sleep.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_clk.* *libsoc.a:lldesc.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_time.* *libsoc.a:rtc_periph.* *libxtensa.a:stdatomic.* *libxtensa.a:eri.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *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:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *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.* *libheap.a:heap_tlsf.* *libxt_hal.a *libesp_system.a:startup.* *libesp_system.a:system_api.* *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libsoc.a:rtc_init.* *libsoc.a:cpu_util.* *libsoc.a:rtc_sleep.* *libsoc.a:rtc_pm.* *libsoc.a:rtc_clk.* *libsoc.a:lldesc.* *libsoc.a:rtc_wdt.* *libsoc.a:rtc_time.* *libsoc.a:rtc_periph.* *libxtensa.a:stdatomic.* *libxtensa.a:eri.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *libfreertos.a) .text.* EXCLUDE_FILE(*libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.*) .wifi0iram EXCLUDE_FILE(*libesp_system.a:startup.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libfreertos.a:port.* *libfreertos.a:queue.*) .wifi0iram.* EXCLUDE_FILE(*libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.*) .wifirxiram EXCLUDE_FILE(*libesp_system.a:startup.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libfreertos.a:port.* *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:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libgcc.a:lib2funcs.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libheap.a:heap_tlsf.* *libxt_hal.a *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libsoc.a:lldesc.* *libxtensa.a:stdatomic.* *libxtensa.a:eri.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *libfreertos.a *libesp_hw_support.a:cpu_util.* *libesp_hw_support.a:rtc_sleep.* *libesp_hw_support.a:rtc_pm.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:rtc_wdt.* *libesp_hw_support.a:rtc_time.* *libesp_hw_support.a:rtc_periph.*) .literal EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *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.* *libheap.a:heap_tlsf.* *libxt_hal.a *libesp_system.a:startup.* *libesp_system.a:system_api.* *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libsoc.a:lldesc.* *libxtensa.a:stdatomic.* *libxtensa.a:eri.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *libfreertos.a *libesp_hw_support.a:rtc_init.* *libesp_hw_support.a:cpu_util.* *libesp_hw_support.a:rtc_sleep.* *libesp_hw_support.a:rtc_pm.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:rtc_wdt.* *libesp_hw_support.a:rtc_time.* *libesp_hw_support.a:rtc_periph.*) .literal.* EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *libgcc.a:lib2funcs.* *librtc.a *libheap.a:multi_heap.* *libheap.a:multi_heap_poisoning.* *libheap.a:heap_tlsf.* *libxt_hal.a *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libsoc.a:lldesc.* *libxtensa.a:stdatomic.* *libxtensa.a:eri.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *libfreertos.a *libesp_hw_support.a:cpu_util.* *libesp_hw_support.a:rtc_sleep.* *libesp_hw_support.a:rtc_pm.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:rtc_wdt.* *libesp_hw_support.a:rtc_time.* *libesp_hw_support.a:rtc_periph.*) .text EXCLUDE_FILE(*libesp_ringbuf.a *libgcov.a *libapp_trace.a:SEGGER_RTT_esp32.* *libapp_trace.a:SEGGER_SYSVIEW_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW_Config_FreeRTOS.* *libapp_trace.a:SEGGER_SYSVIEW.* *libapp_trace.a:app_trace.* *libapp_trace.a:app_trace_util.* *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.* *libheap.a:heap_tlsf.* *libxt_hal.a *libesp_system.a:startup.* *libesp_system.a:system_api.* *libesp_system.a:reset_reason.* *libesp_system.a:panic_handler.* *libesp_system.a:panic.* *libesp_common.a:esp_err.* *libspi_flash.a:spi_flash_chip_mxic.* *libspi_flash.a:spi_flash_chip_winbond.* *libspi_flash.a:spi_flash_chip_issi.* *libspi_flash.a:spi_flash_rom_patch.* *libspi_flash.a:spi_flash_chip_gd.* *libspi_flash.a:memspi_host_driver.* *libspi_flash.a:spi_flash_chip_generic.* *libsoc.a:lldesc.* *libxtensa.a:stdatomic.* *libxtensa.a:eri.* *libnewlib.a:heap.* *libnewlib.a:abort.* *libhal.a:spi_flash_hal_iram.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libhal.a:i2c_hal_iram.* *libhal.a:soc_hal.* *libhal.a:spi_flash_hal_gpspi.* *libhal.a:cpu_hal.* *libhal.a:ledc_hal_iram.* *libhal.a:spi_slave_hal_iram.* *libhal.a:systimer_hal.* *libhal.a:wdt_hal_iram.* *libhal.a:spi_hal_iram.* *libfreertos.a *libesp_hw_support.a:rtc_init.* *libesp_hw_support.a:cpu_util.* *libesp_hw_support.a:rtc_sleep.* *libesp_hw_support.a:rtc_pm.* *libesp_hw_support.a:rtc_clk.* *libesp_hw_support.a:rtc_wdt.* *libesp_hw_support.a:rtc_time.* *libesp_hw_support.a:rtc_periph.*) .text.* EXCLUDE_FILE(*libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.*) .wifi0iram EXCLUDE_FILE(*libesp_system.a:startup.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libfreertos.a:port.* *libfreertos.a:queue.*) .wifi0iram.* EXCLUDE_FILE(*libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.*) .wifirxiram EXCLUDE_FILE(*libesp_system.a:startup.* *libhal.a:uart_hal_iram.* *libhal.a:twai_hal_iram.* *libfreertos.a:port.* *libfreertos.a:queue.*) .wifirxiram.*) *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_add .literal.base_node_add_handler .literal.loop_node_add_handler .literal.handler_instances_remove .literal.handler_instances_remove_all$isra$1 .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_instances_add .text.base_node_add_handler .text.loop_node_add_handler .text.handler_instances_remove .text.handler_instances_remove_all$isra$1 .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) + *libesp_hw_support.a:rtc_init.*(.literal.rtc_init .literal.rtc_vddsdio_get_config .text.rtc_init .text.rtc_vddsdio_get_config) *libesp_system.a:startup.*( .literal.* .text.* .wifi0iram.* .wifirxiram.*) *libesp_system.a:system_api.*(.literal.esp_register_shutdown_handler .literal.esp_unregister_shutdown_handler .literal.esp_get_free_heap_size .literal.esp_get_free_internal_heap_size .literal.esp_get_minimum_free_heap_size .literal.esp_get_idf_version .text.esp_register_shutdown_handler .text.esp_unregister_shutdown_handler .text.esp_get_free_heap_size .text.esp_get_free_internal_heap_size .text.esp_get_minimum_free_heap_size .text.esp_get_idf_version) *libesp_system.a:startup.*(.literal.do_core_init .text.do_core_init .wifi0iram.do_core_init .wifirxiram.do_core_init) @@ -575,7 +578,6 @@ SECTIONS *libhal.a:uart_hal_iram.*( .literal .literal.* .text .text.* .wifi0iram .wifi0iram.* .wifirxiram .wifirxiram.*) *liblog.a:log.*(.literal.heap_bubble_down .literal.esp_log_set_vprintf .literal.esp_log_level_set .literal.esp_log_writev .text.heap_bubble_down .text.esp_log_set_vprintf .text.esp_log_level_set .text.esp_log_writev) *liblog.a:log_freertos.*(.literal.esp_log_system_timestamp .text.esp_log_system_timestamp) - *libsoc.a:rtc_init.*(.literal.rtc_init .literal.rtc_vddsdio_get_config .text.rtc_init .text.rtc_vddsdio_get_config) *(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) *(.irom0.text) /* catch stray ICACHE_RODATA_ATTR */ diff --git a/tools/sdk/esp32s2/ld/libesp32s2.a b/tools/sdk/esp32s2/ld/libesp32s2.a index b88885f0..4f989164 100644 Binary files a/tools/sdk/esp32s2/ld/libesp32s2.a and b/tools/sdk/esp32s2/ld/libesp32s2.a differ diff --git a/tools/sdk/esp32s2/lib/libapp_trace.a b/tools/sdk/esp32s2/lib/libapp_trace.a index b9633242..ff8a04f7 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 98aef46a..f1b275d6 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 189a0323..9a76cd54 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 8c8fde72..406f7c2a 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 62489214..91ecbbf1 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/libcmock.a b/tools/sdk/esp32s2/lib/libcmock.a index 6fca60b4..203f0d64 100644 Binary files a/tools/sdk/esp32s2/lib/libcmock.a and b/tools/sdk/esp32s2/lib/libcmock.a differ diff --git a/tools/sdk/esp32s2/lib/libcoap.a b/tools/sdk/esp32s2/lib/libcoap.a index 234c519c..b6f9eef6 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 a4376709..acb72b78 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 dd0bd214..46824348 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 12b7c99a..d4b84f07 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 fad4b3ba..962c1db8 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 a2f6ced1..753c8a61 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 6eed142c..d0933b2b 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-face.a b/tools/sdk/esp32s2/lib/libesp-face.a index 0a2f1ec0..1fbfd40c 100644 Binary files a/tools/sdk/esp32s2/lib/libesp-face.a and b/tools/sdk/esp32s2/lib/libesp-face.a differ diff --git a/tools/sdk/esp32s2/lib/libesp-tls.a b/tools/sdk/esp32s2/lib/libesp-tls.a index a7a5d1d2..46171044 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 b88885f0..4f989164 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_adc_cal.a b/tools/sdk/esp32s2/lib/libesp_adc_cal.a index 70309a53..10e13838 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_adc_cal.a and b/tools/sdk/esp32s2/lib/libesp_adc_cal.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_common.a b/tools/sdk/esp32s2/lib/libesp_common.a index 42c33f99..0536672a 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 31f7b2f1..4d2a1bef 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 da7ec4a9..f00bb640 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 92c0da19..c77098c2 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 b6ce73a1..c1feabbf 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 94a4def1..f3f5c419 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 0841e94f..a08f41b4 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 0b89fb95..79f10e0c 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 bf85f208..92be1aed 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_hw_support.a b/tools/sdk/esp32s2/lib/libesp_hw_support.a new file mode 100644 index 00000000..ff10c7c6 Binary files /dev/null and b/tools/sdk/esp32s2/lib/libesp_hw_support.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_ipc.a b/tools/sdk/esp32s2/lib/libesp_ipc.a index 7ddf69f0..7223719d 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_ipc.a and b/tools/sdk/esp32s2/lib/libesp_ipc.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_littlefs.a b/tools/sdk/esp32s2/lib/libesp_littlefs.a index ce8cbcc9..2c1d3764 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_littlefs.a and b/tools/sdk/esp32s2/lib/libesp_littlefs.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_local_ctrl.a b/tools/sdk/esp32s2/lib/libesp_local_ctrl.a index 62876918..cc02897b 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 e010d440..7d4e7980 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_pm.a b/tools/sdk/esp32s2/lib/libesp_pm.a index 050af477..4c55056a 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_pm.a and b/tools/sdk/esp32s2/lib/libesp_pm.a differ diff --git a/tools/sdk/esp32s2/lib/libesp_ringbuf.a b/tools/sdk/esp32s2/lib/libesp_ringbuf.a index 573fbb86..34794ffc 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_rom.a b/tools/sdk/esp32s2/lib/libesp_rom.a index fd1940b8..3a3c3a70 100644 Binary files a/tools/sdk/esp32s2/lib/libesp_rom.a and b/tools/sdk/esp32s2/lib/libesp_rom.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 0d03bc80..b0ef73cc 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 745f221a..234d5aef 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 f4a89006..2b5ec627 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 65af5efe..c8d73b57 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 8794c3ed..56b72a15 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 c1f2cbd4..c1999978 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 b4824681..2e8e176a 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 178bbace..9f5a0188 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 f9c85ca5..dabd0a90 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 55c03737..8b8d7e7d 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 eb55ba19..3fda137d 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 06cc7375..dd39badb 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/libhal.a b/tools/sdk/esp32s2/lib/libhal.a index db766d26..cd8a0b62 100644 Binary files a/tools/sdk/esp32s2/lib/libhal.a and b/tools/sdk/esp32s2/lib/libhal.a differ diff --git a/tools/sdk/esp32s2/lib/libheap.a b/tools/sdk/esp32s2/lib/libheap.a index 2434011a..540cc3c7 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 345960cd..c2dddc2a 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 8738af1f..47a964ca 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 1712e295..73ee6f4c 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 94f81dfd..f70d352f 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 91ad8983..042e1010 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 91960b36..eaf05d52 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 8cee862b..4a719d4d 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 a7edf73d..546846f0 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 b268f794..8caf44d5 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 1419ed95..d0c1a118 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 29a35038..82e8694a 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 2b4927df..2f9b6cf2 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 6aa188d6..fb26a198 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 2159fd11..06227be8 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 815a0e11..e261c724 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 3fda247c..523756b7 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 b631d690..f694738d 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 0c639b7a..22403b35 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 84b8c04d..a8e6fc03 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 08ca778f..e50bcfe8 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 1447ca03..a33d6d3b 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 5f6c8435..7c5ff356 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 483addca..a23ec17a 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 2c996ce5..3ce57ac4 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 deleted file mode 100644 index a122bda6..00000000 Binary files a/tools/sdk/esp32s2/lib/libsoc_esp32s2.a and /dev/null differ diff --git a/tools/sdk/esp32s2/lib/libspi_flash.a b/tools/sdk/esp32s2/lib/libspi_flash.a index 9116c105..cd6d3de9 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 f2210c9f..ab9f8e38 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 6dfc39c9..3f5e8a80 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 a5d2ccc7..9dfd8141 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 2425bc2e..e2b4201c 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 4e129e30..b39ded4b 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 5fc68066..417d0002 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 05df3409..508c8653 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 13814b20..6d679aca 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 47f4de01..02ea3e1b 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 f674727a..b55c7bf5 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 7c7faa85..3a2883a7 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 30c505db..6f18191e 100644 --- a/tools/sdk/esp32s2/sdkconfig +++ b/tools/sdk/esp32s2/sdkconfig @@ -491,7 +491,8 @@ CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE=y # High resolution timer (esp_timer) # # CONFIG_ESP_TIMER_PROFILING is not set -CONFIG_ESP_TIMER_RTC_USE=y +CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y +CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y CONFIG_ESP_TIMER_TASK_STACK_SIZE=4096 CONFIG_ESP_TIMER_IMPL_SYSTIMER=y # end of High resolution timer (esp_timer) @@ -723,8 +724,10 @@ CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 # # TCP # +CONFIG_LWIP_TCP_ISN_HOOK=y CONFIG_LWIP_MAX_ACTIVE_TCP=16 CONFIG_LWIP_MAX_LISTENING_TCP=16 +CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y CONFIG_LWIP_TCP_MAXRTX=12 CONFIG_LWIP_TCP_SYNMAXRTX=6 CONFIG_LWIP_TCP_MSS=1436 @@ -1007,6 +1010,7 @@ CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y # end of Auto-detect flash chips # end of SPI Flash driver