IDE 1.8.10 en board versie 2.5.2

IDE gerelateerde berichten
Gebruikers-avatar
Berichten: 241
Geregistreerd: 22 Jan 2013, 16:40

IDE 1.8.10 en board versie 2.5.2

Berichtdoor zuid » 04 Okt 2019, 08:36

Ik heb een probleem met het compileren van een schets voor een Lolin(Wemos) D1 R2 in combinatie met een SD.
De foutmelding die ik krijg komt ook bij de voorbeeld schets Cardinfo uit de voorbeelden groep voorbeelden voor ieder board.

Omdat het nog altijd een probleem van de libraries op mijn PC kan zijn, hierbij mijn verzoek of iemand dat voorbeeld zou kunnen compileren voor bovenstaand board en genoemde versies..
Afhankelijk of dat wel of niet fout gaat moet ik verder gaan zoeken.
Bij voorbaat dank, Nico

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: IDE 1.8.10 en board versie 2.5.2

Berichtdoor Koepel » 04 Okt 2019, 08:59

menu: Bestand / Voorbeelden / (Voorbeelden voor ieder board) / SD / CardInfo
Dat compileert inderdaad niet, want die gebruikt de low-level functies van de SD library.
De ESP libraries gebruiken hun eigen SD code. Die is totaal anders. Er zit een laag tussen om het compatible te maken met de meest gebruikte Arduino functies voor een SD.

Dit soort problemen gebeurt veel vaker. Soms is een library geschreven voor een Arduino Uno, terwijl er niet bij staat dat het nergens anders op werkt.

De ESP boardjes (Wemos / LOLIN / ESP8266 / ESP32 / NodeMCU) zijn geen officiële Arduino boardjes.

Nu zie ik bij "Voorbeelden voor WeMos D1 R1" een "SD(esp8266)" staan met een paar voorbeelden. Die kun je gebruiken.

Gebruikers-avatar
Berichten: 241
Geregistreerd: 22 Jan 2013, 16:40

Re: IDE 1.8.10 en board versie 2.5.2

Berichtdoor zuid » 04 Okt 2019, 09:27

Het voorbeeld wordt t/m board versie 2.5.0 wel goed gecompileerd.
Het gaat mij niet zo zeer om het voorbeeld maar juist om de functies die daarin worden gebruikt.
Met name informatie over de gebruikte SD en andere "volume" info.
Ik denk dat het gaat om de map …… esp8266>2.5.0>libraries>SD>src>utility
Die ontbreekt in versie 2.5.2

Op zoek naar alternatieven of de oude versie blijven gebruiken of delen uit de software verwijderen.

m.v.g.
Nico

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: IDE 1.8.10 en board versie 2.5.2

Berichtdoor Koepel » 04 Okt 2019, 19:10

Of je code herschrijven.

De ESP8266 is van de Arduino SD library afgestapt, en ik denk dat daar goed aan hebben gedaan.
De basis is nu de standaard functies zoals ze al tientallen jaren heten in de 'C'-taal.
Daar bovenop hebben ze een laag gemaakt om toch weer compatible met Arduino te zijn.

De ESP8266 en ESP32 kunnen een deel van het Flash geheugen als bestandsysteem gebruiken, dat is het SPIFFS.
Ik vermoed dat ze dezelfde functies willen gebruiken voor de SD-kaart en voor de SPIFFS.

De basis functies vind je in "FS.cpp", "FS.h" en "FSImpl.h":
.arduino15/packages/esp8266/hardware/esp8266/2.5.2/cores/esp8266

De bovenste laag om compatible met Arduino te zijn, is "SD.cpp" en "SD.h":
.arduino15/packages/esp8266/hardware/esp8266/2.5.2/libraries/SD/src

Dan is er nog een tussenlaag met "SDFS.cpp", "SDFS.h" en "SDFSFormatter.h":
.arduino15/packages/esp8266/hardware/esp8266/2.5.2/libraries/SDFS/src

Je kunt eens proberen om de "info()" functie uit "SDFS.h" aan de praat te krijgen.

Gebruikers-avatar
Berichten: 241
Geregistreerd: 22 Jan 2013, 16:40

Re: IDE 1.8.10 en board versie 2.5.2

Berichtdoor zuid » 04 Okt 2019, 19:27

Code herschrijven was ook mijn eerste optie.
In de praktijk zal ik de oude versie nog wel nodig hebben voor het eventueel oplossen van acute problemen.
Nog geen uur geleden had ik op GitHub inderdaad gelezen dat er sprake was van een geheel nieuwe bibliotheek.
Ik was nog niet zover dat ik de mogelijkheden hiervan in kaart had gebracht.
Ook moet ik nog een hardware test omgeving met SD in elkaar sleutelen.
m.v.g. Nico

Gebruikers-avatar
Berichten: 241
Geregistreerd: 22 Jan 2013, 16:40

Re: IDE 1.8.10 en board versie 2.5.2

Berichtdoor zuid » 05 Okt 2019, 18:38

Voor de zekerheid eerst maar de standaard voorbeelden geprobeerd.
Helaas heb ik geen voorbeeld kunnen vinden dat zonder fouten gecompileerd wordt.
Ook de tekst TO DO en not valid in het commentaar in de functie info() geeft geen vertrouwen in een goede afloop van een eventuele poging die werkend te krijgen.
Code: Alles selecteren
bool info(FSInfo& info) override {
        if (!_mounted) {
            DEBUGV("SDFS::info: FS not mounted\n");
            return false;
        }
        info.maxOpenFiles = 999; // TODO - not valid
        info.blockSize = _fs.vol()->blocksPerCluster() * 512;
        info.pageSize = 0; // TODO ?
        info.maxPathLength = 255; // TODO ?
        info.totalBytes =_fs.vol()->volumeBlockCount() * 512;
        info.usedBytes = info.totalBytes - (_fs.vol()->freeClusterCount() * _fs.vol()->blocksPerCluster() * 512);
        return true;
    }


Voorlopig maar even een oude versie gebruiken en wachten op 2.5.3 :(
m.v.g.
Nico

Terug naar Arduino IDE

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 11 gasten