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

Dual Toolchain usage [ESP32S2] #679

Closed
tobiasjaster opened this issue Nov 25, 2021 · 2 comments
Closed

Dual Toolchain usage [ESP32S2] #679

tobiasjaster opened this issue Nov 25, 2021 · 2 comments

Comments

@tobiasjaster
Copy link

Dear all,

Since Platformio recently started supporting the new Arduino version for ESP, I wanted to get my NodeMCU-32-S2 board running with it. I created a new board for the Espressif32-Platform and defined the corresponding variant in the Arduino-Framework (pins_arduino.h).

Both Platformio (VSCode) and the Espressif32-Platform are up to date.

[env:nodemcu-32-s2]
platform = espressif32
board = nodemcu-32-s2
framework = arduino

platform_packages =
    platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#2.0.1

When compiling my app I first encountered problems with the left one, so I wanted to switch to the newer espressif toolchain.

[env:nodemcu-32-s2]
platform = espressif32
board = nodemcu-32-s2
framework = arduino

platform_packages =
    espressif/toolchain-xtensa-esp32s2 @ 8.4.0+2021r2
    platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#2.0.1

However, after adding the toolchain to platformio.ini, the linker has the same problem. Interestingly, it still uses the plaformio toolchain for linking. Is there any way to set which toolchain the compiler uses and when?

Processing nodemcu-32-s2 (platform: espressif32; board: nodemcu-32-s2; framework: arduino)
--------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/nodemcu-32-s2.html
PLATFORM: Espressif 32 (3.4.0) > NodeMCU-32-S2
HARDWARE: ESP32S2 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES: 
 - framework-arduinoespressif32 0.0.0+sha.d218e58 
 - tool-esptoolpy 1.30100.210531 (3.1.0) 
 - toolchain-riscv-esp 1.80400.0 (8.4.0) 
 - toolchain-xtensa32s2 1.80400.210211 (8.4.0)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 31 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Compiling .pio/build/nodemcu-32-s2/src/main.cpp.o
Generating partitions .pio/build/nodemcu-32-s2/partitions.bin
Archiving .pio/build/nodemcu-32-s2/libFrameworkArduinoVariant.a
Indexing .pio/build/nodemcu-32-s2/libFrameworkArduinoVariant.a
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/Esp.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/FirmwareMSC.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/FunctionalInterrupt.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/HWCDC.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/HardwareSerial.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/IPAddress.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/IPv6Address.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/MD5Builder.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/Print.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/Stream.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/StreamString.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/USB.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/USBCDC.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/USBMSC.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/WMath.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/WString.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/base64.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/cbuf.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-adc.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-bt.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-cpu.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-dac.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-gpio.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-i2c-slave.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-i2c.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-ledc.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-matrix.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-misc.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-psram.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-rmt.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-sigmadelta.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-spi.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-time.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-timer.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-tinyusb.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-touch.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-uart.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/firmware_msc_fat.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/libb64/cdecode.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/libb64/cencode.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/main.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/stdlib_noniso.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/wiring_pulse.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/wiring_shift.c.o
Archiving .pio/build/nodemcu-32-s2/libFrameworkArduino.a
Indexing .pio/build/nodemcu-32-s2/libFrameworkArduino.a
Linking .pio/build/nodemcu-32-s2/firmware.elf
/home/xxxxxx/.platformio/packages/toolchain-xtensa32s2/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
*** [.pio/build/nodemcu-32-s2/firmware.elf] Error 1



> Executing task in folder VS1053_2: platformio run --environment nodemcu-32-s2 <

Processing nodemcu-32-s2 (platform: espressif32; board: nodemcu-32-s2; framework: arduino)
--------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/nodemcu-32-s2.html
PLATFORM: Espressif 32 (3.4.0) > NodeMCU-32-S2
HARDWARE: ESP32S2 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES: 
 - framework-arduinoespressif32 0.0.0+sha.d218e58 
 - tool-esptoolpy 1.30100.210531 (3.1.0) 
 - toolchain-riscv-esp 1.80400.0 (8.4.0) 
 - toolchain-xtensa-esp32s2 8.4.0+2021r2 
 - toolchain-xtensa32s2 1.80400.210211 (8.4.0)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 31 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Compiling .pio/build/nodemcu-32-s2/src/main.cpp.o
Generating partitions .pio/build/nodemcu-32-s2/partitions.bin
Archiving .pio/build/nodemcu-32-s2/libFrameworkArduinoVariant.a
Indexing .pio/build/nodemcu-32-s2/libFrameworkArduinoVariant.a
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/Esp.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/FirmwareMSC.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/FunctionalInterrupt.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/HWCDC.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/HardwareSerial.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/IPAddress.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/IPv6Address.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/MD5Builder.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/Print.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/Stream.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/StreamString.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/USB.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/USBCDC.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/USBMSC.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/WMath.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/WString.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/base64.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/cbuf.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-adc.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-bt.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-cpu.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-dac.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-gpio.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-i2c-slave.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-i2c.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-ledc.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-matrix.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-misc.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-psram.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-rmt.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-sigmadelta.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-spi.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-time.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-timer.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-tinyusb.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-touch.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/esp32-hal-uart.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/firmware_msc_fat.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/libb64/cdecode.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/libb64/cencode.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/main.cpp.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/stdlib_noniso.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/wiring_pulse.c.o
Compiling .pio/build/nodemcu-32-s2/FrameworkArduino/wiring_shift.c.o
Archiving .pio/build/nodemcu-32-s2/libFrameworkArduino.a
Indexing .pio/build/nodemcu-32-s2/libFrameworkArduino.a
Linking .pio/build/nodemcu-32-s2/firmware.elf
/home/xxxxxxx/.platformio/packages/toolchain-xtensa32s2/bin/../lib/gcc/xtensa-esp32s2-elf/8.4.0/../../../../xtensa-esp32s2-elf/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
*** [.pio/build/nodemcu-32-s2/firmware.elf] Error 1
@Jason2866
Copy link
Contributor

See #619 (comment)

@tobiasjaster
Copy link
Author

Delete .platformio folder and change platformio.ini to

board_build.mcu = esp32s2
platform                    = https://github.com/platformio/platform-espressif32.git#feature/arduino-idf-master
platform_packages           = framework-arduinoespressif32 @ https://github.com/tasmota/arduino-esp32/releases/download/2.0.1/framework-arduinoespressif32-release_IDF4.4.tar.gz
                              platformio/tool-esptoolpy @ https://github.com/tasmota/esptool/releases/download/v3.2/esptool-v3.2.zip

solved my problems. Thx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants