add board ESP32-C6 4mb and 8mb

This commit is contained in:
Mit4el
2024-11-22 22:45:10 +03:00
parent 6820460915
commit d392858cb1
13 changed files with 284 additions and 21 deletions

View File

@@ -1,5 +1,5 @@
#include "DebugTrace.h"
#if defined(RESTART_DEBUG_INFO) && defined(ESP32) && !defined(esp32c3m_4mb)
#if defined(RESTART_DEBUG_INFO)
// #ifdef RESTART_DEBUG_INFO
__NOINIT_ATTR static re_restart_debug_t _debug_info;
@@ -282,12 +282,14 @@ void sendDebugTraceAndFreeMemory(bool postMsg)
void printDebugTrace() {}
void sendDebugTraceAndFreeMemory(bool) {}
//void IRAM_ATTR debugUpdate() {}
#if !defined(esp32c6_4mb) && !defined(esp32c6_8mb)
extern "C" void __wrap_esp_panic_handler(void *info)
{
// Call the original panic handler function to finish processing this error (creating a core dump for example...)
__real_esp_panic_handler(info);
}
#endif // RESTART_DEBUG_INFO
#endif //esp32c6
#endif // !RESTART_DEBUG_INFO
#if defined(ESP32)
@@ -299,8 +301,10 @@ extern "C" void __wrap_esp_panic_handler(void *info)
void startWatchDog()
{
#if !defined(esp32c6_4mb) && !defined(esp32c6_8mb) //TODO esp32-c6 переписать esp_task_wdt_init
esp_task_wdt_init(WDT_TIMEOUT, true); // enable panic so ESP32 restarts
esp_task_wdt_add(NULL); // add current thread to WDT watch
#endif
}
extern "C" bool verifyRollbackLater()

View File

@@ -1,5 +1,8 @@
#include "EspFileSystem.h"
#include "Global.h"
#if defined(esp32c6_4mb) || defined(esp32c6_8mb)
#include "esp_mac.h"
#endif
bool fileSystemInit()
{
@@ -149,7 +152,7 @@ const String getMacAddress()
char buf[13] = { 0 };
#if defined(ESP8266)
WiFi.macAddress(mac);
sprintf(buf, MACSTR, MAC2STR(mac));
sprintf(buf, MACSTR, MAC2STR(mac));
#elif defined(ESP32)
esp_read_mac(mac, ESP_MAC_WIFI_STA);
sprintf(buf, MACSTR, mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);

View File

@@ -104,7 +104,7 @@ void setup() {
Serial.begin(115200);
Serial.flush();
//----------- Отладка EXCEPTION (функции с заглушками для отключения) ---------
#if defined(RESTART_DEBUG_INFO) && defined(ESP32) && !defined(esp32c3m_4mb)
#if defined(RESTART_DEBUG_INFO)
//Привязка коллбэк функции для вызова при перезагрузке
esp_register_shutdown_handler(debugUpdate);
#endif // RESTART_DEBUG_INFO
@@ -156,7 +156,7 @@ void setup() {
#endif
SerialPrint("i", "i2c", F("i2c pins overriding done"));
}
#if defined(RESTART_DEBUG_INFO) && defined(ESP32) && !defined(esp32c3m_4mb)
#if defined(RESTART_DEBUG_INFO)
esp_reset_reason_t esp_reason = esp_reset_reason();
if (esp_reason == ESP_RST_UNKNOWN || esp_reason == ESP_RST_POWERON)
bootloop_panic_count = 0;
@@ -291,7 +291,7 @@ void setup() {
Serial.println("--------test end---------");
stopErrorMarker(SETUPLAST_ERRORMARKER);
#if defined(RESTART_DEBUG_INFO) && defined(ESP32) && !defined(esp32c3m_4mb)
#if defined(RESTART_DEBUG_INFO)
bootloop_panic_count = 0;
#endif // RESTART_DEBUG_INFO
}

View File

@@ -64,7 +64,7 @@ String ESP_getResetReason(void) {
return ESP.getResetReason();
}
#endif
#if defined(esp32s2_4mb) || defined(esp32s3_16mb) || defined(esp32c3m_4mb)
#if defined(esp32s2_4mb) || defined(esp32s3_16mb) || defined(esp32c3m_4mb) || defined(esp32c6_4mb) || defined(esp32c6_8mb)
String ESP_getResetReason(void) {
// return ESP32GetResetReason(0); // CPU 0
esp_reset_reason_t esp_reason = esp_reset_reason();
@@ -102,8 +102,8 @@ String ESP32GetResetReason(uint32_t cpu_no) {
return F("Timer Group1 Watchdog reset digital core"); // 8
case RTCWDT_SYS_RESET:
return F("RTC Watchdog Reset digital core"); // 9
case INTRUSION_RESET:
return F("Instrusion tested to reset CPU"); // 10
// case INTRUSION_RESET:
// return F("Instrusion tested to reset CPU"); // 10
case TG0WDT_CPU_RESET:
return F("Time Group reset CPU"); // 11
case RTC_SW_CPU_RESET:

View File

@@ -92,6 +92,12 @@
"esp32*": [
"dfrobot/DFRobotDFPlayerMini @ ^1.0.5"
],
"esp32c6_4mb": [
"exclude"
],
"esp32c6_8mb": [
"exclude"
],
"esp82*": [
"dfrobot/DFRobotDFPlayerMini @ ^1.0.5"
]

View File

@@ -8,15 +8,15 @@
extern IoTGpio IoTgpio;
class Pwm32 : public IoTItem {
private:
private:
int _pin;
int _freq;
int _freq;
int _apin, _oldValue;
bool _freezVal = true;
int _ledChannel;
int _ledChannel;
int _resolution;
public:
public:
Pwm32(String parameters): IoTItem(parameters) {
_interval = _interval / 1000; // корректируем величину интервала int, теперь он в миллисекундах
@@ -24,10 +24,14 @@ class Pwm32 : public IoTItem {
jsonRead(parameters, "freq", _freq);
jsonRead(parameters, "ledChannel", _ledChannel);
jsonRead(parameters, "PWM_resolution", _resolution);
pinMode(_pin, OUTPUT);
#if defined(esp32c6_4mb) || defined(esp32c6_8mb)
ledcAttachChannel(_pin, _freq, _resolution, _ledChannel);
#else
ledcSetup(_ledChannel, _freq, _resolution);
ledcAttachPin(_pin, _ledChannel);
#endif
ledcWrite(_ledChannel, value.valD);
_resolution = pow(2, _resolution); // переводим биты в значение
@@ -53,7 +57,7 @@ class Pwm32 : public IoTItem {
}
}
}
void setValue(const IoTValue& Value, bool genEvent = true) {
value = Value;
ledcWrite(_ledChannel, value.valD);

View File

@@ -42,6 +42,12 @@
"esp32*": [
"https://github.com/milesburton/Arduino-Temperature-Control-Library"
],
"esp32c6_4mb": [
"https://github.com/pstolarz/Arduino-Temperature-Control-Library.git#OneWireNg"
],
"esp32c6_8mb": [
"https://github.com/pstolarz/Arduino-Temperature-Control-Library.git#OneWireNg"
],
"esp82*": [
"https://github.com/milesburton/Arduino-Temperature-Control-Library"
]

View File

@@ -17,7 +17,11 @@ IPAddress stringToIp(String strIp)
void routerConnect()
{
#if !defined LIBRETINY
#if defined(esp32c6_4mb) || defined(esp32c6_8mb)
WiFi.setAutoReconnect(false);
#else
WiFi.setAutoConnect(false);
#endif
WiFi.persistent(false);
#endif
/* String s_staip = "192.168.2.62";