From 2273482dc7c31e226c4375724a39bd334bf38ca0 Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Sat, 17 Apr 2021 19:45:56 +0200 Subject: [PATCH 1/8] remove ldscript --- platformio_override_sample.ini | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/platformio_override_sample.ini b/platformio_override_sample.ini index cce6797e5..b7dd2044b 100644 --- a/platformio_override_sample.ini +++ b/platformio_override_sample.ini @@ -175,24 +175,22 @@ build_flags = ${common32.build_flags} [env:tasmota32s2] extends = env:tasmota32_base board = esp32s2 -board_build.ldscript = esp32s2_out.ld board_build.flash_mode = qio platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/v.2.0.0.pre/framework-arduinoespressif32-master-cf457d412.tar.gz platformio/tool-mklittlefs @ ~1.203.200522 platformio/tool-esptoolpy @ ~1.30000.0 build_unflags = ${esp32_defaults.build_unflags} -build_flags = ${common32.build_flags} +build_flags = ${common32.build_flags} -DFIRMWARE_LITE +lib_extra_dirs = lib/libesp32 lib_ignore = NimBLE-Arduino Micro-RTSP - ESP32 Ethernet - ESP32-HomeKit + ; *** EXPERIMENTAL Tasmota version for ESP32-C3 [env:tasmota32c3] extends = env:tasmota32_base board = esp32c3 -board_build.ldscript = esp32c3_out.ld 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/v.2.0.0.pre/framework-arduinoespressif32-master-cf457d412.tar.gz ; needed toolchain for Windows @@ -203,8 +201,12 @@ platform_packages = framework-arduinoespressif32 @ https://github.com/ ;toolchain-riscv32 @ https://github.com/Jason2866/platform-espressif32/releases/download/8.4.0/riscv32-esp-elf-gcc8_4_0-crosstool-ng-1.24.0-123-g64eb9ff-macos.tar.gz platformio/tool-mklittlefs @ ~1.203.200522 build_unflags = ${esp32_defaults.build_unflags} -mtarget-align -build_flags = ${esp32_defaults.build_flags} +build_flags = ${esp32_defaults.build_flags} -DFIRMWARE_LITE ;-DESP32_STAGE=true +lib_extra_dirs = lib/libesp32 +lib_ignore = + NimBLE-Arduino + Micro-RTSP ; *** EXPERIMENTAL Tasmota version for Arduino ESP32 IDF4.4. Linking not working. [env:tasmota32idf4] From 5f7ed8ce4a0779038656f24f1f34a25f241dc865 Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Sat, 17 Apr 2021 19:47:42 +0200 Subject: [PATCH 2/8] Refactor Platformio --- platformio.ini | 4 +--- platformio_tasmota32.ini | 2 +- platformio_tasmota_env.ini | 3 +-- platformio_tasmota_env32.ini | 1 - 4 files changed, 3 insertions(+), 7 deletions(-) diff --git a/platformio.ini b/platformio.ini index 9468f5102..97e8fe901 100644 --- a/platformio.ini +++ b/platformio.ini @@ -26,12 +26,9 @@ extra_configs = platformio_tasmota32.ini [common] framework = arduino -board = esp01_1m board_build.filesystem = littlefs custom_unpack_dir = unpacked_littlefs board_build.flash_mode = dout -board_build.ldscript = eagle.flash.1m.ld - platform = ${core.platform} platform_packages = ${core.platform_packages} build_unflags = ${core.build_unflags} @@ -89,6 +86,7 @@ build_flags = -DCORE_DEBUG_LEVEL=0 [esp82xx_defaults] +board = esp8266_1M build_flags = ${esp_defaults.build_flags} -DNDEBUG -DFP_IN_IROM diff --git a/platformio_tasmota32.ini b/platformio_tasmota32.ini index 3a8c42192..0391e8c85 100644 --- a/platformio_tasmota32.ini +++ b/platformio_tasmota32.ini @@ -2,6 +2,7 @@ ; *** expect the unexpected. Some features not working!!! *** [common32] +framework = ${common.framework} platform = ${core32.platform} platform_packages = ${core32.platform_packages} build_unflags = ${core32.build_unflags} @@ -9,7 +10,6 @@ build_flags = ${core32.build_flags} board = esp32dev board_build.filesystem = ${common.board_build.filesystem} custom_unpack_dir = ${common.custom_unpack_dir} -board_build.ldscript = esp32_out.ld board_build.partitions = esp32_partition_app1856k_spiffs320k.csv board_build.flash_mode = ${common.board_build.flash_mode} board_build.f_flash = ${common.board_build.f_flash} diff --git a/platformio_tasmota_env.ini b/platformio_tasmota_env.ini index cd468af55..c0b3e7294 100644 --- a/platformio_tasmota_env.ini +++ b/platformio_tasmota_env.ini @@ -2,9 +2,8 @@ platform = ${common.platform} platform_packages = ${common.platform_packages} framework = ${common.framework} -board = ${common.board} +board = ${esp82xx_defaults.board} board_build.filesystem = ${common.board_build.filesystem} -board_build.ldscript = ${common.board_build.ldscript} board_build.flash_mode = ${common.board_build.flash_mode} board_build.f_flash = ${common.board_build.f_flash} board_build.f_cpu = ${common.board_build.f_cpu} diff --git a/platformio_tasmota_env32.ini b/platformio_tasmota_env32.ini index 54722290c..3a44b2675 100644 --- a/platformio_tasmota_env32.ini +++ b/platformio_tasmota_env32.ini @@ -3,7 +3,6 @@ framework = ${common.framework} platform = ${common32.platform} platform_packages = ${common32.platform_packages} board = ${common32.board} -board_build.ldscript = ${common32.board_build.ldscript} board_build.partitions = ${common32.board_build.partitions} board_build.flash_mode = ${common32.board_build.flash_mode} board_build.f_flash = ${common32.board_build.f_flash} From 819b40be3cb330b9cb2d1fe0483fe1ab484f1e97 Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Sat, 17 Apr 2021 19:48:32 +0200 Subject: [PATCH 3/8] Tasmota ESP8266 board definition --- boards/esp8266_1M.json | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 boards/esp8266_1M.json diff --git a/boards/esp8266_1M.json b/boards/esp8266_1M.json new file mode 100644 index 000000000..7a0eb335d --- /dev/null +++ b/boards/esp8266_1M.json @@ -0,0 +1,32 @@ +{ + "build": { + "arduino": { + "ldscript": "eagle.flash.1m.ld" + }, + "core": "esp8266", + "extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01", + "f_cpu": "80000000L", + "f_flash": "40000000L", + "flash_mode": "dout", + "mcu": "esp8266", + "variant": "generic" + }, + "connectivity": [ + "wifi" + ], + "frameworks": [ + "arduino", + "esp8266-rtos-sdk", + "esp8266-nonos-sdk" + ], + "name": "Espressif Generic ESP8266 ESP-01 1M", + "upload": { + "maximum_ram_size": 81920, + "maximum_size": 1048576, + "require_upload_port": true, + "resetmethod": "ck", + "speed": 115200 + }, + "url": "http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family", + "vendor": "Espressif" +} From bbb0e7464b9a0ea328c8efaa3da4753871e2744e Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Sat, 17 Apr 2021 19:51:14 +0200 Subject: [PATCH 4/8] fix if for riscv --- lib/default/Ext-printf/src/ext_printf.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/default/Ext-printf/src/ext_printf.cpp b/lib/default/Ext-printf/src/ext_printf.cpp index f027d5ba4..5256ea637 100644 --- a/lib/default/Ext-printf/src/ext_printf.cpp +++ b/lib/default/Ext-printf/src/ext_printf.cpp @@ -126,7 +126,7 @@ void * __va_cur_ptr4(va_list &va) { // >>> Reading a_ptr=0x3FFFFD70 *a_ptr=6 // >>> Reading a_ptr=0x3FFFFD74 *a_ptr=7 // >>> Reading a_ptr=0x3FFFFD78 *a_ptr=8 -#elif defined(__RISC_V__) +#elif CONFIG_IDF_TARGET_ESP32C3 // ESP32-C3 RISC_V // #define __va_argsiz_tas(t) (((sizeof(t) + sizeof(int) - 1) / sizeof(int)) * sizeof(int)) #define va_cur_ptr4(va,T) ( (T*) __va_cur_ptr4(va) ) void * __va_cur_ptr4(va_list &va) { From 8e7e3512c105092098d6e3b4ce14515531ecb136 Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Sat, 17 Apr 2021 19:52:14 +0200 Subject: [PATCH 5/8] add C3 variant --- lib/default/TasmotaSerial-3.3.0/src/TasmotaSerial.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/default/TasmotaSerial-3.3.0/src/TasmotaSerial.cpp b/lib/default/TasmotaSerial-3.3.0/src/TasmotaSerial.cpp index 0ea060517..db3e3ccfa 100644 --- a/lib/default/TasmotaSerial-3.3.0/src/TasmotaSerial.cpp +++ b/lib/default/TasmotaSerial-3.3.0/src/TasmotaSerial.cpp @@ -42,6 +42,8 @@ TasmotaSerial *tms_obj_list[16]; static int tasmota_serial_index = 2; // Allow UART2 and UART1 only #elif CONFIG_IDF_TARGET_ESP32S2 // ESP32-S2 static int tasmota_serial_index = 1; // Allow UART1 only +#elif CONFIG_IDF_TARGET_ESP32C3 // ESP32-C3 +static int tasmota_serial_index = 1; // Allow UART1 only #endif #endif // ESP32 From 186c8bcdb58a541be15c578bce33541da1b8c4fe Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Sat, 17 Apr 2021 19:54:56 +0200 Subject: [PATCH 6/8] add C3 --- lib/libesp32/ESP32-to-ESP8266-compat/src/esp8266toEsp32.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/libesp32/ESP32-to-ESP8266-compat/src/esp8266toEsp32.cpp b/lib/libesp32/ESP32-to-ESP8266-compat/src/esp8266toEsp32.cpp index 65ceed801..d11d09931 100644 --- a/lib/libesp32/ESP32-to-ESP8266-compat/src/esp8266toEsp32.cpp +++ b/lib/libesp32/ESP32-to-ESP8266-compat/src/esp8266toEsp32.cpp @@ -24,6 +24,8 @@ #include "esp32/rom/rtc.h" #elif CONFIG_IDF_TARGET_ESP32S2 // ESP32-S2 #include "esp32s2/rom/rtc.h" + #elif CONFIG_IDF_TARGET_ESP32C3 // ESP32-C3 + #include "esp32c3/rom/rtc.h" #else #error Target CONFIG_IDF_TARGET is not supported #endif From 241af63aa1ae4e0f637dc22db6b745d0dfa9163c Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Sat, 17 Apr 2021 19:57:13 +0200 Subject: [PATCH 7/8] add c3 --- tasmota/support_esp.ino | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tasmota/support_esp.ino b/tasmota/support_esp.ino index 8ddba729c..e5a9b40d6 100644 --- a/tasmota/support_esp.ino +++ b/tasmota/support_esp.ino @@ -117,6 +117,8 @@ String GetDeviceHardware(void) { #include "esp32/rom/rtc.h" #elif CONFIG_IDF_TARGET_ESP32S2 // ESP32-S2 #include "esp32s2/rom/rtc.h" + #elif CONFIG_IDF_TARGET_ESP32C3 // ESP32-C3 + #include "esp32c3/rom/rtc.h" #else #error Target CONFIG_IDF_TARGET is not supported #endif @@ -242,6 +244,8 @@ extern "C" { #include "esp32/rom/spi_flash.h" #elif CONFIG_IDF_TARGET_ESP32S2 // ESP32-S2 #include "esp32s2/rom/spi_flash.h" + #elif CONFIG_IDF_TARGET_ESP32C3 // ESP32-C3 + #include "esp32c3/rom/spi_flash.h" #else #error Target CONFIG_IDF_TARGET is not supported #endif From 7a38619ffcfeae40b6decf8103d8a6f2d0a5849e Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Sat, 17 Apr 2021 20:04:23 +0200 Subject: [PATCH 8/8] add Homekit ignore --- platformio_override_sample.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/platformio_override_sample.ini b/platformio_override_sample.ini index b7dd2044b..66de45c80 100644 --- a/platformio_override_sample.ini +++ b/platformio_override_sample.ini @@ -185,6 +185,7 @@ lib_extra_dirs = lib/libesp32 lib_ignore = NimBLE-Arduino Micro-RTSP + ESP32-HomeKit ; *** EXPERIMENTAL Tasmota version for ESP32-C3