From a9ad5ac388d64ef530350f4dd18aa62a1f2c29d9 Mon Sep 17 00:00:00 2001 From: Valerii Koval Date: Tue, 17 Jan 2023 21:04:00 +0200 Subject: [PATCH 1/6] Fix partition file names for Feather S3 and QT Py S3 without PSRAM Resolve #1004 --- boards/adafruit_feather_esp32s3_nopsram.json | 2 +- boards/adafruit_qtpy_esp32s3_nopsram.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/boards/adafruit_feather_esp32s3_nopsram.json b/boards/adafruit_feather_esp32s3_nopsram.json index f20219a0f..79ee24d1d 100644 --- a/boards/adafruit_feather_esp32s3_nopsram.json +++ b/boards/adafruit_feather_esp32s3_nopsram.json @@ -2,7 +2,7 @@ "build": { "arduino":{ "ldscript": "esp32s3_out.ld", - "partitions": "partitions-4MB-tinyuf2.csv", + "partitions": "partitions-8MB-tinyuf2.csv", "memory_type": "qio_qspi" }, "core": "esp32", diff --git a/boards/adafruit_qtpy_esp32s3_nopsram.json b/boards/adafruit_qtpy_esp32s3_nopsram.json index 57fb0098a..15589da92 100644 --- a/boards/adafruit_qtpy_esp32s3_nopsram.json +++ b/boards/adafruit_qtpy_esp32s3_nopsram.json @@ -1,7 +1,8 @@ { "build": { "arduino": { - "ldscript": "esp32s3_out.ld" + "ldscript": "esp32s3_out.ld", + "partitions": "partitions-8MB-tinyuf2.csv" }, "core": "esp32", "extra_flags": [ From f3d3c295fc97afbcbcc0b2305b4b4ebcae2df18d Mon Sep 17 00:00:00 2001 From: Valerii Koval Date: Mon, 23 Jan 2023 12:28:43 +0200 Subject: [PATCH 2/6] Update platform description --- README.md | 2 +- platform.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f8c9a4e11..b376050a9 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Build Status](https://github.com/platformio/platform-espressif32/workflows/Examples/badge.svg)](https://github.com/platformio/platform-espressif32/actions) -Espressif Systems is a privately held fabless semiconductor company. They provide wireless communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications. +ESP32 is a series of low-cost, low-power system on a chip microcontrollers with integrated Wi-Fi and Bluetooth. ESP32 integrates an antenna switch, RF balun, power amplifier, low-noise receive amplifier, filters, and power management modules. * [Home](https://registry.platformio.org/platforms/platformio/espressif32) (home page in the PlatformIO Registry) * [Documentation](https://docs.platformio.org/page/platforms/espressif32.html) (advanced usage, packages, boards, frameworks, etc.) diff --git a/platform.json b/platform.json index 9d04c6bf0..fe4f3c237 100644 --- a/platform.json +++ b/platform.json @@ -1,7 +1,7 @@ { "name": "espressif32", "title": "Espressif 32", - "description": "Espressif Systems is a privately held fabless semiconductor company. They provide wireless communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications.", + "description": "ESP32 is a series of low-cost, low-power system on a chip microcontrollers with integrated Wi-Fi and Bluetooth. ESP32 integrates an antenna switch, RF balun, power amplifier, low-noise receive amplifier, filters, and power management modules.", "homepage": "https://espressif.com/", "license": "Apache-2.0", "keywords": [ From 8507dd8e7fc6d3fb56ec5372fc24a3044226a058 Mon Sep 17 00:00:00 2001 From: Valerii Koval Date: Tue, 31 Jan 2023 21:51:01 +0200 Subject: [PATCH 3/6] Better handling of ESP IDF Python dependencies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #1006, #1007, resolves #1013 Now IDF Python deps are installed in a pre-сreated virtual environment. The name of the IDF venv contains the IDF version to avoid possible conflicts and unnecessary reinstallation of Python dependencies in cases when Arduino as an IDF component requires a different version of the IDF package and hence a different set of Python deps or their versions --- builder/frameworks/espidf.py | 100 +++++++++++++++++++++++++---------- 1 file changed, 73 insertions(+), 27 deletions(-) diff --git a/builder/frameworks/espidf.py b/builder/frameworks/espidf.py index e48ec175d..fed78655f 100644 --- a/builder/frameworks/espidf.py +++ b/builder/frameworks/espidf.py @@ -37,11 +37,17 @@ ) from platformio import fs +from platformio.compat import IS_WINDOWS from platformio.proc import exec_command -from platformio.util import get_systype from platformio.builder.tools.piolib import ProjectAsLibBuilder from platformio.package.version import get_original_version, pepver_to_semver +# Added to avoid conflicts between installed Python packages from +# the IDF virtual environment and PlatformIO Core +# Note: This workaround can be safely deleted when PlatformIO 6.1.7 is released +if os.environ.get("PYTHONPATH"): + del os.environ["PYTHONPATH"] + env = DefaultEnvironment() env.SConscript("_embed_files.py", exports="env") @@ -51,8 +57,7 @@ idf_variant = mcu.lower() # Required until Arduino switches to v5 -IDF5 = platform.get_package_version( - "framework-espidf").split(".")[1].startswith("5") +IDF5 = platform.get_package_version("framework-espidf").split(".")[1].startswith("5") FRAMEWORK_DIR = platform.get_package_dir("framework-espidf") TOOLCHAIN_DIR = platform.get_package_dir( "toolchain-%s" % ("riscv32-esp" if mcu == "esp32c3" else ("xtensa-%s" % mcu)) @@ -224,7 +229,7 @@ def populate_idf_env_vars(idf_env): os.path.join(TOOLCHAIN_DIR, "bin"), platform.get_package_dir("tool-ninja"), os.path.join(platform.get_package_dir("tool-cmake"), "bin"), - os.path.dirname(env.subst("$PYTHONEXE")), + os.path.dirname(get_python_exe()), ] if mcu != "esp32c3": @@ -232,7 +237,7 @@ def populate_idf_env_vars(idf_env): os.path.join(platform.get_package_dir("toolchain-esp32ulp"), "bin"), ) - if "windows" in get_systype(): + if IS_WINDOWS: additional_packages.append(platform.get_package_dir("tool-mconf")) idf_env["PATH"] = os.pathsep.join(additional_packages + [idf_env["PATH"]]) @@ -559,7 +564,7 @@ def generate_project_ld_script(sdk_config, ignore_targets=None): } cmd = ( - '"$PYTHONEXE" "{script}" --input $SOURCE ' + '"$ESPIDF_PYTHONEXE" "{script}" --input $SOURCE ' '--config "{config}" --fragments {fragments} --output $TARGET ' '--kconfig "{kconfig}" --env-file "{env_file}" ' '--libraries-file "{libraries_list}" ' @@ -763,7 +768,7 @@ def build_bootloader(sdk_config): [ "-DIDF_TARGET=" + idf_variant, "-DPYTHON_DEPS_CHECKED=1", - "-DPYTHON=" + env.subst("$PYTHONEXE"), + "-DPYTHON=" + get_python_exe(), "-DIDF_PATH=" + FRAMEWORK_DIR, "-DSDKCONFIG=" + SDKCONFIG_PATH, "-DLEGACY_INCLUDE_COMMON_HEADERS=", @@ -918,7 +923,7 @@ def generate_empty_partition_image(binary_path, image_size): binary_path, None, env.VerboseAction( - '"$PYTHONEXE" "%s" %s $TARGET' + '"$ESPIDF_PYTHONEXE" "%s" %s $TARGET' % ( os.path.join( FRAMEWORK_DIR, @@ -943,7 +948,7 @@ def get_partition_info(pt_path, pt_offset, pt_params): env.Exit(1) cmd = [ - env.subst("$PYTHONEXE"), + get_python_exe(), os.path.join(FRAMEWORK_DIR, "components", "partition_table", "parttool.py"), "-q", "--partition-table-offset", @@ -1000,7 +1005,7 @@ def generate_mbedtls_bundle(sdk_config): FRAMEWORK_DIR, "components", "mbedtls", "esp_crt_bundle" ) - cmd = [env.subst("$PYTHONEXE"), os.path.join(default_crt_dir, "gen_crt_bundle.py")] + cmd = [get_python_exe(), os.path.join(default_crt_dir, "gen_crt_bundle.py")] crt_args = ["--input"] if sdk_config.get("MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL", False): @@ -1051,12 +1056,12 @@ def generate_mbedtls_bundle(sdk_config): def install_python_deps(): - def _get_installed_pip_packages(): + def _get_installed_pip_packages(python_exe_path): result = {} packages = {} pip_output = subprocess.check_output( [ - env.subst("$PYTHONEXE"), + python_exe_path, "-m", "pip", "list", @@ -1087,7 +1092,8 @@ def _get_installed_pip_packages(): # Remove specific versions for IDF5 as not required deps = {dep: "" for dep in deps} - installed_packages = _get_installed_pip_packages() + python_exe_path = get_python_exe() + installed_packages = _get_installed_pip_packages(python_exe_path) packages_to_install = [] for package, spec in deps.items(): if package not in installed_packages: @@ -1101,22 +1107,17 @@ def _get_installed_pip_packages(): env.Execute( env.VerboseAction( ( - '"$PYTHONEXE" -m pip install -U ' - + " ".join( - [ - '"%s%s"' % (p, deps[p]) - for p in packages_to_install - ] - ) + '"%s" -m pip install -U ' % python_exe_path + + " ".join(['"%s%s"' % (p, deps[p]) for p in packages_to_install]) ), "Installing ESP-IDF's Python dependencies", ) ) - if "windows" in get_systype() and "windows-curses" not in installed_packages: + if IS_WINDOWS and "windows-curses" not in installed_packages: env.Execute( env.VerboseAction( - "$PYTHONEXE -m pip install windows-curses", + '"%s" -m pip install windows-curses' % python_exe_path, "Installing windows-curses package", ) ) @@ -1128,15 +1129,59 @@ def _get_installed_pip_packages(): }: env.Execute( env.VerboseAction( - '$PYTHONEXE -m pip install "file://%s/tools/kconfig_new/esp-windows-curses"' - % FRAMEWORK_DIR, + '"%s" -m pip install "file://%s/tools/kconfig_new/esp-windows-curses"' + % (python_exe_path, FRAMEWORK_DIR), "Installing windows-curses package", ) ) +def get_python_exe(): + def _create_venv(venv_dir): + pip_path = os.path.join( + venv_dir, + "Scripts" if IS_WINDOWS else "bin", + "pip" + (".exe" if IS_WINDOWS else ""), + ) + if not os.path.isfile(pip_path): + # Use the built-in PlatformIO Python to create a standalone IDF virtual env + env.Execute( + env.VerboseAction( + '"$PYTHONEXE" -m venv --clear "%s"' % venv_dir, + "Creating a virtual environment for IDF Python dependencies", + ) + ) + + assert os.path.isfile( + pip_path + ), "Error: Failed to create a proper virtual environment. Missing the pip binary!" + + # The name of the IDF venv contains the IDF version to avoid possible conflicts and + # unnecessary reinstallation of Python dependencies in cases when Arduino + # as an IDF component requires a different version of the IDF package and + # hence a different set of Python deps or their versions + idf_version = get_original_version(platform.get_package_version("framework-espidf")) + venv_dir = os.path.join( + env.subst("$PROJECT_CORE_DIR"), "penv", ".espidf-" + idf_version) + + if not os.path.isdir(venv_dir): + _create_venv(venv_dir) + + python_exe_path = os.path.join( + venv_dir, + "Scripts" if IS_WINDOWS else "bin", + "python" + (".exe" if IS_WINDOWS else ""), + ) + + assert os.path.isfile(python_exe_path), ( + "Error: Missing Python executable file `%s`" % python_exe_path + ) + + return python_exe_path + + # -# ESP-IDF requires Python packages with specific versions +# ESP-IDF requires Python packages with specific versions in a virtual environment # install_python_deps() @@ -1235,7 +1280,7 @@ def _get_installed_pip_packages(): "-DIDF_TARGET=" + idf_variant, "-DPYTHON_DEPS_CHECKED=1", "-DEXTRA_COMPONENT_DIRS:PATH=" + ";".join(extra_components), - "-DPYTHON=" + env.subst("$PYTHONEXE"), + "-DPYTHON=" + get_python_exe(), "-DSDKCONFIG=" + SDKCONFIG_PATH, ] + click.parser.split_arg_string(board.get("build.cmake_extra_args", "")), @@ -1373,7 +1418,7 @@ def _skip_prj_source_files(node): os.path.join("$BUILD_DIR", "partitions.bin"), "$PARTITIONS_TABLE_CSV", env.VerboseAction( - '"$PYTHONEXE" "%s" -q --offset "%s" --flash-size "%s" $SOURCE $TARGET' + '"$ESPIDF_PYTHONEXE" "%s" -q --offset "%s" --flash-size "%s" $SOURCE $TARGET' % ( os.path.join( FRAMEWORK_DIR, "components", "partition_table", "gen_esp32part.py" @@ -1396,6 +1441,7 @@ def _skip_prj_source_files(node): env.Prepend( CPPPATH=app_includes["plain_includes"], CPPDEFINES=project_defines, + ESPIDF_PYTHONEXE=get_python_exe(), LINKFLAGS=extra_flags, LIBS=libs, FLASH_EXTRA_IMAGES=[ From c49915ae060f9ce03084c530e6c423bc99214672 Mon Sep 17 00:00:00 2001 From: Valerii Koval Date: Thu, 2 Feb 2023 12:27:55 +0200 Subject: [PATCH 4/6] Delete deprecated example --- examples/espidf-blink/.gitignore | 1 - examples/espidf-blink/.travis.yml | 67 ------------------------ examples/espidf-blink/CMakeLists.txt | 3 -- examples/espidf-blink/README.md | 27 ---------- examples/espidf-blink/include/README | 39 -------------- examples/espidf-blink/lib/README | 46 ---------------- examples/espidf-blink/platformio.ini | 18 ------- examples/espidf-blink/src/CMakeLists.txt | 2 - examples/espidf-blink/src/blink.c | 41 --------------- examples/espidf-blink/test/README | 11 ---- 10 files changed, 255 deletions(-) delete mode 100644 examples/espidf-blink/.gitignore delete mode 100644 examples/espidf-blink/.travis.yml delete mode 100644 examples/espidf-blink/CMakeLists.txt delete mode 100644 examples/espidf-blink/README.md delete mode 100644 examples/espidf-blink/include/README delete mode 100644 examples/espidf-blink/lib/README delete mode 100644 examples/espidf-blink/platformio.ini delete mode 100644 examples/espidf-blink/src/CMakeLists.txt delete mode 100644 examples/espidf-blink/src/blink.c delete mode 100644 examples/espidf-blink/test/README diff --git a/examples/espidf-blink/.gitignore b/examples/espidf-blink/.gitignore deleted file mode 100644 index 03f4a3c19..000000000 --- a/examples/espidf-blink/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.pio diff --git a/examples/espidf-blink/.travis.yml b/examples/espidf-blink/.travis.yml deleted file mode 100644 index 7c486f183..000000000 --- a/examples/espidf-blink/.travis.yml +++ /dev/null @@ -1,67 +0,0 @@ -# Continuous Integration (CI) is the practice, in software -# engineering, of merging all developer working copies with a shared mainline -# several times a day < https://docs.platformio.org/page/ci/index.html > -# -# Documentation: -# -# * Travis CI Embedded Builds with PlatformIO -# < https://docs.travis-ci.com/user/integration/platformio/ > -# -# * PlatformIO integration with Travis CI -# < https://docs.platformio.org/page/ci/travis.html > -# -# * User Guide for `platformio ci` command -# < https://docs.platformio.org/page/userguide/cmd_ci.html > -# -# -# Please choose one of the following templates (proposed below) and uncomment -# it (remove "# " before each line) or use own configuration according to the -# Travis CI documentation (see above). -# - - -# -# Template #1: General project. Test it using existing `platformio.ini`. -# - -# language: python -# python: -# - "2.7" -# -# sudo: false -# cache: -# directories: -# - "~/.platformio" -# -# install: -# - pip install -U platformio -# - platformio update -# -# script: -# - platformio run - - -# -# Template #2: The project is intended to be used as a library with examples. -# - -# language: python -# python: -# - "2.7" -# -# sudo: false -# cache: -# directories: -# - "~/.platformio" -# -# env: -# - PLATFORMIO_CI_SRC=path/to/test/file.c -# - PLATFORMIO_CI_SRC=examples/file.ino -# - PLATFORMIO_CI_SRC=path/to/test/directory -# -# install: -# - pip install -U platformio -# - platformio update -# -# script: -# - platformio ci --lib="." --board=ID_1 --board=ID_2 --board=ID_N diff --git a/examples/espidf-blink/CMakeLists.txt b/examples/espidf-blink/CMakeLists.txt deleted file mode 100644 index a347b9736..000000000 --- a/examples/espidf-blink/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -cmake_minimum_required(VERSION 3.16.0) -include($ENV{IDF_PATH}/tools/cmake/project.cmake) -project(espidf-blink) diff --git a/examples/espidf-blink/README.md b/examples/espidf-blink/README.md deleted file mode 100644 index 1fbbba65a..000000000 --- a/examples/espidf-blink/README.md +++ /dev/null @@ -1,27 +0,0 @@ -How to build PlatformIO based project -===================================== - -1. [Install PlatformIO Core](https://docs.platformio.org/page/core.html) -2. Download [development platform with examples](https://github.com/platformio/platform-espressif32/archive/develop.zip) -3. Extract ZIP archive -4. Run these commands: - -```shell -# Change directory to example -$ cd platform-espressif32/examples/espidf-blink - -# Build project -$ pio run - -# Upload firmware -$ pio run --target upload - -# Build specific environment -$ pio run -e esp32dev - -# Upload firmware for the specific environment -$ pio run -e esp32dev --target upload - -# Clean build files -$ pio run --target clean -``` \ No newline at end of file diff --git a/examples/espidf-blink/include/README b/examples/espidf-blink/include/README deleted file mode 100644 index 194dcd432..000000000 --- a/examples/espidf-blink/include/README +++ /dev/null @@ -1,39 +0,0 @@ - -This directory is intended for project header files. - -A header file is a file containing C declarations and macro definitions -to be shared between several project source files. You request the use of a -header file in your project source file (C, C++, etc) located in `src` folder -by including it, with the C preprocessing directive `#include'. - -```src/main.c - -#include "header.h" - -int main (void) -{ - ... -} -``` - -Including a header file produces the same results as copying the header file -into each source file that needs it. Such copying would be time-consuming -and error-prone. With a header file, the related declarations appear -in only one place. If they need to be changed, they can be changed in one -place, and programs that include the header file will automatically use the -new version when next recompiled. The header file eliminates the labor of -finding and changing all the copies as well as the risk that a failure to -find one copy will result in inconsistencies within a program. - -In C, the usual convention is to give header files names that end with `.h'. -It is most portable to use only letters, digits, dashes, and underscores in -header file names, and at most one dot. - -Read more about using header files in official GCC documentation: - -* Include Syntax -* Include Operation -* Once-Only Headers -* Computed Includes - -https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html diff --git a/examples/espidf-blink/lib/README b/examples/espidf-blink/lib/README deleted file mode 100644 index 6debab1e8..000000000 --- a/examples/espidf-blink/lib/README +++ /dev/null @@ -1,46 +0,0 @@ - -This directory is intended for project specific (private) libraries. -PlatformIO will compile them to static libraries and link into executable file. - -The source code of each library should be placed in a an own separate directory -("lib/your_library_name/[here are source files]"). - -For example, see a structure of the following two libraries `Foo` and `Bar`: - -|--lib -| | -| |--Bar -| | |--docs -| | |--examples -| | |--src -| | |- Bar.c -| | |- Bar.h -| | |- library.json (optional, custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html -| | -| |--Foo -| | |- Foo.c -| | |- Foo.h -| | -| |- README --> THIS FILE -| -|- platformio.ini -|--src - |- main.c - -and a contents of `src/main.c`: -``` -#include -#include - -int main (void) -{ - ... -} - -``` - -PlatformIO Library Dependency Finder will find automatically dependent -libraries scanning project source files. - -More information about PlatformIO Library Dependency Finder -- https://docs.platformio.org/page/librarymanager/ldf.html diff --git a/examples/espidf-blink/platformio.ini b/examples/espidf-blink/platformio.ini deleted file mode 100644 index b4c9feb7c..000000000 --- a/examples/espidf-blink/platformio.ini +++ /dev/null @@ -1,18 +0,0 @@ -; PlatformIO Project Configuration File -; -; Build options: build flags, source filter, extra scripting -; Upload options: custom port, speed and extra flags -; Library options: dependencies, extra library storages -; -; Please visit documentation for the other options and examples -; https://docs.platformio.org/page/projectconf.html - -[env:esp32dev] -platform = espressif32 -framework = espidf -board = esp32dev -monitor_speed = 115200 -build_flags = - ; https://docs.espressif.com/projects/esp-idf/en/latest/get-started/get-started-wrover-kit.html#rgb-led - -D CONFIG_BLINK_GPIO=2 - diff --git a/examples/espidf-blink/src/CMakeLists.txt b/examples/espidf-blink/src/CMakeLists.txt deleted file mode 100644 index 413c3b514..000000000 --- a/examples/espidf-blink/src/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -idf_component_register(SRCS "blink.c" - INCLUDE_DIRS ".") \ No newline at end of file diff --git a/examples/espidf-blink/src/blink.c b/examples/espidf-blink/src/blink.c deleted file mode 100644 index 9c58645f9..000000000 --- a/examples/espidf-blink/src/blink.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Blink Example - - This example code is in the Public Domain (or CC0 licensed, at your option.) - - Unless required by applicable law or agreed to in writing, this - software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR - CONDITIONS OF ANY KIND, either express or implied. -*/ -#include -#include "freertos/FreeRTOS.h" -#include "freertos/task.h" -#include "driver/gpio.h" -#include "sdkconfig.h" - -/* Can use project configuration menu (idf.py menuconfig) to choose the GPIO to blink, - or you can edit the following line and set a number here. -*/ -#define BLINK_GPIO CONFIG_BLINK_GPIO - -void app_main() -{ - /* Configure the IOMUX register for pad BLINK_GPIO (some pads are - muxed to GPIO on reset already, but some default to other - functions and need to be switched to GPIO. Consult the - Technical Reference for a list of pads and their default - functions.) - */ - gpio_pad_select_gpio(BLINK_GPIO); - /* Set the GPIO as a push/pull output */ - gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); - while(1) { - /* Blink off (output low) */ - printf("Turning off the LED\n"); - gpio_set_level(BLINK_GPIO, 0); - vTaskDelay(1000 / portTICK_PERIOD_MS); - /* Blink on (output high) */ - printf("Turning on the LED\n"); - gpio_set_level(BLINK_GPIO, 1); - vTaskDelay(1000 / portTICK_PERIOD_MS); - } -} diff --git a/examples/espidf-blink/test/README b/examples/espidf-blink/test/README deleted file mode 100644 index df5066e64..000000000 --- a/examples/espidf-blink/test/README +++ /dev/null @@ -1,11 +0,0 @@ - -This directory is intended for PIO Unit Testing and project tests. - -Unit Testing is a software testing method by which individual units of -source code, sets of one or more MCU program modules together with associated -control data, usage procedures, and operating procedures, are tested to -determine whether they are fit for use. Unit testing finds problems early -in the development cycle. - -More information about PIO Unit Testing: -- https://docs.platformio.org/page/plus/unit-testing.html From 98046b6d4d9474ada5d4a06bb6fa047e0c9cf668 Mon Sep 17 00:00:00 2001 From: Daan Steenbergen Date: Fri, 3 Feb 2023 14:15:11 +0100 Subject: [PATCH 5/6] Allow uppercase registers in exception decoder (#1020) It now also successfully handles backtraces where the register has upper case letters --- monitor/filter_exception_decoder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monitor/filter_exception_decoder.py b/monitor/filter_exception_decoder.py index 5702fbfc5..f3c680669 100644 --- a/monitor/filter_exception_decoder.py +++ b/monitor/filter_exception_decoder.py @@ -33,7 +33,7 @@ class Esp32ExceptionDecoder(DeviceMonitorFilterBase): NAME = "esp32_exception_decoder" BACKTRACE_PATTERN = re.compile(r"^Backtrace:(((\s?0x[0-9a-fA-F]{8}:0x[0-9a-fA-F]{8}))+)") - BACKTRACE_ADDRESS_PATTERN = re.compile(r'0x[0-9a-f]{8}:0x[0-9a-f]{8}') + BACKTRACE_ADDRESS_PATTERN = re.compile(r'0x[0-9a-fA-F]{8}:0x[0-9a-fA-F]{8}') def __call__(self): self.buffer = "" From 679a5a5acc530c13bb01d064f9e94edfa4ee4aea Mon Sep 17 00:00:00 2001 From: Valerii Koval Date: Mon, 6 Feb 2023 14:38:48 +0200 Subject: [PATCH 6/6] Bump version to 6.0.1 --- platform.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform.json b/platform.json index fe4f3c237..4afeafa65 100644 --- a/platform.json +++ b/platform.json @@ -18,7 +18,7 @@ "type": "git", "url": "https://github.com/platformio/platform-espressif32.git" }, - "version": "6.0.0", + "version": "6.0.1", "frameworks": { "arduino": { "package": "framework-arduinoespressif32",