ESP32 - ошибка при использовании LITTLEFS.h после обновления ядра до 2.0.4

esp32 spiffs littlefs

После обновления 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>

В чем может быть ошибка и как ее исправить?

, 👍0

Обсуждение

возможно, удалите библиотеку. 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


2 ответа


0

Как прокомментировал Юрай, после обновления до esp32 Arduino 2.0.4

библиотека LittleFS_esp32 не нужна.
,

2

Как вы заметили, библиотека 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
,