www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Unterstützung von langen Dateinamen für FAT Filesystem


Autor: Rooney Bob (rooney)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!!

Kennt jemand von euch ein leicht portierbares Filesystem, das lange 
Dateinamen unterstützt? Zielplatform sollte ein PIC18F8722 werden.


lg
Thomas

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube, kein Dateisystem ist simpler, besser Dokumentiert und 
portierbarer als Fat32.

Autor: Obelix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das nennt sich dann VFAT.

Autor: Rooney Bob (rooney)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
naja ich will auch nix neu programmieren.

Bin kurz über das EFSL drüber gefolgen aber offensichtlich unterstützt 
diese Lib keine langen Dateinamen.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum bekomme ich mit Googlesuche "avr fat32" sofort brauchbare 
resultate? oder taugen die nix?

Bin ich der einzige, der zuerst ne Suchmaschine verwendet, bevor er im 
Forum nachfragt?

Autor: Rooney Bob (rooney)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FAT32 bedeutet noch lange nicht, dass dort lange Dateinamen unterstützt 
werden!!!

Abgesehen will ich nicht nur irgendein Pseudo FAT32 implementiert haben, 
denn das habe ich bereits, sondern will komfortabel mit Datein arbeiten 
in dem es Befehle wie fwrite(), fread(), fopen etc. gibt.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verzeihung, aber.....

..mir ist keine Fat32 implementierung bekannt, die lange Dateinamen 
nicht unterstüzt.

Das erste Resultat der Googlesuche verweist auf eine Seite mit 
herunterladbaren Quellcode mit der Beschreibung

"It started life in my MP3 project in 2003 with only very basic read 
support, and grew into a more fully featured module with a stdio like 
interface providing functions such as fopen(), fgetc(), fputc(), 
fread(), fwrite(), etc."

Autor: Rooney Bob (rooney)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay, ich drück mich anders aus... FAT32 unterstützt lange Dateinamen, 
aber das Rundherum muss es nicht. Man kann Funktionen auch so 
implementieren, dass lange Dateinamen ignoriert werden und nur DOS 
kompatible Namen verwertet werden. Wenn man so einen vorhandenen Code 
erweitern möchte, dass auch lange Dateinamen unterstützt werden, dann 
ist das mit viel Arbeit verbunden, dich ich mir wenn möglich gerne 
ersparen möchte.


Die Lib die du erwähnst habe kenn ich schon, aber da produziert mein 
Compiler nur Mist. CCS ist ja nicht 100% ANSI C und offenbar gefallen 
ihm da etliche Sachen nicht. Oder es liegt daran, dass der Code nicht 
geht...

Autor: Horschd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Soll ja auch für n PIC sein. Es gibt noch eine Welt jenseits von 
Atmel....

Autor: Rooney Bob (rooney)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja leider...
wenn ich die Hardware neu entwerfen könnte, würde ich sowieso auf ARM7 
umsteigen, da gibts reichlich Code für solche Dinge.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Horschd wrote:

> Soll ja auch für n PIC sein. Es gibt noch eine Welt jenseits von
> Atmel....

oki, zugegeben, es steht da auf englisch...

"[...] etc and has a low memory footprint with customizable build 
options to enable it to run on platforms such as the Atmel AVR, ARM & 
PIC microcontrollers."

übersetzung:

"..und hat einen geringen speicherverbrauch mit einstellbaren 
build-optionen um es auf AVR, ARM und PIC Mikrocontroller laufen zu 
lassen."

Ich nehme an, es wird sich wohl schon irgendwen finden lassen, der das 
schonmal zu PIC portiert hat. Jedenfalls sollte der Aufwand dafür 
äusserst gering sein.

Autor: Horschd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mir gings jetzt auch nicht direkt um den link an sich, sondern um den 
Post, in dem gleich mal wieder ohne groß mitzudenken AVR als Referenz 
genannt wurde. Mich stört das eben hier ein wenig, dass sich anscheinend 
die ganze Welt nur um Atmel dreht (zumindest in diesem Forum)

Autor: Rooney Bob (rooney)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke auch, dass es einfach ist von AVR nach PIC zu portieren, aber 
dummerweise hängt das vor allem vom Compiler ab wieviel man Aufwand 
reinstecken muss.

Wie gehabt der CCS Compiler ist der größte Sch***, Problem ist nur, dass 
ich keinen anderen habe und so kurzfristig auch nicht umsteigen kann.

Also optimal wäre es, wenn den Code bereits jemand mit CCS zum Laufen 
gebracht hat.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Atmel hat nunmal die grössere Ausbreitung und wenn man danach sucht, 
stöst man zeitweilig auch auf Projekte, die sich dank C mit geringen 
Aufwand schnell protieren lassen.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas P. wrote:

> Die Lib die du erwähnst habe kenn ich schon, aber da produziert mein
> Compiler nur Mist.

Aha, also:

*** ERROR 123 IN LINE 456 OF FOO.C: I produced MIST


Es liegt in der Natur von C, daß ein einziges falsches Zeichen über 1000 
Fehlermeldungen produzieren kann.

Wenn man die ersten 10 Fehlermeldungen gelesen und korrigiert hat und es 
ist keinerlei Fortschritt zu sehen, dann kann man vielleicht von 
Problemen sprechen.

Meistens sinds ganz banale Sachen (Inlcude nicht gefunden, falscher 
Pfad, falsche Schalter).


Peter

Autor: Horschd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenns n gutes C für PICs sein soll, und man bereit ist etwas zu 
investieren, dann kann ich den Compiler von Mikroelektronika empfehlen. 
Die haben auch integrierte Ethernetroutinen. Ich kenn zwar jetzt nur das 
Basic von denen, aber vom Umfang her sind die Compiler alle (fast) 
gleich. Wenn man jetzt nich gerade Assemblermässig auf letzte Byte 
achten will, dann sind die doch wohl ganz gut.

Autor: Rooney Bob (rooney)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also es gibt nur zwei Optionen, entweder der Code geht nicht... oder der 
Compiler versteht ihn nicht.

Ich tippe aber eher an den Compiler, denn der ist wie gehabt nicht ANSI 
C und da meckert er an wirklich vielen Dingen. Buffer dürfen nur eine 
gewisse Größe haben, kein signed, Pointer nur eingeschränkt nutzbar usw.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also du fragtest Eingangs nach einen "leicht portierbaren Dateisystem". 
Ich denke, das trifft für den Code zu.

Man gewinnt allerdings den Eindruck, daß du nach einer fertigen Lösung 
für dein Projekt suchst. Dann solltest du vieleich genauer beschreiben, 
was du vorhast.

Autor: Thomas P. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also die FAT32 Lib unter http://www.robs-projects.com/filelib.html ist 
für einen Controller unbrauchbar. Wenn man sie ressourcensparend 
konfiguriert braucht man noch immer 3000 Bytes RAM, welcher 8 Bit 
Controller hat das schon!!!
Abgesehen davon sind alle Low Level Routinen nicht implementiert.

Gibt es noch andere Vorschläge?

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es geht doch um lange Dateinamen auf FAT.

Abgesehen davon dass M$ dafür ein Patent angemeldet hat kann der Code 
aus

Beitrag "MMC/SD-Karte mit FAT16 an AVR"

Dateinamen bis zu einer Länge von 64 Zeichen (oder waren es 32? Noch 
nicht ausprobiert, aber jedenfalls mehr als 8.3).
Ist zwar GCC für den AVR, ist aber relativ leicht portierbar.

Werner

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.