From 80d188bd371703988a7907b4804ab17d841343ae Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Tue, 1 Jun 2021 19:44:26 +0200 Subject: [PATCH 1/4] C3 (#185) * fix linker error C3 * Stage IDF335 --- platformio_tasmota_cenv_sample.ini | 11 +++++++++++ tasmota/support_button.ino | 4 +++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/platformio_tasmota_cenv_sample.ini b/platformio_tasmota_cenv_sample.ini index 9f2d8e764..f3829a06f 100644 --- a/platformio_tasmota_cenv_sample.ini +++ b/platformio_tasmota_cenv_sample.ini @@ -23,6 +23,17 @@ build_flags = ${esp82xx_defaults.build_flags} -Wno-switch-unreachable +; *** Tasmota version Stage ESP32 IDF3.3.5 +[env:tasmota32idf3] +extends = env:tasmota32_base +platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/raw/framework-arduinoespressif32/framework-arduinoespressif32-release_v3.3-6aaddf972.tar.gz + ;framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#release/v1.0 + platformio/tool-esptoolpy @ ~1.30100 + platformio/tool-mklittlefs @ ~1.203.200522 +build_unflags = ${esp32_defaults.build_unflags} +build_flags = ${esp32_defaults.build_flags} + ;-DESP32_STAGE=true + ;*** EXPERIMENTAL Tasmota version for ESP32-S2 [env:tasmota32s2] extends = env:tasmota32_base diff --git a/tasmota/support_button.ino b/tasmota/support_button.ino index a4b0d9ef3..a7f766677 100644 --- a/tasmota/support_button.ino +++ b/tasmota/support_button.ino @@ -167,6 +167,7 @@ void ButtonHandler(void) { if (PinUsed(GPIO_KEY1, button_index)) { button_present = 1; #ifdef ESP32 +#ifndef CONFIG_IDF_TARGET_ESP32C3 if (bitRead(Button.touch_mask, button_index)) { // Touch uint32_t _value = touchRead(Pin(GPIO_KEY1, button_index)); button = NOT_PRESSED; @@ -187,6 +188,7 @@ void ButtonHandler(void) { AddLog(LOG_LEVEL_INFO, PSTR("PLOT: %u, %u, %u,"), button_index+1, _value, Button.touch_hits[button_index]); // Button number (1..4), value, continuous hits under threshold } } else +#endif // not ESP32C3 #endif // ESP32 { // Normal button button = (digitalRead(Pin(GPIO_KEY1, button_index)) != bitRead(Button.inverted_mask, button_index)); @@ -406,4 +408,4 @@ void ButtonLoop(void) { } } -#endif // BUTTON_V2 \ No newline at end of file +#endif // BUTTON_V2 From ba753299c48b29c36191969a9ce2ed54170ff32a Mon Sep 17 00:00:00 2001 From: Jason2866 Date: Tue, 1 Jun 2021 18:03:51 +0000 Subject: [PATCH 2/4] Partition from boards.json is not used! --- boards/esp32c3.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/boards/esp32c3.json b/boards/esp32c3.json index 6b8a9ac24..bc703484c 100644 --- a/boards/esp32c3.json +++ b/boards/esp32c3.json @@ -1,8 +1,7 @@ { "build": { "arduino":{ - "ldscript": "esp32c3_out.ld", - "partitions": "esp32_partition_app1856k_spiffs320k.csv" + "ldscript": "esp32c3_out.ld" }, "core": "esp32", "f_cpu": "160000000L", From 1a9370b0a6409d744354338b8ebec6f4c8153428 Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Tue, 1 Jun 2021 20:08:18 +0200 Subject: [PATCH 3/4] Boards.json scanning is faulty for C3 and S2. Partition scheme is not used when provided. --- platformio_tasmota_cenv_sample.ini | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platformio_tasmota_cenv_sample.ini b/platformio_tasmota_cenv_sample.ini index f3829a06f..5d7c0aa3d 100644 --- a/platformio_tasmota_cenv_sample.ini +++ b/platformio_tasmota_cenv_sample.ini @@ -38,6 +38,7 @@ build_flags = ${esp32_defaults.build_flags} [env:tasmota32s2] extends = env:tasmota32_base board = esp32s2 +board_build.partitions = esp32_partition_app1856k_spiffs320k.csv board_build.flash_mode = qio platform = https://github.com/platformio/platform-espressif32.git#feature/idf-master platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/259/framework-arduinoespressif32-master-c13afea63.tar.gz @@ -54,6 +55,7 @@ lib_ignore = [env:tasmota32c3] extends = env:tasmota32_base board = esp32c3 +board_build.partitions = esp32_partition_app1856k_spiffs320k.csv platform = https://github.com/Jason2866/platform-espressif32.git#feature/arduino-c3 platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/259/framework-arduinoespressif32-master-c13afea63.tar.gz tasmota/toolchain-riscv32 From 1259b25de90b99d621ecbcca302fc58bdc133a0d Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Tue, 1 Jun 2021 20:48:21 +0200 Subject: [PATCH 4/4] Arduino core 3.0 --- platformio_tasmota_cenv_sample.ini | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/platformio_tasmota_cenv_sample.ini b/platformio_tasmota_cenv_sample.ini index 5d7c0aa3d..99b29a43d 100644 --- a/platformio_tasmota_cenv_sample.ini +++ b/platformio_tasmota_cenv_sample.ini @@ -6,20 +6,22 @@ build_flags = ${common.build_flags} [core] ; Activate (by removing the ";" in the next lines) if you want to override the standard core defined in platformio.ini !!! +;platform = ${core_stage.platform} ;platform_packages = ${core_stage.platform_packages} ;build_unflags = ${core_stage.build_unflags} ;build_flags = ${core_stage.build_flags} [core_stage] ; *** Esp8266 core for Arduino version stage -platform_packages = framework-arduinoespressif8266 @ https://github.com/tasmota/Arduino.git#3.0.0.1 +platform = espressif8266 @ 3.0.0 +platform_packages = ; *** Use Xtensa build chain 10.2. GNU23 from https://github.com/earlephilhower/esp-quick-toolchain tasmota/toolchain-xtensa @ 5.100200.210303 build_unflags = ${esp_defaults.build_unflags} -Wswitch-unreachable build_flags = ${esp82xx_defaults.build_flags} ; *** 16k extra heap https://github.com/esp8266/Arduino/pull/7060 - ;-DPIO_FRAMEWORK_MMU__16KB_CACHE__48KB_IRAM + -D PIO_FRAMEWORK_ARDUINO_MMU_CACHE16_IRAM48_SECHEAP_SHARED -Wno-switch-unreachable