mirror of
https://github.com/letscontrolit/ESPEasy.git
synced 2026-07-27 19:57:38 +00:00
[ESP32-C61] Add initial support for ESP32-C61
This commit is contained in:
@@ -22,6 +22,8 @@
|
||||
# define SOC_RX0 44
|
||||
# elif CONFIG_IDF_TARGET_ESP32C6
|
||||
# define SOC_RX0 17
|
||||
# elif CONFIG_IDF_TARGET_ESP32C61
|
||||
# define SOC_RX0 17
|
||||
# elif CONFIG_IDF_TARGET_ESP32C5
|
||||
# define SOC_RX0 12
|
||||
# elif CONFIG_IDF_TARGET_ESP32C3
|
||||
@@ -38,6 +40,8 @@
|
||||
# define SOC_TX0 43
|
||||
# elif CONFIG_IDF_TARGET_ESP32C6
|
||||
# define SOC_TX0 16
|
||||
# elif CONFIG_IDF_TARGET_ESP32C61
|
||||
# define SOC_TX0 16
|
||||
# elif CONFIG_IDF_TARGET_ESP32C5
|
||||
# define SOC_TX0 11
|
||||
# elif CONFIG_IDF_TARGET_ESP32C3
|
||||
@@ -58,7 +62,7 @@
|
||||
# define SOC_RX1 13
|
||||
# elif CONFIG_IDF_TARGET_ESP32S2
|
||||
# define SOC_RX1 18
|
||||
# elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6
|
||||
# elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61
|
||||
# define SOC_RX1 4
|
||||
# elif CONFIG_IDF_TARGET_ESP32S3
|
||||
# define SOC_RX1 15
|
||||
@@ -74,7 +78,7 @@
|
||||
# define SOC_TX1 15
|
||||
# elif CONFIG_IDF_TARGET_ESP32S2
|
||||
# define SOC_TX1 17
|
||||
# elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6
|
||||
# elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61
|
||||
# define SOC_TX1 5
|
||||
# elif CONFIG_IDF_TARGET_ESP32S3
|
||||
# define SOC_TX1 16
|
||||
@@ -97,6 +101,8 @@
|
||||
# define SOC_RX2 19
|
||||
# elif CONFIG_IDF_TARGET_ESP32C6
|
||||
# define SOC_RX2 6
|
||||
# elif CONFIG_IDF_TARGET_ESP32C61
|
||||
# define SOC_RX2 6
|
||||
# elif CONFIG_IDF_TARGET_ESP32C5
|
||||
# define SOC_RX2 6
|
||||
# else // if CONFIG_IDF_TARGET_ESP32
|
||||
@@ -116,6 +122,8 @@
|
||||
# define SOC_TX2 20
|
||||
# elif CONFIG_IDF_TARGET_ESP32C6
|
||||
# define SOC_TX2 7
|
||||
# elif CONFIG_IDF_TARGET_ESP32C61
|
||||
# define SOC_TX2 7
|
||||
# elif CONFIG_IDF_TARGET_ESP32C5
|
||||
# define SOC_TX2 7
|
||||
# else // if CONFIG_IDF_TARGET_ESP32
|
||||
|
||||
@@ -35,12 +35,12 @@ static_assert(false, "Implement processor architecture");
|
||||
#ifdef ESP32
|
||||
|
||||
/*
|
||||
#if CONFIG_IDF_TARGET_ESP32C6 || // support USB via HWCDC using JTAG interface
|
||||
#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61 || // support USB via HWCDC using JTAG interface
|
||||
CONFIG_IDF_TARGET_ESP32C3 || // support USB via HWCDC using JTAG interface
|
||||
CONFIG_IDF_TARGET_ESP32S2 || // support USB via USBCDC
|
||||
CONFIG_IDF_TARGET_ESP32S3 // support USB via HWCDC using JTAG interface or USBCDC
|
||||
*/
|
||||
# if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61 || CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
|
||||
# if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61 || CONFIG_IDF_TARGET_ESP32C61 || CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
|
||||
|
||||
// #if CONFIG_TINYUSB_CDC_ENABLED // This define is not recognized here so use USE_USB_CDC_CONSOLE
|
||||
# ifdef USE_USB_CDC_CONSOLE
|
||||
|
||||
@@ -155,7 +155,7 @@ IO_REG_TYPE directRead(IO_REG_TYPE pin)
|
||||
{
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5
|
||||
return (GPIO.in.val >> pin) & 0x1;
|
||||
#elif CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32P4
|
||||
#elif CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61 || CONFIG_IDF_TARGET_ESP32P4
|
||||
if ( pin < 32 )
|
||||
return (GPIO.in.val >> pin) & 0x1;
|
||||
else if ( pin < SOC_GPIO_PIN_COUNT )
|
||||
@@ -175,7 +175,7 @@ void directWriteLow(IO_REG_TYPE pin)
|
||||
{
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5
|
||||
GPIO.out_w1tc.val = ((uint32_t)1 << pin);
|
||||
#elif CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32P4
|
||||
#elif CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61 || CONFIG_IDF_TARGET_ESP32P4
|
||||
if ( pin < 32 )
|
||||
GPIO.out_w1tc.val = ((uint32_t)1 << pin);
|
||||
else if ( pin < SOC_GPIO_PIN_COUNT )
|
||||
@@ -194,7 +194,7 @@ void directWriteHigh(IO_REG_TYPE pin)
|
||||
{
|
||||
#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5
|
||||
GPIO.out_w1ts.val = ((uint32_t)1 << pin);
|
||||
#elif CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32P4
|
||||
#elif CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61 || CONFIG_IDF_TARGET_ESP32P4
|
||||
if ( pin < 32 )
|
||||
GPIO.out_w1ts.val = ((uint32_t)1 << pin);
|
||||
else if ( pin < SOC_GPIO_PIN_COUNT )
|
||||
@@ -226,7 +226,7 @@ void directModeInput(IO_REG_TYPE pin)
|
||||
}
|
||||
#endif
|
||||
// Input
|
||||
#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32P4
|
||||
#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61 || CONFIG_IDF_TARGET_ESP32P4
|
||||
if ( pin < 32 )
|
||||
GPIO.enable_w1tc.val = ((uint32_t)1 << pin);
|
||||
else
|
||||
@@ -259,7 +259,7 @@ void directModeOutput(IO_REG_TYPE pin)
|
||||
}
|
||||
#endif
|
||||
// Output
|
||||
#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32P4
|
||||
#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61 || CONFIG_IDF_TARGET_ESP32P4
|
||||
if ( pin < 32 )
|
||||
GPIO.enable_w1ts.val = ((uint32_t)1 << pin);
|
||||
else // already validated to pins <= 33
|
||||
|
||||
@@ -91,6 +91,8 @@ struct ImprovWiFiParamsStruct {
|
||||
"ESP32-C5"
|
||||
#elif defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
"ESP32-C6"
|
||||
#elif defined(CONFIG_IDF_TARGET_ESP32C61)
|
||||
"ESP32-C61"
|
||||
#elif defined(CONFIG_IDF_TARGET_ESP32H2)
|
||||
"ESP32-H2"
|
||||
#elif defined(ESP8266)
|
||||
|
||||
@@ -12,7 +12,7 @@ enum NeoBusChannel
|
||||
NeoBusChannel_0,
|
||||
NeoBusChannel_1,
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32C61)
|
||||
|
||||
NeoBusChannel_2,
|
||||
|
||||
@@ -35,7 +35,7 @@ enum NeoBusChannel
|
||||
NeoBusChannel_7,
|
||||
#endif // !defined(CONFIG_IDF_TARGET_ESP32S2)
|
||||
|
||||
#endif // !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#endif
|
||||
|
||||
#endif // ARDUINO_ARCH_ESP32
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ License along with NeoPixel. If not, see
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP32) && ESP_IDF_VERSION_MAJOR < 5 && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32C2)
|
||||
#if defined(ARDUINO_ARCH_ESP32) && ESP_IDF_VERSION_MAJOR < 5 && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32C61) && !defined(CONFIG_IDF_TARGET_ESP32C2)
|
||||
#include "NeoSettings.h"
|
||||
#include "NeoBusChannel.h"
|
||||
#include "NeoEsp32RmtMethod.h"
|
||||
|
||||
@@ -29,7 +29,7 @@ License along with NeoPixel. If not, see
|
||||
|
||||
#pragma once
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP32) && ESP_IDF_VERSION_MAJOR < 5 && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32C2)
|
||||
#if defined(ARDUINO_ARCH_ESP32) && ESP_IDF_VERSION_MAJOR < 5 && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32C61) && !defined(CONFIG_IDF_TARGET_ESP32C2)
|
||||
|
||||
/* General Reference documentation for the APIs used in this implementation
|
||||
LOW LEVEL: (what is actually used)
|
||||
@@ -454,7 +454,7 @@ public:
|
||||
const static rmt_channel_t RmtChannelNumber = RMT_CHANNEL_3;
|
||||
};
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32C61)
|
||||
|
||||
class NeoEsp32RmtChannel4
|
||||
{
|
||||
|
||||
@@ -308,7 +308,7 @@ public:
|
||||
rmt_channel_handle_t RmtChannelNumber = NULL;
|
||||
};
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C6) // C6 only 2 RMT channels ??
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32C61) // C6 only 2 RMT channels ??
|
||||
class NeoEsp32RmtChannel2
|
||||
{
|
||||
public:
|
||||
@@ -326,7 +326,7 @@ public:
|
||||
rmt_channel_handle_t RmtChannelNumber = NULL;
|
||||
};
|
||||
#endif // !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32C61)
|
||||
|
||||
class NeoEsp32RmtChannel4
|
||||
{
|
||||
@@ -582,7 +582,7 @@ typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedTx1812, NeoEsp32RmtChannel1> NeoEs
|
||||
typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed800Kbps, NeoEsp32RmtChannel1> NeoEsp32Rmt1800KbpsMethod;
|
||||
typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeed400Kbps, NeoEsp32RmtChannel1> NeoEsp32Rmt1400KbpsMethod;
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32C61)
|
||||
|
||||
typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2811, NeoEsp32RmtChannel2> NeoEsp32Rmt2Ws2811Method;
|
||||
typedef NeoEsp32RmtMethodBase<NeoEsp32RmtSpeedWs2812x, NeoEsp32RmtChannel2> NeoEsp32Rmt2Ws2812xMethod;
|
||||
@@ -689,7 +689,7 @@ typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedTx1812, NeoEsp32RmtChannel
|
||||
typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed800Kbps, NeoEsp32RmtChannel1> NeoEsp32Rmt1800KbpsInvertedMethod;
|
||||
typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed400Kbps, NeoEsp32RmtChannel1> NeoEsp32Rmt1400KbpsInvertedMethod;
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32C61)
|
||||
|
||||
typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2811, NeoEsp32RmtChannel2> NeoEsp32Rmt2Ws2811InvertedMethod;
|
||||
typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeedWs2812x, NeoEsp32RmtChannel2> NeoEsp32Rmt2Ws2812xInvertedMethod;
|
||||
@@ -763,13 +763,13 @@ typedef NeoEsp32RmtMethodBase<NeoEsp32RmtInvertedSpeed400Kbps, NeoEsp32RmtChanne
|
||||
#endif // !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
|
||||
|
||||
#if defined(NEOPIXEL_ESP32_RMT_DEFAULT) || defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C5) || defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if defined(NEOPIXEL_ESP32_RMT_DEFAULT) || defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C5) || defined(CONFIG_IDF_TARGET_ESP32C6) || defined(CONFIG_IDF_TARGET_ESP32C61)
|
||||
|
||||
// Normally I2s method is the default, defining NEOPIXEL_ESP32_RMT_DEFAULT
|
||||
// will switch to use RMT as the default method
|
||||
// The ESP32S2 & ESP32C3 will always defualt to RMT
|
||||
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C5) || defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C5) || defined(CONFIG_IDF_TARGET_ESP32C6) || defined(CONFIG_IDF_TARGET_ESP32C61)
|
||||
|
||||
// RMT channel 1 method is the default method for Esp32S2 & Esp32C3
|
||||
typedef NeoEsp32Rmt1Ws2812xMethod NeoWs2813Method;
|
||||
|
||||
@@ -30,7 +30,7 @@ License along with NeoPixel. If not, see
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP32) && ESP_IDF_VERSION_MAJOR >= 5
|
||||
|
||||
#if (defined(CONFIG_IDF_TARGET_ESP32C5) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C2) || defined(CONFIG_IDF_TARGET_ESP32C6)) && !defined(HSPI_HOST)
|
||||
#if (defined(CONFIG_IDF_TARGET_ESP32C5) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32C2) || defined(CONFIG_IDF_TARGET_ESP32C6) || defined(CONFIG_IDF_TARGET_ESP32C61)) && !defined(HSPI_HOST)
|
||||
// HSPI_HOST depreciated in C3
|
||||
#define HSPI_HOST SPI2_HOST
|
||||
#endif
|
||||
|
||||
@@ -29,7 +29,7 @@ License along with NeoPixel. If not, see
|
||||
#include <Arduino.h>
|
||||
|
||||
// ESP32C3 I2S is not supported yet
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32P4)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C5) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32C61) && !defined(CONFIG_IDF_TARGET_ESP32P4)
|
||||
#if !defined(ARDUINO_ARCH_ESP8266)
|
||||
#include "soc/gpio_periph.h"
|
||||
#endif
|
||||
|
||||
@@ -29,7 +29,7 @@ License along with NeoPixel. If not, see
|
||||
#if defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32)
|
||||
|
||||
// ESP32C3 I2S is not supported yet
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6)
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32C61)
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP8266)
|
||||
#include <eagle_soc.h>
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ extra_configs =
|
||||
platformio_esp32c3_envs.ini
|
||||
platformio_esp32c5_envs.ini
|
||||
platformio_esp32c6_envs.ini
|
||||
; platformio_esp32c61_envs.ini
|
||||
platformio_esp32c61_envs.ini
|
||||
platformio_esp32p4_envs.ini
|
||||
|
||||
|
||||
|
||||
@@ -166,9 +166,11 @@ extra_scripts = ${esp82xx_common.extra_scripts}
|
||||
[core_esp32_IDF5_5_1__3_3_3_LittleFS]
|
||||
;platform = https://github.com/Jason2866/platform-espressif32.git#Arduino/IDF55_gcc15
|
||||
;platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/0410-1232-5.5/framework-arduinoespressif32-release_v5.5-2f303469.tar.xz
|
||||
platform = https://github.com/Jason2866/platform-espressif32.git#23aed73e4e570d3b6608c15677fea01d6a722d94
|
||||
;platform_packages =
|
||||
platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/0711-1952-5.5/framework-arduinoespressif32-release_v5.5-deb3f45f.tar.xz
|
||||
|
||||
;platform = https://github.com/Jason2866/platform-espressif32.git#23aed73e4e570d3b6608c15677fea01d6a722d94
|
||||
;platform_packages = framework-arduinoespressif32 @ https://github.com/Jason2866/esp32-arduino-lib-builder/releases/download/1311-2008-5.5_orig/framework-arduinoespressif32-release_v5.5_orig-276436da.tar.xz
|
||||
platform = https://github.com/Jason2866/platform-espressif32.git#Arduino/IDF55
|
||||
platform_packages =
|
||||
|
||||
custom_remove_include = true
|
||||
build_flags = -DESP32_STAGE
|
||||
|
||||
@@ -4,11 +4,16 @@ build_flags = ${esp32_base_idf5_5.build_flags}
|
||||
-DFEATURE_ARDUINO_OTA=1
|
||||
-DUSE_LITTLEFS
|
||||
-DESP32C61
|
||||
-DDISABLE_NEOPIXEL_PLUGINS=1
|
||||
extra_scripts = ${esp32_base_idf5_5.extra_scripts}
|
||||
build_unflags = ${esp32_base_idf5_5.build_unflags}
|
||||
-fexceptions
|
||||
board_build.filesystem = littlefs
|
||||
lib_ignore = ${esp32_base_idf5_5.lib_ignore}
|
||||
NeoPixelBus
|
||||
Adafruit NeoPixel
|
||||
NeoPixelBus_wrapper
|
||||
Adafruit NeoMatrix via NeoPixelBus
|
||||
board = esp32c61cdc
|
||||
|
||||
|
||||
|
||||
@@ -477,7 +477,7 @@ bool ESPEasyWiFi_t::connectSTA()
|
||||
|
||||
WiFiEventData.warnedNoValidWiFiSettings = false;
|
||||
*/
|
||||
setSTA(true);
|
||||
WiFi_pre_STA_setup();
|
||||
# if defined(ESP8266)
|
||||
wifi_station_set_hostname(NetworkCreateRFCCompliantHostname().c_str());
|
||||
|
||||
|
||||
@@ -30,6 +30,9 @@ bool WiFi_pre_setup() {
|
||||
bool WiFi_pre_STA_setup() {
|
||||
if (!doSetSTA(true)) { return false; }
|
||||
|
||||
// FIXME TD-er: Should ESP8266 first disable autoconnect/autoreconnect?
|
||||
// On ESP32 this does clear the last used credentials, so it will be able to accept different credentials to connect to.
|
||||
|
||||
// Assign to 2 separate bools to make sure both are executed.
|
||||
const bool autoConnect = WiFi.setAutoConnect(true);
|
||||
const bool autoReconnect = WiFi.setAutoReconnect(true);
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
|
||||
|
||||
#ifndef CONFIG_SOC_WIFI_HE_SUPPORT
|
||||
#if CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61
|
||||
#if CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61 || CONFIG_IDF_TARGET_ESP32C61
|
||||
#define CONFIG_SOC_WIFI_HE_SUPPORT 1
|
||||
#else
|
||||
#define CONFIG_SOC_WIFI_HE_SUPPORT 0
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
#ifdef ESP32
|
||||
|
||||
/*
|
||||
#if CONFIG_IDF_TARGET_ESP32C6 || // support USB via HWCDC using JTAG interface
|
||||
#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61 || // support USB via HWCDC using JTAG interface
|
||||
CONFIG_IDF_TARGET_ESP32C3 || // support USB via HWCDC using JTAG interface
|
||||
CONFIG_IDF_TARGET_ESP32S2 || // support USB via USBCDC
|
||||
CONFIG_IDF_TARGET_ESP32S3 // support USB via HWCDC using JTAG interface or USBCDC
|
||||
|
||||
@@ -866,7 +866,7 @@ bool SettingsStruct_tmpl<N_TASKS>::getPinBootStateIndex(
|
||||
|
||||
index_high = gpio_pin - maxStates;
|
||||
|
||||
# if defined(ESP32_CLASSIC) || defined(ESP32C2) || defined(ESP32C3) || defined(ESP32C5) || defined(ESP32C5) || defined(ESP32C6)
|
||||
# if defined(ESP32_CLASSIC) || defined(ESP32C2) || defined(ESP32C3) || defined(ESP32C5) || defined(ESP32C5) || defined(ESP32C6) || defined(ESP32C61)
|
||||
|
||||
// These can all store in the PinBootStates_ESP32 array
|
||||
return (index_high < maxStatesesp32);
|
||||
|
||||
@@ -16,6 +16,10 @@
|
||||
|
||||
#include <ESPEasySerialPort.h>
|
||||
|
||||
#ifdef ESP32
|
||||
#include <esp32-hal-periman.h>
|
||||
#endif
|
||||
|
||||
|
||||
EspEasy_Console_t::EspEasy_Console_t() :
|
||||
_mainSerial(LOG_TO_SERIAL)
|
||||
@@ -236,6 +240,13 @@ void EspEasy_Console_t::begin(uint32_t baudrate)
|
||||
|
||||
if (_fallbackSerial._serial != nullptr) {
|
||||
_fallbackSerial._serial->begin(baudrate);
|
||||
|
||||
#ifdef ESP32
|
||||
// Need to have this string as C-string, not F-string
|
||||
perimanSetPinBusExtraType(SOC_RX0, "Console");
|
||||
perimanSetPinBusExtraType(SOC_TX0, "Console");
|
||||
#endif
|
||||
|
||||
addLog(LOG_LEVEL_INFO, F("ESPEasy console fallback enabled"));
|
||||
}
|
||||
#endif // if USES_ESPEASY_CONSOLE_FALLBACK_PORT
|
||||
|
||||
@@ -456,6 +456,8 @@ int getCPU_MaxFreqMHz()
|
||||
return 160;
|
||||
#elif CONFIG_IDF_TARGET_ESP32C6
|
||||
return 160;
|
||||
#elif CONFIG_IDF_TARGET_ESP32C61
|
||||
return 120;
|
||||
#elif CONFIG_IDF_TARGET_ESP32C5
|
||||
return 240;
|
||||
#elif CONFIG_IDF_TARGET_ESP32H2
|
||||
@@ -734,6 +736,32 @@ void readBootCause() {
|
||||
case JTAG_RESET : lastBootCause = BOOT_CAUSE_MANUAL_REBOOT; break; /**<24, jtag reset CPU*/
|
||||
}
|
||||
|
||||
#elif defined(ESP32C61)
|
||||
switch (rtc_get_reset_reason(0)) {
|
||||
case NO_MEAN : break;
|
||||
case POWERON_RESET : lastBootCause = BOOT_CAUSE_MANUAL_REBOOT; break; /**<1, Vbat power on reset*/
|
||||
case RTC_SW_SYS_RESET : lastBootCause = BOOT_CAUSE_SOFT_RESTART; break; /**<3, Software reset digital core*/
|
||||
case DEEPSLEEP_RESET : lastBootCause = BOOT_CAUSE_DEEP_SLEEP; break; /**<5, Deep Sleep reset digital core*/
|
||||
|
||||
case RTC_PWR_GLITCH_RESET : lastBootCause = BOOT_CAUSE_POWER_UNSTABLE; break;
|
||||
case CPU_LOCKUP_RESET : lastBootCause = BOOT_CAUSE_EXT_WD; break;
|
||||
|
||||
case TG0WDT_SYS_RESET : lastBootCause = BOOT_CAUSE_EXT_WD; break; /**<7, Timer Group0 Watch dog reset digital core*/
|
||||
case TG1WDT_SYS_RESET : lastBootCause = BOOT_CAUSE_EXT_WD; break; /**<8, Timer Group1 Watch dog reset digital core*/
|
||||
case RTCWDT_SYS_RESET : lastBootCause = BOOT_CAUSE_EXT_WD; break; /**<9, RTC Watch dog Reset digital core*/
|
||||
case TG0WDT_CPU_RESET : lastBootCause = BOOT_CAUSE_EXT_WD; break; /**<11, Time Group0 reset CPU*/
|
||||
case RTC_SW_CPU_RESET : lastBootCause = BOOT_CAUSE_SOFT_RESTART; break; /**<12, Software reset CPU*/
|
||||
case RTCWDT_CPU_RESET : lastBootCause = BOOT_CAUSE_EXT_WD; break; /**<13, RTC Watch dog Reset CPU*/
|
||||
case RTCWDT_BROWN_OUT_RESET : lastBootCause = BOOT_CAUSE_POWER_UNSTABLE; break; /**<15, Reset when the vdd voltage is not stable*/
|
||||
case RTCWDT_RTC_RESET : lastBootCause = BOOT_CAUSE_EXT_WD; break; /**<16, RTC Watch dog reset digital core and rtc module*/
|
||||
case TG1WDT_CPU_RESET : lastBootCause = BOOT_CAUSE_EXT_WD; break; /**<17, Time Group1 reset CPU*/
|
||||
case SUPER_WDT_RESET : lastBootCause = BOOT_CAUSE_EXT_WD; break; /**<18, super watchdog reset digital core and rtc module*/
|
||||
case EFUSE_RESET : lastBootCause = BOOT_CAUSE_MANUAL_REBOOT; break; /**<20, efuse reset digital core*/
|
||||
case USB_UART_CHIP_RESET : lastBootCause = BOOT_CAUSE_MANUAL_REBOOT; break; /**<21, usb uart reset digital core */
|
||||
case USB_JTAG_CHIP_RESET : lastBootCause = BOOT_CAUSE_MANUAL_REBOOT; break; /**<22, usb jtag reset digital core */
|
||||
case JTAG_RESET : lastBootCause = BOOT_CAUSE_MANUAL_REBOOT; break; /**<24, jtag reset CPU*/
|
||||
}
|
||||
|
||||
#elif defined(ESP32P4)
|
||||
switch (rtc_get_reset_reason(0)) {
|
||||
case NO_MEAN : break;
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
# include <driver/adc.h>
|
||||
# endif // if ESP_IDF_VERSION_MAJOR >= 5
|
||||
|
||||
# if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6
|
||||
# if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32C61
|
||||
/**
|
||||
* On ESP32C3, ADC2 is no longer supported, due to its HW limitation.
|
||||
* Search for errata on espressif website for more details.
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
#include "../Helpers/Hardware_GPIO.h"
|
||||
|
||||
#ifdef ESP32C61
|
||||
# include <driver/gpio.h>
|
||||
|
||||
# include "../Helpers/Hardware_device_info.h"
|
||||
|
||||
// ********************************************************************************
|
||||
// Get info of a specific GPIO pin
|
||||
// ********************************************************************************
|
||||
|
||||
bool getGpioInfo(int gpio, int& pinnr, bool& input, bool& output, bool& warning) {
|
||||
pinnr = -1; // ESP32 does not label the pins, they just use the GPIO number.
|
||||
|
||||
input = GPIO_IS_VALID_GPIO(gpio);
|
||||
output = GPIO_IS_VALID_OUTPUT_GPIO(gpio);
|
||||
warning = isBootStrapPin(gpio);
|
||||
|
||||
if (!(GPIO_IS_VALID_GPIO(gpio))) { return false; }
|
||||
|
||||
if (gpio == 27) {
|
||||
// By default VDD_SPI is the power supply pin for embedded flash or external flash. It can only be used as GPIO
|
||||
// only when the chip is connected to an external flash, and this flash is powered by an external power supply
|
||||
input = false;
|
||||
output = false;
|
||||
warning = true;
|
||||
}
|
||||
|
||||
if (isFlashInterfacePin_ESPEasy(gpio)) {
|
||||
// Connected to the integrated SPI flash.
|
||||
input = false;
|
||||
output = false;
|
||||
warning = true;
|
||||
}
|
||||
|
||||
if ((gpio == PIN_USB_D_MIN) || (gpio == PIN_USB_D_PLUS)) {
|
||||
// USB OTG and USB Serial/JTAG function. USB signal is a differential
|
||||
// signal transmitted over a pair of D+ and D- wires.
|
||||
warning = true;
|
||||
}
|
||||
|
||||
return (input || output);
|
||||
}
|
||||
|
||||
bool isBootModePin(int gpio)
|
||||
{
|
||||
return gpio == 9;
|
||||
}
|
||||
|
||||
bool isBootStrapPin(int gpio)
|
||||
{
|
||||
// See: https://www.espressif.com/sites/default/files/documentation/esp32-c6_datasheet_en.pdf
|
||||
// Chapter 3 - Boot Configurations
|
||||
if (gpio == 8) {
|
||||
// Strapping pin which must be high during flashing
|
||||
// ROM message printing
|
||||
return true;
|
||||
}
|
||||
|
||||
if (gpio == 9) {
|
||||
// Strapping pin to force download mode (like GPIO-0 on ESP8266/ESP32-classic)
|
||||
// internal Weak pull-up, must be pulled down to enter download boot mode.
|
||||
return true;
|
||||
}
|
||||
|
||||
// Ignoring SDIO stapping pins as this will not be used in typical use cases where ESPEasy is used.
|
||||
/*
|
||||
if (gpio == 4 || gpio == 5) {
|
||||
// SDIO Sampling and Driving Clock Edge
|
||||
// MTMS = GPIO-4
|
||||
// MTDI = Gpio-5
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
|
||||
if (gpio == 15) {
|
||||
// JTAG signal source
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool getGpioPullResistor(int gpio, bool& hasPullUp, bool& hasPullDown) {
|
||||
hasPullDown = false;
|
||||
hasPullUp = false;
|
||||
|
||||
if (validGpio(gpio)) {
|
||||
hasPullUp = true;
|
||||
hasPullDown = true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool validGpio(int gpio) {
|
||||
if (!GPIO_IS_VALID_GPIO(gpio)) { return false; }
|
||||
|
||||
int pinnr;
|
||||
bool input;
|
||||
bool output;
|
||||
bool warning;
|
||||
|
||||
return getGpioInfo(gpio, pinnr, input, output, warning);
|
||||
}
|
||||
|
||||
// Get ADC related info for a given GPIO pin
|
||||
// @param gpio_pin GPIO pin number
|
||||
// @param adc Number of ADC unit (0 == Hall effect)
|
||||
// @param ch Channel number on ADC unit
|
||||
// @param t index of touch pad ID
|
||||
bool getADC_gpio_info(int gpio_pin, int& adc, int& ch, int& t)
|
||||
{
|
||||
adc = -1;
|
||||
ch = -1;
|
||||
t = -1;
|
||||
|
||||
if ((gpio_pin >= 0) && (gpio_pin <= 6)) {
|
||||
adc = 1;
|
||||
ch = gpio_pin;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
#if SOC_TOUCH_SENSOR_SUPPORTED
|
||||
int touchPinToGpio(int touch_pin)
|
||||
{
|
||||
// No touch pin support
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if SOC_DAC_SUPPORTED
|
||||
// Get DAC related info for a given GPIO pin
|
||||
// @param gpio_pin GPIO pin number
|
||||
// @param dac Number of DAC unit
|
||||
bool getDAC_gpio_info(int gpio_pin, int& dac)
|
||||
{
|
||||
// ESP32-C3, ESP32-S3, ESP32-C2, ESP32-C6 and ESP32-H2 don't have a DAC onboard
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // ifdef ESP32C61
|
||||
@@ -86,6 +86,8 @@ static_assert(false, "Implement processor architecture");
|
||||
# define SOC_RX0 44
|
||||
# elif CONFIG_IDF_TARGET_ESP32C6
|
||||
# define SOC_RX0 17
|
||||
# elif CONFIG_IDF_TARGET_ESP32C61
|
||||
# define SOC_RX0 17
|
||||
# elif CONFIG_IDF_TARGET_ESP32C5
|
||||
# define SOC_RX0 12
|
||||
# elif CONFIG_IDF_TARGET_ESP32C3
|
||||
@@ -104,6 +106,8 @@ static_assert(false, "Implement processor architecture");
|
||||
# define SOC_TX0 43
|
||||
# elif CONFIG_IDF_TARGET_ESP32C6
|
||||
# define SOC_TX0 16
|
||||
# elif CONFIG_IDF_TARGET_ESP32C61
|
||||
# define SOC_TX0 16
|
||||
# elif CONFIG_IDF_TARGET_ESP32C5
|
||||
# define SOC_TX0 11
|
||||
# elif CONFIG_IDF_TARGET_ESP32C3
|
||||
@@ -126,6 +130,9 @@ static_assert(false, "Implement processor architecture");
|
||||
#ifdef ESP32C6
|
||||
#define PIN_USB_D_MIN 12
|
||||
#endif
|
||||
#ifdef ESP32C61
|
||||
#define PIN_USB_D_MIN 12 // TODO TD-er: Check
|
||||
#endif
|
||||
#ifdef ESP32C5
|
||||
#define PIN_USB_D_MIN 13
|
||||
#endif
|
||||
@@ -145,6 +152,9 @@ static_assert(false, "Implement processor architecture");
|
||||
#ifdef ESP32C6
|
||||
#define PIN_USB_D_PLUS 13
|
||||
#endif
|
||||
#ifdef ESP32C61
|
||||
#define PIN_USB_D_PLUS 13 // TODO TD-er: Check
|
||||
#endif
|
||||
#ifdef ESP32C5
|
||||
#define PIN_USB_D_PLUS 14
|
||||
#endif
|
||||
|
||||
@@ -223,7 +223,7 @@ String getChipFeaturesString() {
|
||||
}
|
||||
|
||||
bool getFlashChipOPI_wired() {
|
||||
# if defined(ESP32_CLASSIC) || defined(ESP32C2)
|
||||
# if defined(ESP32_CLASSIC) || defined(ESP32C2) || defined(ESP32C61)
|
||||
return false;
|
||||
|
||||
# else // ifdef ESP32_CLASSIC
|
||||
@@ -247,7 +247,7 @@ uint32_t getFlashChipSpeed() {
|
||||
// for which patches have been submitted and somehow they managed to merge it completely wrong.
|
||||
return ESP.getFlashChipSpeed();
|
||||
# else // if ESP_IDF_STILL_NEEDS_SPI_REGISTERS_FIXED
|
||||
#ifdef ESP32P4
|
||||
#if defined(ESP32P4) || defined(ESP32C61)
|
||||
// TODO TD-er: Implement
|
||||
// return 80000000;
|
||||
return ESP.getFlashChipSpeed();
|
||||
|
||||
@@ -3,6 +3,84 @@
|
||||
#ifdef ESP32C61
|
||||
|
||||
|
||||
# include <soc/soc.h>
|
||||
# include <soc/efuse_reg.h>
|
||||
# include <soc/spi_reg.h>
|
||||
# include <soc/spi_pins.h>
|
||||
# include <soc/rtc.h>
|
||||
# include <esp_chip_info.h>
|
||||
# include <bootloader_common.h>
|
||||
|
||||
|
||||
bool isFlashInterfacePin_ESPEasy(int gpio) {
|
||||
// FIXME TD-er: Must know whether we have internal or external flash
|
||||
|
||||
// For chip variants with an in-package flash, this pin can not be used.
|
||||
|
||||
// FIXME TD-er: No idea where these pins come from. Disabled for now.
|
||||
// See: https://github.com/letscontrolit/ESPEasy/issues/5220
|
||||
|
||||
/*
|
||||
if ((gpio == 10) || (gpio == 11)) {
|
||||
return true;
|
||||
}
|
||||
*/
|
||||
|
||||
// For chip variants without an in-package flash, this pin can not be used.
|
||||
// if (gpio == 14)
|
||||
// return true;
|
||||
|
||||
// GPIO-27: Flash voltage selector
|
||||
// GPIO-24 ... 30: Connected to internal flash (might be available when using external flash???)
|
||||
|
||||
switch (gpio) {
|
||||
#if ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(5, 4, 0)
|
||||
case SPI_IOMUX_PIN_NUM_CS:
|
||||
case SPI_IOMUX_PIN_NUM_CLK:
|
||||
case SPI_IOMUX_PIN_NUM_MOSI:
|
||||
case SPI_IOMUX_PIN_NUM_MISO:
|
||||
case SPI_IOMUX_PIN_NUM_WP:
|
||||
case SPI_IOMUX_PIN_NUM_HD:
|
||||
#else
|
||||
case MSPI_IOMUX_PIN_NUM_HD:
|
||||
case MSPI_IOMUX_PIN_NUM_WP:
|
||||
case MSPI_IOMUX_PIN_NUM_CS0:
|
||||
case MSPI_IOMUX_PIN_NUM_CLK:
|
||||
case MSPI_IOMUX_PIN_NUM_MOSI:
|
||||
case MSPI_IOMUX_PIN_NUM_MISO:
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
// return (gpio) >= 24 && (gpio) <= 30 && gpio != 27;
|
||||
}
|
||||
|
||||
bool flashVddPinCanBeUsedAsGPIO()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
int32_t getEmbeddedFlashSize()
|
||||
{
|
||||
return 8; // TODO TD-er: Must implement
|
||||
// See: framework-arduinoespressif32\tools\esp32-arduino-libs\esp32c61\include\soc\esp32c61\include\soc\efuse_reg.h
|
||||
}
|
||||
|
||||
int32_t getEmbeddedPSRAMSize()
|
||||
{
|
||||
// Doesn't have PSRAM
|
||||
return 0;
|
||||
}
|
||||
|
||||
# ifndef isPSRAMInterfacePin
|
||||
bool isPSRAMInterfacePin(int gpio) {
|
||||
return false;
|
||||
}
|
||||
|
||||
# endif // ifndef isPSRAMInterfacePin
|
||||
|
||||
|
||||
const __FlashStringHelper* getChipModel(uint32_t chip_model, uint32_t chip_revision, uint32_t pkg_version, bool single_core)
|
||||
{
|
||||
if (20 == chip_model) { // ESP32-C61
|
||||
|
||||
@@ -212,6 +212,10 @@ const __FlashStringHelper* getConflictingUse_flashstr(int gpio, PinSelectPurpose
|
||||
return F("Flash Vdd");
|
||||
}
|
||||
|
||||
#elif defined(ESP32C61)
|
||||
|
||||
// TODO TD-er: Must check if C61 has conflicts here
|
||||
|
||||
#elif defined(ESP32C2) || defined(ESP32C3)
|
||||
|
||||
if (gpio == 11) {
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
#include <esp32c5/rom/rtc.h>
|
||||
#elif defined(ESP32C6)
|
||||
#include <esp32c6/rom/rtc.h>
|
||||
#elif defined(ESP32C61)
|
||||
#include <esp32c61/rom/rtc.h>
|
||||
#elif defined(ESP32P4)
|
||||
#include <esp32p4/rom/rtc.h>
|
||||
# elif defined(ESP32_CLASSIC)
|
||||
@@ -233,6 +235,31 @@ const __FlashStringHelper * getResetReasonString_f(uint8_t icore, bool& isDEEPSL
|
||||
case JTAG_RESET : return F("jtag reset CPU");
|
||||
}
|
||||
|
||||
#elif defined(ESP32C61)
|
||||
|
||||
// See tools\sdk\esp32\include\esp_rom\include\esp32c61\rom\rtc.h
|
||||
switch (rtc_get_reset_reason(icore)) {
|
||||
case NO_MEAN : break;
|
||||
case POWERON_RESET : return F("Vbat power on reset");
|
||||
case RTC_SW_SYS_RESET : return F("Software reset digital core (hp system)");
|
||||
case DEEPSLEEP_RESET : isDEEPSLEEP_RESET = true; break;
|
||||
//case DEEPSLEEP_RESET : return F("Deep Sleep reset digital core (hp system)");
|
||||
case TG0WDT_SYS_RESET : return F("Timer Group0 Watch dog reset digital core (hp system)");
|
||||
case TG1WDT_SYS_RESET : return F("Timer Group1 Watch dog reset digital core (hp system)");
|
||||
case RTCWDT_SYS_RESET : return F("RTC Watch dog Reset digital core (hp system)");
|
||||
case TG0WDT_CPU_RESET : return F("Time Group0 reset CPU");
|
||||
case RTC_SW_CPU_RESET : return F("Software reset CPU");
|
||||
case RTCWDT_CPU_RESET : return F("RTC Watch dog Reset CPU");
|
||||
case RTCWDT_BROWN_OUT_RESET : return F("Reset when the vdd voltage is not stable");
|
||||
case RTCWDT_RTC_RESET : return F("RTC Watch dog reset digital core and rtc module");
|
||||
case TG1WDT_CPU_RESET : return F("Time Group1 reset CPU");
|
||||
case SUPER_WDT_RESET : return F("super watchdog reset digital core and rtc module");
|
||||
case EFUSE_RESET : return F("efuse reset digital core (hp system)");
|
||||
case USB_UART_CHIP_RESET : return F("usb uart reset digital core (hp system)");
|
||||
case USB_JTAG_CHIP_RESET : return F("usb jtag reset digital core (hp system)");
|
||||
case JTAG_RESET : return F("jtag reset CPU");
|
||||
}
|
||||
|
||||
#elif defined(ESP32P4)
|
||||
|
||||
// See tools\sdk\esp32\include\esp_rom\include\esp32p4\rom\rtc.h
|
||||
|
||||
@@ -21,7 +21,7 @@ def get_max_bin_size(env_name, file_suffix):
|
||||
if "4M316k" in env_name or "_ESP32_4M2M" in env_name:
|
||||
# ESP32 with 1800k of sketch space.
|
||||
max_bin_size = 1900544
|
||||
if "_ESP32_" in env_name or "_ESP32c5_" in env_name or "_ESP32c6_" in env_name or "_ESP32s2_" in env_name or "_ESP32s3_" in env_name:
|
||||
if "_ESP32_" in env_name or "_ESP32c5_" in env_name or "_ESP32c6_" in env_name or "_ESP32c61_" in env_name or "_ESP32s2_" in env_name or "_ESP32s3_" in env_name:
|
||||
if "_8M1M" in env_name:
|
||||
# ESP32 with 3520k of sketch space.
|
||||
max_bin_size = 3604480
|
||||
|
||||
Reference in New Issue
Block a user