www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frage zu FAT16


Autor: zero_gravity (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nen schönen guten morgen an alle! ^^

ich hab mir vor einiger zei für meinen mp3-player ne ansteuerung für 
fat16 geschrieben. funktionierte mit meiner 128mb karte auch wunderbar! 
selbst lob

jetzt hab ich mir ne 2gb karte organisiert, schön mit fat16 auf 64kb 
clustergröße formatiert und mit musik und bildern und sowas 
beschrieben... wenn ich mir die nun aber auf dem player ausgeben lassen 
will, kommt am ende immer ein kleiner teil datenmüll - bei bildern zum 
beispiel ein paar linien oder bei mp3-datein total die komischen 
geräusche!

is ja irgendwie seltsam hab ich mir gedacht und mir die karte mal mit 
winhex unter die lupe genommen und da ist mir aufgefallen, dass immer 
der jeweils letzte cluster einer datei nicht komplett 'benutzt' wird, 
sondern dass zum beispiel nur die ersten 39 sektoren mit den 
eigentlichen daten beschrieben sind - der rest ist "datenschrott"!

nun meine frage: is das überhaupt normal oder kann ich nur nicht richtig 
formatiern??? und wenn das wirklich so beabsichtigt ist, steht dann 
irgendwo im bootsektor oder so wieviele sektoren im letzten cluster 
benutzt werden???


...fat16 is irgendwie ne dämlcihe erfindung ^^ ...


also erstma danke fürs durchlesen und
hoffentlich auch für ganz ganz viele antworten! ;)

glg
zero_gravity

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

> winhex unter die lupe genommen und da ist mir aufgefallen, dass immer
> der jeweils letzte cluster einer datei nicht komplett 'benutzt' wird,
> sondern dass zum beispiel nur die ersten 39 sektoren mit den

Das klingt fuer mich normal schliesslich hast du doch meistens Dateien 
die ungleich modulo Clustergroesse sind.

Ueberlege dir doch mal wie eine Datei aussehen muss die nur 1Byte 
enthaelt.


> ...fat16 is irgendwie ne dämlcihe erfindung ^^ ...

Das ist Quatsch. Der FAT Kram ist eine alte Erfindung aus Zeiten als 
Computer langsam und wenig Speicher hatten. Dafuer solltest du hoechst 
dankbar sein, oder moechtest du NTFS in einen Controller implementieren?

Olaf

Autor: Obelix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schicke dein Programm doch mal durch einen Debugger.

Autor: zero_gravity (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hey olaf!

ja ne, fat is schon cool, aber ich zermater mir
deswegen nochmal meinen kopf... ;)

also mir is schon klar, dass das nich immer passt, aber ich dachte mir 
bisher immer, der "rest" würde einfach auf null gesetzt werden...
wie kann ich denn rausfinden wann jetzt eine datei wirklich zu ende 
ist??
hast du da zufällig ne idee???

@ obelix:
was meinst du mit nem debugger? mein programm ist eigentlich in ordnung 
;)


glg
zero_gravity

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Ende einer Datei kannst Du anhand der im Directory zusammen mit 
Änderungsdatum, Dateinamen und -Attributen abgespeicherten Dateilänge 
bestimmen.

Eine andere Methode gibt es nicht, schließlich darf eine Datei beliebige 
Daten in beliebiger Kombination enthalten.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.