Hallo zusammen, ich habe hier eine Frage zu externen SPI-Flash-Speichern (z.B. SST25V064C) und deren Speicherverwaltung (z.B. FAT16). Leider habe ich kein passendes Thema gefunden, welches meine Fragen beantwortet. Ich arbeite mit einem STM32F4 und habe wie gesagt ein serielles 64Mbit Flash extern dran. Darin möchte ich viele Grafik(Dateien) ablegen, die ich auf meinem TFT-Display anzeige. Die Frage ist jetzt kann ich für diesen Speicher ein FAT16-Dateisystem verwenden um meine Grafikdaten zu verwalten. Dies wäre relativ einfach, weil ich dann auf dem PC mir die Grafiken(Dateien) entsprechend erstellen kann und diese dann in den Flash-Speicher per zusätzlicher serieller Schnittstelle übertragen kann. Ich habe ein Grafik-TFT mit 320x240 Pixeln und habe dabei dann eine maximale Speichergröße von 153,6kByte pro Grafikdatei. Möglicherweise kann ein Displayinhalt aus mehreren kleinen Grafiken bestehen. Hat jemand Erfahrung, wie lange die Zugriffszeiten was das FAT-System betrifft (nur lesen ist eigentlich wirklich wichtig) betrifft. Macht dieses System denn überhaupt Sinn, bzw. deckt eine FAT-Bibliothek den gleichen Speicher ab wie auf PC-Seite. Denn ich möchte die Daten dann vom PC 1 zu 1 in das serielle Flash übertragen, also quasi die Daten im FAT-System erstellen und sie dann wieder lesen. Sorry für den vielen Text aber ich möchte nur, dass ihr versteht was ich meine. Vielen Dank! Gruß euer Flash
flash gordon schrieb: > diese dann in den Flash-Speicher per zusätzlicher > serieller Schnittstelle übertragen kann. Dann musst Du dem PC nur noch beibringen, dass sich an der seriellen Schnittstelle ein blockorientiertes Speichermedium befindet ... ... also einen Treiber dafür schreiben ... flash gordon schrieb: > Denn ich möchte die Daten dann vom PC 1 zu 1 in das serielle Flash > übertragen, also quasi die Daten im FAT-System erstellen und sie dann > wieder lesen. Was nun ... die einzelnen Dateien? Das Dateisystem? > Sorry für den vielen Text aber ich möchte nur, dass ihr versteht was ich > meine. Fail. :-D Gruß Jobst
@flash, warum willst du unbedingt ein Dateisystem auf dem Flashchip aufsetzen? Ich habe hier eine Schaltung mit xmega, ebenfalls 320x240'er TFT und SPI-Flash. Da du was von 153k schreibst, gehe ich mal davon aus das du die reinen Bitmapdaten in RGB565-Format verwendest. Die Speicherung der Grafiken habe ich folgendermaßen gelöst. Für'n PC hab ich mir ein kleines Prog. geschrieben, das die Bilddateien im RGB565-Format einliest und hintereinander in eine Datei schreibt. Am Begin der Datei wird noch eine Tabelle hinzugefügt die die Anfangsadressen der Bilddaten enthält. Auf dem µC brauche ich im Programm nur noch die Bildnummer (16-Bit), aus der Tabelle (kann man auch in den RAM kopieren) wird dann die passende Adresse der Bilddaten ausgelesen und dann können die Daten ab dort ausgelesen und ans Display geschickt werden. Die Datei lade ich auf eine SD-Karte, auf dem µC wird einfach der komplette Dateiinhalt 1:1 in den Flash kopiert. Die Daten kann man natürlich auch per RS232 'überspielen'. Sascha
Wenn Du ein Filesystem verwenden willst, dann ist FAT16 sicher nicht schlecht denn dafür gibt's fertige Libs. Je nach Größe des Mediums ist FAT32 nötig.
Hallo Sascha, hallo zusammen, danke für die guten Antworten. Zu Jobst habe ich eine bzw. ein paar Antworten, die Dateien im PC kann ich ja einzeln lesen und seriell übertragen (PC-Programm) dann über die FAT-Library und den Hardwaretreiber in das serielle Flash schreiben. Das Auslesen dann wieder über den FAT-Treiber. Zu Sascha, ja ich habe überlegt, das ganze selbst zu schreiben, in der Art wie du das gemacht hast. Es gibt bei mir auch so eine Art Strukturdatei, in der der Aufbau eines Displays beschrieben ist und welche Pixel-Dateien (richtig erkannt, 565-Format :-))verwendet werden. D.h. der Aufbau bleibt variabel und kann angepasst werden, das ist allein schon um verschiedene Sprachvarianten wegen unterschiedlicher Meldungen (als Pixelgrafik) zu realisieren. Der Vorteil von FAT sehe ich darin, das jemand der später eigene Grafiken erstellt und Display-Inhalte aufbauen möchte das Handling auf dem PC einfacher empfindet mit Dateien. Das mit der SD-Karte möchte ich später auch noch so realisieren, die SD-Karte kann ich bloß nicht dauerhaft einsetzen, da das im Betrieb nicht geht. Für mich bleibt die Frage wie ist den so das Handling mit fertiger FAT-Library bei seriellen Flash-Bausteinen, wie lange sind etwa Zugriffszeiten, ist der Zugriff auch per DMA möglich, gibt es Empfehlungen für FAT-Librarys mit seriellen Flash-Bausteinen, da ich noch nie mit FAT im embedded-Bereich gearbeitet habe. Würde mich über verschiedenste Tipps freuen. Euer Flash
@ flash gordon (Gast) >Für mich bleibt die Frage wie ist den so das Handling mit fertiger >FAT-Library bei seriellen Flash-Bausteinen, Die meisten FAT Libs sind eingentlich sehr modular aufgebaut. Sprich, man kann verschiedenste Medien (SD-Kare, Compact Flash, etc) leicht anbinden. Letztendlich muss das Medium einen Zugiff auf einzelne Sektoren a 512 Byte zur Verfügung stellen, den Rest macht die FAT-Lib. > wie lange sind etwa Zugriffszeiten, Hängt von deinem Controller und der Schnittstelle ab. Die FLash gehen bis 66 MHz, je nach Typ laufen die sogar im 4 Bit Modus. > ist der Zugriff auch per DMA möglich, Sicher, das ist aber Sache des Low Level Treibers, nicht der FAT Lib. >gibt es >Empfehlungen für FAT-Librarys mit seriellen Flash-Bausteinen, da ich >noch nie mit FAT im embedded-Bereich gearbeitet habe. http://www.mikrocontroller.net/articles/MMC-_und_SD-Karten Ich kann ELM Chan empfehlen.
Ich hatte auf einem STM32F107 FatFS auf einem SPI FLash zum laufen bekommen. Da sind schon 2 Jahre her und ich bin nicht mehr in der Fa. als ich es gemacht habe. Das war auf jedem Fall kein Krampfakt. Das Beschreiben vom Flash habe ich mit Ymodem via FTDI erledigt und die Datenrate lag bei 18Mbits. Ob das Ganze mit DMA laufen würde, weiß ich nicht.
Schau mal hier: http://www.ulrichradig.de/home/index.php/arm/mmc_sd-_arm Vielleicht hilft dir das...?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.