Hallo Meinhard,

> Es funktioniert, wenn ich entweder in der Datei sd-reader_config.h den Wert
> 
> #define USE_DYNAMIC_MEMORY 1
> 
> setze oder  in der fat_config.h die statischen Werte erhoehe
> 
> #define FAT_FILE_COUNT XX
> #define FAT_DIR_COUNT XX

Die Standardwerte gehen eben davon aus, dass maximal eine Datei und ein
Verzeichnis in Nutzung sind. Persönlich habe ich die für den HTTPD
erhöhen müssen, ansonsten werden nicht alle Dateien der E6-Startseite
von der SD-Karte geladen. USE_DYNAMIC_MEMORY ist praktischer, allerdings
mit einem Mehrverbrauch der dynamischen Speicherverwaltung verbunden.
Hat man ansonsten kein Modul mit dynamischer Speicherverwaltung konfiguriert
schnellt auch noch der Flashverbrauch in die Höhe.

> logger_log(<logText>)
> {
>   vfs_sd_fseek(fileHandle, 0, SEEK_END);
>   vfs_sd_write(fileHandle, <logText>, len);
>   sd_raw_sync();
> }

Der Code ist nicht geeignet für die Rotation innerhalb einer Datei.

> Dazu habe ich 
> #define FAT_DATETIME_SUPPORT 1
> implementiert, aber noch nicht in die Config-Struktur eingebunden.

Könnte man per menuconfig erschließen. Ebenso die Option USE_DYNAMIC_MEMORY.
https://github.com/ethersex/ethersex/pull/417 ist von dir?

> > Dein Denkfehler ist, dass du eine konkrete Implementierung von VFS benutzt
> > und nicht das generische VFS-Interface, wie es in core/vfs/vfs.h definiert
> Das hatte ich mir noch gar nicht gross angeschaut, da ich explizit auf die SD-
> Karte schreiben wollte. Ich werde das mal noch intensiver lesen.
> Zwei Fragen vorweg:
> Im Moment bin ich ja auf einem Net-IO unterwegs, habe hier aber auch noch ein 
> etherrape rumliegen. Letzteres hatte ich neben dem aufgeloetetem DataFlash 
> testweise ein SD-Modul angeschlossen.
> Auf Anhieb sehe ich bei dem generischen Interface nicht die Moeglichkeit, in 
> diesem Setup gezielt auf die SD-Kare zu schreiben.

Völlig richtig erkannt. Die VFS-Schnittstelle trifft zwei Annahmen:
a) es existiert nur eine konkrete Implementierung
b) die erste Implementierung (VFS-inline) ist schreibgeschützt und die zweite
   (SD-Karte) erlaubt das Schreiben

b) ist praktisch bei HTTPD im VFS-inline und Protokolldateien auf der SD-Karte.

> Ein Unterverzeichnis kann ich damit auch nicht erstellen, oder?

Das geht leider nicht. Ein mkdir-Aufruf ist nicht vorgesehen, obgleich er
in einigen Implementierung vorhanden wäre. Patch/PR willkommen.


-eku

_______________________________________________
Ethersex-devel mailing list
Ethersex-devel@list.zerties.org
http://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel

Antwort per Email an