IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

LITTLEFS sur VSC impossible de compiler [Arduino ESP32]


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut LITTLEFS sur VSC impossible de compiler
    Bonjour à tous
    Je fais un sketch tout simple pour lire un fichier stocké en mémoire flash d'un ESP32.
    On m'a dit qu'il fallait utiliser la librairie "lorol/LITTLEFS". En effet cela semble bien, mais la compile plante.
    Mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    #include <arduino.h>
    #include <FS.h>
    #include <LITTLEFS.h>
     
    #define FORMAT_SPIFFS_IF_FAILED true
     
    String tempo;
    bool go = true;
     
    void litFichier(fs::FS &fs, const char *dir){
      tempo ="";
      File fic=fs.open(dir,"r");
      if(!fic || fic.isDirectory()){
        Serial.println("Erreur");
        fic.close();
        return;
      }
      else{
        while(fic.available()){
          tempo+=(char)fic.read();
        }
      }
      fic.close();
    }
     
    void setup() {
      Serial.begin(9600);
      if(!LITTLEFS.begin(FORMAT_SPIFFS_IF_FAILED)) Serial.println("SPIFFS  MOUNT FAILED");
      delay(500);
      litFichier(LITTLEFS,"/index.html");
    }
     
    void loop() {
      if(go){
        Serial.println(tempo);
        go=false;
      }
    }
    Résultat de la compile:
    .pio/libdeps/esp32doit-devkit-v1/LittleFS_esp32/src/LITTLEFS.cpp: In member function 'virtual bool LITTLEFSImpl::exists(const char*)':
    .pio/libdeps/esp32doit-devkit-v1/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 .pio/libdeps/esp32doit-devkit-v1/LittleFS_esp32/src/LITTLEFS.cpp:17:
    C:/Users/Mormic/.platformio/packages/framework-arduinoespressif32/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;
    ^~~~
    C:/Users/Mormic/.platformio/packages/framework-arduinoespressif32/libraries/FS/src/vfs_api.h:38:17: note: candidate expects 3 arguments, 2 provided
    *** [.pio\build\esp32doit-devkit-v1\lib3ef\LittleFS_esp32\LITTLEFS.cpp.o] Error 1
    =============================== [FAILED] Took 10.84 seconds ===============================
    Mon platformio.ini:
    [env:esp32doit-devkit-v1]
    platform = espressif32
    board = esp32doit-devkit-v1
    framework = arduino
    board_build.partitions = huge_app.csv
    board_build.f_cpu = 240000000L
    lib_deps = lorol/LittleFS_esp32@^1.0.6
    Est-ce que quelqu'un voit d'où vient mon problème?
    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 907
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 907
    Par défaut
    https://github.com/lorol/LITTLEFS/issues/59

    Le souci c’est que leur open attend 3 paramètres

  3. #3
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut
    oui j'ai bien vu cela mais si j'ajoute un troisième paramètre (qui est optionnel) le résultat est le même!

  4. #4
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 907
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 907
    Par défaut
    Pourquoi utiliser lorol/LITTLEF?

  5. #5
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut
    J'utilise cela parce que j'ai lu qu'avec ESP32 il fallait utiliser cette librairie?
    sinon, qu'est-ce que vous me conseillez d'utiliser?

  6. #6
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 907
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 907
    Par défaut
    J’utilise toujours SPIFFS - c’est natif

  7. #7
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut
    En effet avec le petit programme que j'ai présenté, si j'utilise SPIFFS cela compile bien..
    Mais je suis aussi passé sur LITTLEFS car je rencontre un problème ailleurs:

    Dans mon programme principale, avec VSC comme IDE, j'ai créé un répertoire DATA dans mon projet où j'ai placé 3 fichiers index.html, style.css et code.js que je charge au démarrage en mémoire pour répondre à une demande client Internet;
    puis je dois stocker dans cette mémoire flash mes fichiers de programmation horaire d'évènement(80 octets par fichiers; il y a 10 fichiers).

    L'appel à ma routine d'écriture:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    //*********Enregistrement en SPIFFS d'un programme  6x => /M0x.txt   x=0 a* 9
        case '6':{
          nprog = ci(com[1]); //conversion ASCII numerique pour numero de programme
          if(!(nprog>=0 && nprog<=9)) afficErreurs(prg);
          else{                
            nFic[0]= '/'; nFic[1]= 'M'; nFic[2] = '0'; nFic[3]=com[1];  nFic[4]= '.'; 
            nFic[5]='t'; nFic[6]='x'; nFic[7]='t'; nFic[8]='\0';
            for(i=0;i<80;i++){
              manip[i]=pg[nprog][i];
            }
            manip[80]= '\0';
            ecritureFichier(SPIFFS, nFic, manip);
          }
        }
        break;
    Ma routine d'écriture:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //***************** Ecriture SPIFFS **********************************
    void ecritureFichier(fs::FS &fs, const char *dir, const char *message){
      File fic = fs.open(dir, "FILE_WRITE");
      if(!fic){
        afficErreurs(msg1);    //"Pas de fichier"
        return;
      }
      if(fic.print(message)){
        afficMsgLcd(0,0,msg2,true);    //"Fichier ecrit"
      } else {
        afficErreurs(msg3);           //"Erreur d'ecriture"
      }
      fic.close();
    }
    Lorsque je lance l'enregistrement, j'affiche msg3 soit "ecriture fichier impossible".

    Voilà pourquoi j'ai tenté de le faire avec LITTLEFS.

    Où est mon erreur?

  8. #8
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 784
    Par défaut
    Hello,

    Ça ne va pas résoudre ton problème, mais pourquoi l'appel à la fonction ci() ligne 3 ? Ce code suffit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(com[1]<'0' || com[1]>'9') DisplayError(....);
    else {
        ....
    }

  9. #9
    Membre éclairé
    Homme Profil pro
    bricoleur
    Inscrit en
    Octobre 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : bricoleur
    Secteur : Alimentation

    Informations forums :
    Inscription : Octobre 2014
    Messages : 406
    Par défaut
    mais pourquoi l'appel à la fonction ci() ligne 3 ?
    Parce que j'ai besoin d'un numérique pour mon tableau:

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Impossible de compiler avec Code::Block sur mac
    Par St-42-FCM-57 dans le forum C++
    Réponses: 2
    Dernier message: 18/06/2017, 14h27
  2. Impossible de compiler sous VS lancé sur une machine virtuelle
    Par Tichette dans le forum Visual Studio
    Réponses: 1
    Dernier message: 05/11/2012, 15h49
  3. [Snow Leopard] Impossible de compiler du C sur mac os x
    Par Bastuccio dans le forum Apple
    Réponses: 18
    Dernier message: 23/11/2009, 13h22
  4. [JOnAS][JOPE] impossible de compiler un bean
    Par Raylemon dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/04/2005, 16h48
  5. question sur les erreurs de compilation
    Par vince3320 dans le forum C
    Réponses: 5
    Dernier message: 19/04/2004, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo