Unterstützung von langen Dateinamen für FAT Filesystem

OP #678234
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.
#678247
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."
OP #678254
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...
#678263
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.
Gast #678270
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)
OP #678273
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.
#678283
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
Gast #678286
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.
OP #678291
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren