ESP32 - ошибка при использовании LITTLEFS.h после обновления ядра до 2.0.4
После обновления ESP32 до основной версии 2.0.4 (файл в настройках Arduino IDE был заменен на https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
для обновления), я получаю следующую ошибку:
/Users/guydvir/Dropbox/Arduino/libraries/LittleFS_esp32/src/LITTLEFS.cpp: In member function 'virtual bool LITTLEFSImpl::exists(const char*)':
/Users/guydvir/Dropbox/Arduino/libraries/LittleFS_esp32/src/LITTLEFS.cpp:44:28: error: no matching function for call to 'LITTLEFSImpl::open(const char*&, const char [2])'
File f = open(path, "r");
^
In file included from /Users/guydvir/Dropbox/Arduino/libraries/LittleFS_esp32/src/LITTLEFS.cpp:17:
/Users/guydvir/Library/Arduino15/packages/esp32/hardware/esp32/2.0.4/libraries/FS/src/vfs_api.h:38:17: note: candidate: 'virtual fs::FileImplPtr VFSImpl::open(const char*, const char*, bool)'
FileImplPtr open(const char* path, const char* mode, const bool create) override;
^~~~
Я свел код только к заголовкам ( и опустошил setup
и loop
:
#include "FS.h" //#включить "LITTLEFS.h" // <----- закомментирование останавливает сообщение об ошибке #include <time.h> #include <WiFi.h>
В чем может быть ошибка и как ее исправить?
@Guy . D, 👍0
Обсуждение2 ответа
Как прокомментировал Юрай, после обновления до esp32 Arduino 2.0.4
библиотекаLittleFS_esp32
не нужна.
Как вы заметили, библиотека Lorol's LittleFS_esp32 была объединена с ядром ESP32 из версии 1.0.6 и вызывает ошибку компиляции некоторых старых кодов.
Разница в том, что вы должны использовать #include <LittleFS.h>
вместо #include <LITTLEFS.h>
для новых ядер (v1.0.6, v2.0.0+)
Проверьте и измените следующий фрагмент (широко используемый в моей библиотеке ESP_WiFiManager) для ваших целей
// Проверяем cores/esp32/esp_arduino_version.h и cores/esp32/core_version.h
//#if (ESP_ARDUINO_VERSION >= ESP_ARDUINO_VERSION_VAL(2, 0, 0)) //(ESP_ARDUINO_VERSION_MAJOR >= 2)
#if ( defined(ESP_ARDUINO_VERSION_MAJOR) && (ESP_ARDUINO_VERSION_MAJOR >= 2) )
#if (_WIFIMGR_LOGLEVEL_ > 3)
#warning Using ESP32 Core 1.0.6 or 2.0.0+
#endif
// Библиотека объединена с ядром esp32 из версии 1.0.6
#include <LittleFS.h> // https://github.com/espressif/arduino-esp32/tree/master/libraries/LittleFS
FS* filesystem = &LittleFS;
#define FileFS LittleFS
#define FS_Name "LittleFS"
#else
#if (_WIFIMGR_LOGLEVEL_ > 3)
#warning Using ESP32 Core 1.0.5-. You must install LITTLEFS library
#endif
// Библиотека объединена с ядром esp32 из версии 1.0.6
#include <LITTLEFS.h> // https://github.com/lorol/LITTLEFS
FS* filesystem = &LITTLEFS;
#define FileFS LITTLEFS
#define FS_Name "LittleFS"
#endif
- Загрузка данных SPIFFS в Arduino IDE 2.0.0-rc3 (ESP32 & TTGO) - Ubuntu
- Как записать и прочитать из файла SPIFFS как данные объекта на ESP8266
- Как сохранить структуру в файле?
- ESP-32 Загрузка файлов в SPIFFS через браузер
- Любой способ использовать DMA для передачи данных на SD - карту в ESP8266
- ESP32 AsyncWebServer SPIFFS проблема со страницей загрузки
- ESPTOOL не распознает чип ESP32-S2 для передачи спайфов
- ESP32, ArduinoOTA.h, LittleFS.h и загрузка файлов данных по OTA
возможно, удалите библиотеку. https://github.com/lorol/LITTLEFS#readme, @Juraj
@Juraj теперь, после понижения до 1.0.4 (все еще в новом репозитории), он не может найти $ PATH для python ....., @Guy . D
@Juraj смотрите картинку ниже, @Guy . D
у тебя 2.0.4, а не 1.0.4, @Juraj
@Juraj Я пытаюсь понять, что изменилось между 1.0.4 и 2.0.4., @Guy . D
@Juraj Спасибо, проблема решена, @Guy . D