Hallo,
ich habe hier das STM3210C-Eval Board und versuche darauf, das FatFs
Beispiel von ST zum laufen zu bekommen.
Laut readme sollte das Projekt direkt lauffähig sein.
Ich habe es mit SW4STM32 geöffnet, kann es ohne Fehler und Warnungen
kompelieren und kann es auf den Controller laden. Es läuft auch zunächst
ohne Probleme.
Die Karte wird gefunden, eingebunden und formatiert. Bei diesen
Funktionen tritt kein Fehler auf.
Jedoch dann beim Versuch eine Datei zu öffnen respektive zu schreiben.
Die Funktion f_open gibt immer den Fehler FR_NO_FILESYSTEM zurück.
Formatiert wurde die Karte jedoch, sehe ich in Windows. Habe die Karte
mal testweise mit dem SD Card Formatter formatiert, und die Zeilen zum
formatieren im Code auskommentiert, selber Fehler. Auch wenn ich die
Datei am PC erstelle und drauf kopiere, kann der STM32 die Datei nicht
lesen, wieder selber Fehler.
Beim debuggen habe ich den Fehler zurück verfolgen können. Innerhalb von
f_open wird find_volume aufgerufen. Hier scheint dann das Problem von
der Funktion check_fs zu kommen, da diese 2 zurück gibt.
Das ist der Teil vom Code, bei dem die 2 gesetzt wird:
1 | /* 0:FAT boor sector, 1:Valid boor sector but not FAT, 2:Not a boot sector, 3:Disk error */
|
2 | if (LD_WORD(&fs->win.d8[BS_55AA]) != 0xAA55) /* Check boot record signature (always placed at offset 510 even if the sector size is >512) */
|
3 | return 2;
|
Laut dem Kommentar darüber scheint es keinen boot sector zu geben.
Wo liegt mein Fehler?
Danke :)