FAT16_32-Fragen

  • 1
  • 2
  • 3
  • 4
  • Page 1 of 4
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2133
Registered: 03 / 2003
Subject:

FAT16_32-Fragen

 · 
Posted: 18.01.2014 - 09:56  ·  #1
Hallo @ all,

ich verwende den FAT32-Treiber und schreibe Textfiles auf eine SD-Karte. Da ich vorher nie weiss, wie groß diese sein werden und ob evtl. Dateisystemgrenzen erreicht werden, hätte ich ein paar Fragen zum Handling.

  • was passiert, wenn der Datenträger voll ist ?
  • was passiert, wenn ich 4GByte-Dateigröße erreicht habe ?
  • reicht es, wenn ich nach jedem Schreiben den Status abfrage und bei einem Fehler die Datei schiesse ? Oder ist es dann schon zu spät ?
  • würde das Öffnen/Anlegen einer neuen Datei auf einem vollen Datenträger trotzdem funktionieren ? Ist es also sinnvoll zumindest hier den verfügbaren Platz zu ermitteln ?


Gruss
Harry
miparo
Administrator
Avatar
Gender:
Location: Germany
Age: 58
Posts: 959
Registered: 09 / 2007
Subject:

Re: FAT16_32-Fragen

 · 
Posted: 19.01.2014 - 02:04  ·  #2
Hallo Harry,
das hat wohl noch niemand hinbekommen eine 4GB Karte voll zuschreiben :)

1. da dürfte es vorher schon zur Fehlermeldung kommen.
2. siehe 1.
3. das sollte langen, da ein BlockWrite voher schauen muss ob ein Cluster noch frei ist der FAT.
Bei einen 4GB Dateiende bzw. Disk voll kommt BW mit einen false zurück.

4. Öffnen geht immer. Das Anlegen alloziert mindenstens immr einen Cluster, daher könnte
es hier im extrem Fall schon schiefgehen.
Wenn Dein Prog Zeit hat, dann vorher den freien Platz ermitteln.

ABER: All diese extrem Fälle sind noch nicht getestet.

Das machen wir wie bei M$ : Der User darf das gerne machen :D

Das muss ich mir selber nochmal alles anschauen.

Michael dürfte da auch noch was zu wissen.

Da ich aber ein kleines Krebstier an die Backen bekommen habe, ist meine Zeit/Konzentration etwas rar.

Gruß
miparo
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2133
Registered: 03 / 2003
Subject:

Re: FAT16_32-Fragen

 · 
Posted: 19.01.2014 - 15:49  ·  #3
Hi miparo,

BlockWrite ? Kann ich das bei einem File of Text gleich sehen/verstehen ? Ich schreibe nur (lese nicht) und mach das nur mit WriteLn.
Ich muß glaub mal meine alten 64MByte-Karten auspacken :D - die bekommt man schneller voll ;)

Gruss
Harry
miparo
Administrator
Avatar
Gender:
Location: Germany
Age: 58
Posts: 959
Registered: 09 / 2007
Subject:

Re: FAT16_32-Fragen

 · 
Posted: 19.01.2014 - 17:33  ·  #4
Jups, alle Schreibfunktionen benutzen Blockwrite und das sollte den Status durchreichen.
mc-electronic
Benutzer
Avatar
Gender: n/a
Location: Sauerland NRW
Posts: 372
Registered: 03 / 2008
Subject:

Re: FAT16_32-Fragen

 · 
Posted: 20.01.2014 - 09:47  ·  #5
Hallo Harry,

Benutze F16_GetDiskFree, diese Funktion ist im FAT16_32 Treiber sehr schnell geworden, weil miparo / FAT32 diese Werte im FAT selbst speichern. Die Blockgröße der SD-Card ist immer 512 Byte, die Clustergröße sollte immer auf mindestens 32 KB gesetzt werden, sonst wird der Treiber zu langsam. Wenn die Karte voll wird, arbeitet der Treiber nach meinen Tests korrekt und gibt beim Schreiben Fehler zurück. Ich lasse allerdings immer ein paar Prozent Platz auf der Karte, für das Systemlog und so.

Gruß, Michael
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2133
Registered: 03 / 2003
Subject:

Re: FAT16_32-Fragen

 · 
Posted: 20.01.2014 - 11:11  ·  #6
Hi Michael,

fragst du auch ständig den Status ab und reagierst entsprechend ? Ist das nicht zu CPU-intensiv ?

Gruss
Harry
mc-electronic
Benutzer
Avatar
Gender: n/a
Location: Sauerland NRW
Posts: 372
Registered: 03 / 2008
Subject:

Re: FAT16_32-Fragen

 · 
Posted: 20.01.2014 - 12:52  ·  #7
Hallo Harry,

also, ob das FileReset, FileRewrite und FileClose OK war, frage ich schon ab. Das Schreiben selbst nicht immer, bei Blockwrite ja, bei File Of Text nein (wenn es z. B. nur so ein Log ist). Jede Minute schaue ich einmal nach dem DiskFree, wenn dann nur noch 1 bis 5 % frei sind (je nach SD Größe), höre ich auf zu schreiben. Dann ist man auf der sicheren Seite, wenn so eine Karte in den PC kommt, schreibt Windows ja auch oft noch was drauf - und es lohnt sich nicht, bis auf's letzte Byte alles vollzuquetschen. Dann hat man auf einmal doch irgendwo die FAT korrupt und das war's dann. Jetzt, wo die Karten bis 32 GB gehen (soweit ich getestet habe), reicht der Platz doch auf jeden Fall.

Der Treiber ist mit SPI schön performant, es fehlt nur noch der 4 Bit parallel-Zugriff auf die SDHC.

Auf jeden Fall war es vom Miparo eine echte programmtrechnische Großtat, den Treiber FAT16 und FAT32 kompatibel (auch zum alten FAT16 Treiber) zu schreiben.

Gruß, Michael
miparo
Administrator
Avatar
Gender:
Location: Germany
Age: 58
Posts: 959
Registered: 09 / 2007
Subject:

Re: FAT16_32-Fragen

 · 
Posted: 20.01.2014 - 21:34  ·  #8
Quote

Der Treiber ist mit SPI schön performant, es fehlt nur noch der 4 Bit parallel-Zugriff auf die SDHC.

Auf jeden Fall war es vom Miparo eine echte programmtrechnische Großtat, den Treiber FAT16 und FAT32 kompatibel (auch zum alten FAT16 Treiber) zu schreiben.



Hallo Michael,
ich bedanke mich für die Blumen.

Zum Umstieg auf SDIO müsstest Du Dich aber von Deinen alten Kamellen , denn Megas,trennen.
Da SDIO nur mit den Xmegas und AES Engine unterstützt wird.

Dann wirst Du endlich auch mal das performante PDI Programming und Debugging kennen lernen. =D>

Grüße
miparo
  • 1
  • 2
  • 3
  • 4
  • Page 1 of 4
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 14 · Cache Hits: 14   133   147 · Page-Gen-Time: 0.034348s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI