From da133384b56be588cece7266799fc3e8c22417f8 Mon Sep 17 00:00:00 2001 From: Valerii Koval Date: Wed, 3 May 2023 17:15:55 +0300 Subject: [PATCH 1/7] Process internal Arduino libraries in mixed Arduino/IDF projects Resolves #1080 --- builder/frameworks/espidf.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/builder/frameworks/espidf.py b/builder/frameworks/espidf.py index 458f5f9..c55d138 100644 --- a/builder/frameworks/espidf.py +++ b/builder/frameworks/espidf.py @@ -84,7 +84,7 @@ BUILD_DIR = env.subst("$BUILD_DIR") PROJECT_DIR = env.subst("$PROJECT_DIR") PROJECT_SRC_DIR = env.subst("$PROJECT_SRC_DIR") CMAKE_API_REPLY_PATH = os.path.join(".cmake", "api", "v1", "reply") -SDKCONFIG_PATH = os.path.expandvars(board.get( +SDKCONFIG_PATH = os.path.expandvars(board.get( "build.esp-idf.sdkconfig_path", os.path.join(PROJECT_DIR, "sdkconfig.%s" % env.subst("$PIOENV")), )) @@ -1276,6 +1276,10 @@ if "arduino" in env.subst("$PIOFRAMEWORK"): "the `variant` field! The default `esp32` variant will be used." ) extra_components.append(ARDUINO_FRAMEWORK_DIR) + # Add path to internal Arduino libraries so that the LDF will be able to find them + env.Append( + LIBSOURCE_DIRS=[os.path.join(ARDUINO_FRAMEWORK_DIR, "libraries")] + ) print("Reading CMake configuration...") project_codemodel = get_cmake_code_model( From d9939d93c358a565466d78e411707c885356250c Mon Sep 17 00:00:00 2001 From: Valerii Koval Date: Mon, 8 May 2023 12:34:12 +0300 Subject: [PATCH 2/7] Add support for new versions of upstream toolchain packages Resolves #1092, resolves #1093 --- platform.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/platform.py b/platform.py index ec1154b..516fed4 100644 --- a/platform.py +++ b/platform.py @@ -288,11 +288,24 @@ class Espressif32Platform(PlatformBase): def extract_toolchain_versions(tool_deps): def _parse_version(original_version): assert original_version - match = re.match(r"^gcc(\d+)_(\d+)_(\d+)\-esp\-(.+)$", original_version) - if not match: - raise ValueError("Bad package version `%s`" % original_version) - assert len(match.groups()) == 4 - return "%s.%s.%s+%s" % (match.groups()) + version_patterns = ( + r"^gcc(?P\d+)_(?P\d+)_(?P\d+)-esp-(?P.+)$", + r"^esp-(?P.+)-(?P\d+)\.(?P\d+)\.?(?P\d+)$", + r"^esp-(?P\d+)\.(?P\d+)\.(?P\d+)(_(?P.+))?$", + ) + for pattern in version_patterns: + match = re.search(pattern, original_version) + if match: + result = "%s.%s.%s" % ( + match.group("MAJOR"), + match.group("MINOR"), + match.group("PATCH"), + ) + if match.group("EXTRA"): + result = result + "+%s" % match.group("EXTRA") + return result + + raise ValueError("Bad package version `%s`" % original_version) if not tool_deps: raise ValueError( From 2988da9268e728c4239903f9720a5cd1039c6b56 Mon Sep 17 00:00:00 2001 From: Valerii Koval Date: Mon, 8 May 2023 13:06:18 +0300 Subject: [PATCH 3/7] Better handling of macros exported from IDF Issue #1080 --- builder/frameworks/espidf.py | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/builder/frameworks/espidf.py b/builder/frameworks/espidf.py index c55d138..2f48c99 100644 --- a/builder/frameworks/espidf.py +++ b/builder/frameworks/espidf.py @@ -302,16 +302,25 @@ def get_app_includes(app_config): def extract_defines(compile_group): - result = [] - result.extend( - [ - d.get("define").replace('"', '\\"').strip() - for d in compile_group.get("defines", []) - ] - ) + def _normalize_define(define_string): + define_string = define_string.strip() + if "=" in define_string: + define, value = define_string.split("=", maxsplit=1) + if '"' in value and not value.startswith("\\"): + # Escape only raw values + value = value.replace('"', '\\"') + return (define, value) + return define_string + + result = [ + _normalize_define(d.get("define", "")) + for d in compile_group.get("defines", []) if d + ] + for f in compile_group.get("compileCommandFragments", []): if f.get("fragment", "").startswith("-D"): - result.append(f["fragment"][2:]) + result.append(_normalize_define(f["fragment"][2:])) + return result From 35c40ed54872243894ad5c30172df5c98a95acca Mon Sep 17 00:00:00 2001 From: Valerii Koval Date: Tue, 9 May 2023 12:52:18 +0300 Subject: [PATCH 4/7] Update Arduino core to v2.0.9 --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 38a451d..9e5a70e 100644 --- a/platform.json +++ b/platform.json @@ -67,7 +67,7 @@ "type": "framework", "optional": true, "owner": "platformio", - "version": "~3.20008.0" + "version": "~3.20009.0" }, "framework-arduino-mbcwb": { "type": "framework", From efc0303b2a1c4444d9ba25de398e079aa78b39a0 Mon Sep 17 00:00:00 2001 From: Valerii Koval Date: Thu, 11 May 2023 20:06:37 +0300 Subject: [PATCH 5/7] Update ESP-IDF to v5.0.2 --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index 9e5a70e..e77400e 100644 --- a/platform.json +++ b/platform.json @@ -79,7 +79,7 @@ "type": "framework", "optional": true, "owner": "platformio", - "version": "~3.50001.0", + "version": "~3.50002.0", "optionalVersions": ["~3.40404.0"] }, "tool-esptoolpy": { From 5fdb90c71584c8d93065a6f1f2bf4305453114f5 Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Tue, 16 May 2023 11:52:20 +0200 Subject: [PATCH 6/7] Fixed flash memory size for ESP32S3 CAM LCD board (#1096) S3 Eye has 8MB OPI Flash Resolves #1095 --- boards/esp32s3camlcd.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/boards/esp32s3camlcd.json b/boards/esp32s3camlcd.json index 34810b5..5a807a8 100644 --- a/boards/esp32s3camlcd.json +++ b/boards/esp32s3camlcd.json @@ -38,9 +38,9 @@ ], "name": "ESP32S3 CAM LCD", "upload": { - "flash_size": "4MB", + "flash_size": "8MB", "maximum_ram_size": 327680, - "maximum_size": 16777216, + "maximum_size": 8388608, "require_upload_port": true, "speed": 921600 }, From d4e2b6c04d6bea74fe2b23b4c270651935a12271 Mon Sep 17 00:00:00 2001 From: Valerii Koval Date: Fri, 19 May 2023 13:27:05 +0300 Subject: [PATCH 7/7] Bump version to 6.3.0 --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index e77400e..506097a 100644 --- a/platform.json +++ b/platform.json @@ -18,7 +18,7 @@ "type": "git", "url": "https://github.com/platformio/platform-espressif32.git" }, - "version": "6.2.0", + "version": "6.3.0", "frameworks": { "arduino": { "package": "framework-arduinoespressif32",