Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Toolchain broken on Windows, please update to esp-2021r2-patch2 #705

Closed
FaBjE opened this issue Jan 17, 2022 · 3 comments
Closed

Toolchain broken on Windows, please update to esp-2021r2-patch2 #705

FaBjE opened this issue Jan 17, 2022 · 3 comments

Comments

@FaBjE
Copy link

FaBjE commented Jan 17, 2022

The included toolchain esp-2021r2 contains a "bug" (missing dll's) that cause it not to run (properly) on windows.
Especially the GDB server of the RISCV architecture will exit without an error message.
Causing the PlatformIO debugger to not start without any error message.

Espressif has fixed this. https://github.com/espressif/crosstool-NG/releases/
Please update the toolchain to: esp-2021r2-patch2

@valeros
Copy link
Member

valeros commented Jan 17, 2022

Hi @FaBjE ! Do you use the upstream version of the Espressif32 platform? The Espressif team maintains their own packages within the PlatformIO ecosystem (e.g. https://registry.platformio.org/tools/espressif/toolchain-xtensa-esp32/versions). The 2021r2 version was officially released in October and they pushed updated toolchains to PlatformIO Registry in November, so I guess the packages should contain all required patches.

@FaBjE
Copy link
Author

FaBjE commented Jan 17, 2022

Hi @valeros

Yes, sorry I forgot to mention that I use fcde861 with the IDF upgraded v4.3.2 I requested in #704

I did a fresh "install" and and indeed got the esp-2021r2 version.
This does not contain the patches that fixes the windows builds. the Linux toolchain works fine.

It makes sense in a way that they name the first release just "r2" and the patches "r2-patchX"
If you download the "r2" version from the releases page you get the version without patches.
My guess is that they didn't generate the PlatformIO packages for the patches.

Do you have any contacts to request them to generate the new (patched) packages?

@FaBjE
Copy link
Author

FaBjE commented Jan 21, 2022

@valeros

Espressif updated/released the toolchain in the package repository.
I verified it using this config:

[env]
platform = https://github.com/platformio/platform-espressif32.git#fcde8613031837b917fc881d22ba38853a3ad544
framework = espidf
platform_packages =
  ; use upstream toolchain
  toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch2
  toolchain-xtensa-esp32s2 @ 8.4.0+2021r2-patch2
  toolchain-riscv32-esp @ 8.4.0+2021r2-patch2

It now works out of the box on windows and still works on Linux too.
Could you update the references in platform.json?

Jason2866 added a commit to Jason2866/platform-espressif32 that referenced this issue Jan 23, 2022
* Create lionbit config file (platformio#692)

* Create lionbit config file

* Changed upload speed.

* Update ESP-IDF to the latest v4.3.2

v4.3.2 also requires updated toolchains

* PSRAM fix not needed for M5 stack core2 (platformio#676)

since all m5 stack core 2 have a actual PSRAM bug free version

* Add Franzininho WiFi Board (platformio#642)

* Update latest toolchains to patched versions

Resolve platformio#705

* Update platform.json

* Tasmota Arduino 2.0.2.1 with idf44 rc1

* Update README.md

* Update platform.json

* re release 2.0.2.1

fix PWM

Co-authored-by: Niwantha Nadeesh Meepage <niwantha33@gmail.com>
Co-authored-by: valeros <valeros08@gmail.com>
Co-authored-by: Anderson Costa <arcostasi@gmail.com>
Co-authored-by: Valerii Koval <valeros@users.noreply.github.com>
Jason2866 added a commit to Jason2866/platform-espressif32 that referenced this issue Sep 4, 2022
* Create lionbit config file (platformio#692)

* Create lionbit config file

* Changed upload speed.

* Update ESP-IDF to the latest v4.3.2

v4.3.2 also requires updated toolchains

* PSRAM fix not needed for M5 stack core2 (platformio#676)

since all m5 stack core 2 have a actual PSRAM bug free version

* Add Franzininho WiFi Board (platformio#642)

* Update latest toolchains to patched versions

Resolve platformio#705

* Tasmota/203

* Changes for C3 and S3

* Add Adafruit Feather ESP32 V2 board

* S2 has no PSRAM bugs which needs fixes

* Fix Esptool S3 bootloader patching

Co-authored-by: Maximilian Gerhardt <maximilian.gerhardt@rub.de>

* Tasmota esptool v3.3

* toolchain-xtensa 8.4.0+2021r2-patch3

* 8.4.0+2021r2-patch3

* Update platform.json

* Revert espressif/arduino-esp32#6456

since it generates crashes

* Add files via upload

* Add files via upload

* Add files via upload

* Update featheresp32-s2.json

* Update main.py

* Update platform.json

* Update platform.py

* Integrate upstream develop changes

* Update platform.json

* Update platform.py

* Integrate upstream 2

* Update esp32-s2-franzininho.json

* Update _embed_files.py

* Update main.py

* Update platform.json

* Update platform.py

* updates 21.04.2022 (#15)

* Tasmota/dev apple

* Update platform.json

* Update platform.py

* Update README.md

* Update OCD Apple Silicon to build from 20220424

* esptool.py v3.3 now in registry

* Add CMSIS-DAP as available debug probe

* Use GetBuildType for detecting debug mode

* rm Python2 add C3 exception decoder

* remove fix firmware address 0x10000

* Apple arm toolchains for IDF

* Arduino framework based on IDF4.4.1

* Use Tasmota release versions

* Compile IDF bootloader with optimizations by default

By default the size of bootloader is limited to 0x2000 bytes,
in debug mode the footprint can be easily grow beyond this limit

* Update examples.yml

* esptool.py v3.3.1

* Update platform.py

* add `_get_board_boot_mode`

* esptool.py v4.0.1

* Improve support for assembly programming

* Add compatibility with PIO Core 6.0

* Update platform.py

* Update examples.yml

* Explicitly exit from build process when there is default IDF component

* revert Use empty ASM and CXX flags if config empty

* Update main.py

* Update platform.py

* "platformio": "^6"

* Update _bare.py

* Update platform.py

* Delete compat.py

* Platformio core 6.0.2

since Tasmota uses ino folder feature, which is introduced with 6.0.2

* pio core v6.0.2

* Add misso

* Missing `:` in class def

* Esptool v4.1

* Esptool v4.1

* really Esptool v4.1

* really Esptool v4.1

* Boards update

* add framework espidf to all boards

* Update espidf.py

* use upstream version

* Update platform.py

* Update platform.py

* Integrate upstream updates (#21)

* Update featheresp32-s2.json

* Update main.py

* Update platform.json

* Update platform.py

* Integrate upstream develop changes

* Update platform.json

* Update platform.py

* Integrate upstream 2

* Update esp32-s2-franzininho.json

* Update _embed_files.py

* Update main.py

* Update platform.json

* Update platform.py

* updates 21.04.2022 (#15)

* Tasmota/dev apple

* Update platform.json

* Update platform.py

* Update README.md

* Update OCD Apple Silicon to build from 20220424

* esptool.py v3.3 now in registry

* Add CMSIS-DAP as available debug probe

* Use GetBuildType for detecting debug mode

* rm Python2 add C3 exception decoder

* remove fix firmware address 0x10000

* Apple arm toolchains for IDF

* Arduino framework based on IDF4.4.1

* Use Tasmota release versions

* Compile IDF bootloader with optimizations by default

By default the size of bootloader is limited to 0x2000 bytes,
in debug mode the footprint can be easily grow beyond this limit

* Update examples.yml

* esptool.py v3.3.1

* Update platform.py

* add `_get_board_boot_mode`

* esptool.py v4.0.1

* Improve support for assembly programming

* Add compatibility with PIO Core 6.0

* Update platform.py

* Update examples.yml

* Explicitly exit from build process when there is default IDF component

* revert Use empty ASM and CXX flags if config empty

* Update main.py

* Update platform.py

* "platformio": "^6"

* Update _bare.py

* Update platform.py

* Delete compat.py

* Platformio core 6.0.2

since Tasmota uses ino folder feature, which is introduced with 6.0.2

* Add misso

* Esptool v4.1

* really Esptool v4.1

* Boards update

* add framework espidf to all boards

* Update espidf.py

* Update platform.py

* Update platform.py

* Update README.md

* Update README.md

* Back to esptool.py v3.3.1

since v4 does not work with S3 > 4MB !!

* --dont-append-digest

* Back to esptool v3.3.1

since header patching is not working anymore when using esptool merge

* revert "--dont-append-digest"

* Tasmota 204pre

* Update esp32-s3-devkitc-1.json

* Update esp32-s3-devkitc-1.json

* Core 2.0.4 / IDF 442 (#23)

* Tasmota github for core 204

* Update README.md

* core 2.0.4

* Tasmota github as source

* --dont-append-digest

* esptool v4.1

* 2.0.5dev

* platformio": ">=6.1.0

* Update espidf.py

* Add default nameOnDisk value for external CMake projects

* Build 918

newest wifi libs from idf44

* Tasmota IDF 4.4.3

* Tasmota Core 2.0.4.1 based on IDF 4.4.3

* Tasmota release Core 2.0.4.1

* stable 2.0.4.1

* Merge firmware before flashing via OpenOCD

* Merge firmware before flashing via OpenOCD

* Update arduino.py

* Update espidf.py

* update boards 1/2

* Update Boards 2/2

* v2.0.4.1

* FIx OCD flash, Esptool v4.1, Board updates (#24)

* Tasmota github as source

* --dont-append-digest

* esptool v4.1

* 2.0.5dev

* platformio": ">=6.1.0

* Update espidf.py

* Add default nameOnDisk value for external CMake projects

* Build 918

newest wifi libs from idf44

* Tasmota IDF 4.4.3

* Tasmota release Core 2.0.4.1

* Merge firmware before flashing via OpenOCD

* Merge firmware before flashing via OpenOCD

* Update arduino.py

* Update espidf.py

* update boards 1/2

* Update Boards 2/2

* v2.0.4.1

* Mode qio

* Mode qio

* Board supports qio

* OpenOCD has now apple ARM support

* rm custom OpenOCD

* fix install OpenOCD

* Allow overriding reset operation via project file

* Allow overriding reset operation via project file

* flash options from env for uploadfs

* revert

* flash options from env for uploadfs

* no .DS_Store

* fix boot flash mode

* refactor

* Fix bootloader flash mode

* Allow overriding reset operation via project file
* fix boot flash mode

* Esptool.py v4.2.1

* Update platform.json

* Update bootloader image headers before debugging or uploading via deb…

…ug tools
This approach is less intrusive than merging the entire application into one binary
implemented in #006d64e8b268e479703a0aac7eed8bef1ebea587

In this implementation we safely copy the required bootloader binary to the
build directory, adjust the headers via esptoolpy and the "merge_bin" command
according to --flash-size and --flash-mode arguments.

* Change in OCD firmware generation

In this implementation we safely copy the required bootloader binary to the
build directory, adjust the headers via esptoolpy and the "merge_bin" command
according to --flash-size and --flash-mode arguments.

* better specs

* qio and 8MB and faster upload

* replace deprecated flash modes

* Board support faster flash mode

* Update boards manifests (#27)

* Tasmota github as source

* --dont-append-digest

* esptool v4.1

* 2.0.5dev

* platformio": ">=6.1.0

* Update espidf.py

* Add default nameOnDisk value for external CMake projects

* Build 918

newest wifi libs from idf44

* Tasmota IDF 4.4.3

* Tasmota release Core 2.0.4.1

* Merge firmware before flashing via OpenOCD

* Merge firmware before flashing via OpenOCD

* Update arduino.py

* Update espidf.py

* update boards 1/2

* Update Boards 2/2

* v2.0.4.1

* Mode qio

* Board supports qio

* OpenOCD has now apple ARM support

* rm custom OpenOCD

* fix install OpenOCD

* Allow overriding reset operation via project file

* flash options from env for uploadfs

* revert

* flash options from env for uploadfs

* no .DS_Store

* fix boot flash mode

* refactor

* Esptool.py v4.2.1

* Update bootloader image headers before debugging or uploading via deb…

…ug tools
This approach is less intrusive than merging the entire application into one binary
implemented in #006d64e8b268e479703a0aac7eed8bef1ebea587

In this implementation we safely copy the required bootloader binary to the
build directory, adjust the headers via esptoolpy and the "merge_bin" command
according to --flash-size and --flash-mode arguments.

* better specs

* replace deprecated flash modes

* Board support faster flash mode

* now "memory_type": "qio_opi"

* qio

* opi flash needs flash mode `dout`

flash mode `dio `works for `qout` as mode too

* 8 MB

* 8 MB

* Tasmota/205

* Update IDF to 4.4.3.1

* Use S2 / S3 / C3 as board

* cmake v3.21

* core pre 2.0.5

* Move the process of patching bootloader to the Arduino build script

* Remove obsolete workaround for propagating debug configurations

* Update platform.py

* Update platform.json

* Update sdkconfig.defaults

* PSK needed for wifi

* Update Arduino / IDF

* Update platform.json

* Update platform.json

* Update main.py

* Update platform.py

Co-authored-by: Niwantha Nadeesh Meepage <niwantha33@gmail.com>
Co-authored-by: valeros <valeros08@gmail.com>
Co-authored-by: Anderson Costa <arcostasi@gmail.com>
Co-authored-by: Valerii Koval <valeros@users.noreply.github.com>
Co-authored-by: Maximilian Gerhardt <maximilian.gerhardt@rub.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants