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


von Rooney B. (rooney)


Lesenswert?

Hallo!!

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


lg
Thomas

von Niels H. (monarch35)


Lesenswert?

Ich glaube, kein Dateisystem ist simpler, besser Dokumentiert und 
portierbarer als Fat32.

von Obelix (Gast)


Lesenswert?

Das nennt sich dann VFAT.

von Rooney B. (rooney)


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.

von Niels H. (monarch35)


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?

von Rooney B. (rooney)


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.

von Niels H. (monarch35)


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."

von Rooney B. (rooney)


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...

von Horschd (Gast)


Lesenswert?

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

von Rooney B. (rooney)


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.

von Niels H. (monarch35)


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.

von Horschd (Gast)


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)

von Rooney B. (rooney)


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.

von Niels H. (monarch35)


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.

von Peter D. (peda)


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

von Horschd (Gast)


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.

von Rooney B. (rooney)


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.

von Niels H. (monarch35)


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.

von Thomas P. (Gast)


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?

von Werner B. (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.