mirror of
https://github.com/esphome/esphome.git
synced 2026-05-29 06:27:24 +08:00
[esp32] Bump ESP-IDF to 5.5.3.1, revert GATTS workaround (#14147)
This commit is contained in:
+1
-1
@@ -1 +1 @@
|
|||||||
3258307fa645ba77307e502075c02c4d710e92c48250839db3526d36a9655444
|
5eb1e5852765114ad06533220d3160b6c23f5ccefc4de41828699de5dfff5ad6
|
||||||
|
|||||||
@@ -587,16 +587,22 @@ def _format_framework_arduino_version(ver: cv.Version) -> str:
|
|||||||
return f"{ARDUINO_FRAMEWORK_PKG}@https://github.com/espressif/arduino-esp32/releases/download/{ver}/{filename}"
|
return f"{ARDUINO_FRAMEWORK_PKG}@https://github.com/espressif/arduino-esp32/releases/download/{ver}/{filename}"
|
||||||
|
|
||||||
|
|
||||||
def _format_framework_espidf_version(ver: cv.Version, release: str) -> str:
|
def _format_framework_espidf_version(
|
||||||
|
ver: cv.Version, release: str | None = None
|
||||||
|
) -> str:
|
||||||
# format the given espidf (https://github.com/pioarduino/esp-idf/releases) version to
|
# format the given espidf (https://github.com/pioarduino/esp-idf/releases) version to
|
||||||
# a PIO platformio/framework-espidf value
|
# a PIO platformio/framework-espidf value
|
||||||
if ver == cv.Version(5, 4, 3) or ver >= cv.Version(5, 5, 1):
|
if ver == cv.Version(5, 4, 3) or ver >= cv.Version(5, 5, 1):
|
||||||
ext = "tar.xz"
|
ext = "tar.xz"
|
||||||
else:
|
else:
|
||||||
ext = "zip"
|
ext = "zip"
|
||||||
|
# Build version string with dot-separated extra (e.g., "5.5.3.1" not "5.5.3-1")
|
||||||
|
ver_str = f"{ver.major}.{ver.minor}.{ver.patch}"
|
||||||
|
if ver.extra:
|
||||||
|
ver_str += f".{ver.extra}"
|
||||||
if release:
|
if release:
|
||||||
return f"pioarduino/framework-espidf@https://github.com/pioarduino/esp-idf/releases/download/v{str(ver)}.{release}/esp-idf-v{str(ver)}.{ext}"
|
return f"pioarduino/framework-espidf@https://github.com/pioarduino/esp-idf/releases/download/v{ver_str}.{release}/esp-idf-v{ver_str}.{ext}"
|
||||||
return f"pioarduino/framework-espidf@https://github.com/pioarduino/esp-idf/releases/download/v{str(ver)}/esp-idf-v{str(ver)}.{ext}"
|
return f"pioarduino/framework-espidf@https://github.com/pioarduino/esp-idf/releases/download/v{ver_str}/esp-idf-v{ver_str}.{ext}"
|
||||||
|
|
||||||
|
|
||||||
def _is_framework_url(source: str) -> bool:
|
def _is_framework_url(source: str) -> bool:
|
||||||
@@ -643,7 +649,7 @@ ARDUINO_PLATFORM_VERSION_LOOKUP = {
|
|||||||
# These versions correspond to pioarduino/esp-idf releases
|
# These versions correspond to pioarduino/esp-idf releases
|
||||||
# See: https://github.com/pioarduino/esp-idf/releases
|
# See: https://github.com/pioarduino/esp-idf/releases
|
||||||
ARDUINO_IDF_VERSION_LOOKUP = {
|
ARDUINO_IDF_VERSION_LOOKUP = {
|
||||||
cv.Version(3, 3, 7): cv.Version(5, 5, 3),
|
cv.Version(3, 3, 7): cv.Version(5, 5, 3, "1"),
|
||||||
cv.Version(3, 3, 6): cv.Version(5, 5, 2),
|
cv.Version(3, 3, 6): cv.Version(5, 5, 2),
|
||||||
cv.Version(3, 3, 5): cv.Version(5, 5, 2),
|
cv.Version(3, 3, 5): cv.Version(5, 5, 2),
|
||||||
cv.Version(3, 3, 4): cv.Version(5, 5, 1),
|
cv.Version(3, 3, 4): cv.Version(5, 5, 1),
|
||||||
@@ -662,11 +668,12 @@ ARDUINO_IDF_VERSION_LOOKUP = {
|
|||||||
# The default/recommended esp-idf framework version
|
# The default/recommended esp-idf framework version
|
||||||
# - https://github.com/espressif/esp-idf/releases
|
# - https://github.com/espressif/esp-idf/releases
|
||||||
ESP_IDF_FRAMEWORK_VERSION_LOOKUP = {
|
ESP_IDF_FRAMEWORK_VERSION_LOOKUP = {
|
||||||
"recommended": cv.Version(5, 5, 3),
|
"recommended": cv.Version(5, 5, 3, "1"),
|
||||||
"latest": cv.Version(5, 5, 3),
|
"latest": cv.Version(5, 5, 3, "1"),
|
||||||
"dev": cv.Version(5, 5, 3),
|
"dev": cv.Version(5, 5, 3, "1"),
|
||||||
}
|
}
|
||||||
ESP_IDF_PLATFORM_VERSION_LOOKUP = {
|
ESP_IDF_PLATFORM_VERSION_LOOKUP = {
|
||||||
|
cv.Version(5, 5, 3, "1"): cv.Version(55, 3, 37),
|
||||||
cv.Version(5, 5, 3): cv.Version(55, 3, 37),
|
cv.Version(5, 5, 3): cv.Version(55, 3, 37),
|
||||||
cv.Version(5, 5, 2): cv.Version(55, 3, 37),
|
cv.Version(5, 5, 2): cv.Version(55, 3, 37),
|
||||||
cv.Version(5, 5, 1): cv.Version(55, 3, 31, "2"),
|
cv.Version(5, 5, 1): cv.Version(55, 3, 31, "2"),
|
||||||
@@ -730,7 +737,7 @@ def _check_versions(config):
|
|||||||
platform_lookup = ESP_IDF_PLATFORM_VERSION_LOOKUP.get(version)
|
platform_lookup = ESP_IDF_PLATFORM_VERSION_LOOKUP.get(version)
|
||||||
value[CONF_SOURCE] = value.get(
|
value[CONF_SOURCE] = value.get(
|
||||||
CONF_SOURCE,
|
CONF_SOURCE,
|
||||||
_format_framework_espidf_version(version, value.get(CONF_RELEASE, None)),
|
_format_framework_espidf_version(version, value.get(CONF_RELEASE)),
|
||||||
)
|
)
|
||||||
if _is_framework_url(value[CONF_SOURCE]):
|
if _is_framework_url(value[CONF_SOURCE]):
|
||||||
value[CONF_SOURCE] = f"pioarduino/framework-espidf@{value[CONF_SOURCE]}"
|
value[CONF_SOURCE] = f"pioarduino/framework-espidf@{value[CONF_SOURCE]}"
|
||||||
@@ -1428,7 +1435,7 @@ async def to_code(config):
|
|||||||
if (idf_ver := ARDUINO_IDF_VERSION_LOOKUP.get(framework_ver)) is not None:
|
if (idf_ver := ARDUINO_IDF_VERSION_LOOKUP.get(framework_ver)) is not None:
|
||||||
cg.add_platformio_option(
|
cg.add_platformio_option(
|
||||||
"platform_packages",
|
"platform_packages",
|
||||||
[_format_framework_espidf_version(idf_ver, None)],
|
[_format_framework_espidf_version(idf_ver)],
|
||||||
)
|
)
|
||||||
# Use stub package to skip downloading precompiled libs
|
# Use stub package to skip downloading precompiled libs
|
||||||
stubs_dir = CORE.relative_build_path("arduino_libs_stub")
|
stubs_dir = CORE.relative_build_path("arduino_libs_stub")
|
||||||
|
|||||||
@@ -418,16 +418,13 @@ def final_validation(config):
|
|||||||
"esp32_ble_tracker" in full_config or "esp32_ble_client" in full_config
|
"esp32_ble_tracker" in full_config or "esp32_ble_client" in full_config
|
||||||
)
|
)
|
||||||
|
|
||||||
# Always enable GATTS: ESP-IDF 5.5.2.260206 has a bug in gatt_main.c where a
|
# Check if BLE Server is needed
|
||||||
# GATT_TRACE_DEBUG references 'msg_len' outside the GATTS_INCLUDED/GATTC_INCLUDED
|
has_ble_server = "esp32_ble_server" in full_config
|
||||||
# guard, causing a compile error when both are disabled.
|
|
||||||
# Additionally, when GATT Client is enabled, GATT Server must also be enabled
|
# ESP-IDF BLE stack requires GATT Server to be enabled when GATT Client is enabled
|
||||||
# as an internal dependency in the Bluedroid stack.
|
# This is an internal dependency in the Bluedroid stack
|
||||||
# See: https://github.com/espressif/esp-idf/issues/17724
|
# See: https://github.com/espressif/esp-idf/issues/17724
|
||||||
# TODO: Revert to conditional once the gatt_main.c bug is fixed upstream:
|
add_idf_sdkconfig_option("CONFIG_BT_GATTS_ENABLE", has_ble_server or has_ble_client)
|
||||||
# has_ble_server = "esp32_ble_server" in full_config
|
|
||||||
# add_idf_sdkconfig_option("CONFIG_BT_GATTS_ENABLE", has_ble_server or has_ble_client)
|
|
||||||
add_idf_sdkconfig_option("CONFIG_BT_GATTS_ENABLE", True)
|
|
||||||
add_idf_sdkconfig_option("CONFIG_BT_GATTC_ENABLE", has_ble_client)
|
add_idf_sdkconfig_option("CONFIG_BT_GATTC_ENABLE", has_ble_client)
|
||||||
|
|
||||||
# Handle max_connections: check for deprecated location in esp32_ble_tracker
|
# Handle max_connections: check for deprecated location in esp32_ble_tracker
|
||||||
|
|||||||
+2
-2
@@ -136,7 +136,7 @@ extends = common:arduino
|
|||||||
platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.37/platform-espressif32.zip
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.37/platform-espressif32.zip
|
||||||
platform_packages =
|
platform_packages =
|
||||||
pioarduino/framework-arduinoespressif32@https://github.com/espressif/arduino-esp32/releases/download/3.3.7/esp32-core-3.3.7.tar.xz
|
pioarduino/framework-arduinoespressif32@https://github.com/espressif/arduino-esp32/releases/download/3.3.7/esp32-core-3.3.7.tar.xz
|
||||||
pioarduino/framework-espidf@https://github.com/pioarduino/esp-idf/releases/download/v5.5.3/esp-idf-v5.5.3.tar.xz
|
pioarduino/framework-espidf@https://github.com/pioarduino/esp-idf/releases/download/v5.5.3.1/esp-idf-v5.5.3.1.tar.xz
|
||||||
|
|
||||||
framework = arduino, espidf ; Arduino as an ESP-IDF component
|
framework = arduino, espidf ; Arduino as an ESP-IDF component
|
||||||
lib_deps =
|
lib_deps =
|
||||||
@@ -171,7 +171,7 @@ extra_scripts = post:esphome/components/esp32/post_build.py.script
|
|||||||
extends = common:idf
|
extends = common:idf
|
||||||
platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.37/platform-espressif32.zip
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.37/platform-espressif32.zip
|
||||||
platform_packages =
|
platform_packages =
|
||||||
pioarduino/framework-espidf@https://github.com/pioarduino/esp-idf/releases/download/v5.5.3/esp-idf-v5.5.3.tar.xz
|
pioarduino/framework-espidf@https://github.com/pioarduino/esp-idf/releases/download/v5.5.3.1/esp-idf-v5.5.3.1.tar.xz
|
||||||
|
|
||||||
framework = espidf
|
framework = espidf
|
||||||
lib_deps =
|
lib_deps =
|
||||||
|
|||||||
Reference in New Issue
Block a user