Upload File to SPI Flash

Moin,
ich versuche mich seit paar Tagen mit SPI Flash.
Die Examples von Adafruit_SPIFlash hab ich erfolgreich getestet.
Nun möchte ich zB Bilder auf den SPI Flash speichern, dazu hab ich keine Beispiele gefunden.
Wie läuft das da ab?
Braucht man da ein extra Ordner wie bei den SPIFFS mit ESP?
EDIT//
Benutzt wird ein STM32F207

Du brauchst ein Dateisystem, in dem zumindest die Anfänge der einzelnen Bilder bzw. Dateien gespeichert sind. Oder vor jeder Datei die Anzahl Bytes, die dann übersprungen werden kann wenn es nicht die gesuchte Datei ist.

Ich weiß nicht mehr wonach ich im WWW suchen soll, hast du paar Beispiele wie man zB eine .bin uploaden kann?

Worüber willst Du das File denn hochladen? Serielle Schnittstelle, Ethernet, WLAN? Welcher MC?

Gruß Tommy

Von SD auf den SPI Flash.
MCU ist STM32F2

Den MC kenne ich nicht, aber der Weg sollte sein

Puffer anlegen (idealerweise 512 Bytes = Sektorgröße)

  1. File zum Lesen von SD öffenen
  2. File zum Schreiben auf Flash öffnen

Solange int gelesen = stFile.read(puffer,sizeof(puffer)) == sizeof(puffer)
FlashFile.write(puffer,sizeof(puffer));
Danach flashFile.write(puffer, gelesen);

Beide Files schließen.

Dass Du ein Filesystem anlegen musst, hat ja DrDiettrich schon geschrieben.

Gruß Tommy

Danke jungs!
Ich hatte das einzige Beispiel nicht angeschaut und genau da liegt die Antwort direkt auf der Hand:

     dataFile = sd.open("flshdump.bin", FILE_READ);
     if (! dataFile) {
       error("error opening flshdump.bin");
     }

    Serial.println("Writing FLASH from disk");
    for (int32_t page=0; page < flash.numPages() ; page++)  {
      memset(buffer, 0, pagesize);
      
      int16_t r = dataFile.read(buffer, pagesize);
      if (r == 0) 
        break;
      Serial.print("// Writing page ");  Serial.println(page);

      if (r != flash.writeBuffer (page * r, buffer, r)) {
        error("Flash write failure");
      }
    }  
    Serial.println("Done!");
    dataFile.close();

Naja, das ist ja fast das, was ich Dir geschrieben habe.

Das geht aber so nur für ein einziges File, sonst musst Du die belgten Bytes mitführen und die Routine etwas anpassen. So wie die ist, ist sie etwas suboptimal.

Gruß Tomy

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.