Forum: Mikrocontroller und Digitale Elektronik PetitFS von ELM-Chan Was ist mit forward gemeint?


von C. H. (hedie)


Lesenswert?

Hallo zusammen...

Ich versuche mich derzeit gerade an dem PetitFS von ELM-Chan

Doch etwas kleines irritiert mich noch...

Ich habe hier den Generic Code angepass damit es auf meine Hardware 
passt.
Bei der Funktion diskReadp gibt es folgenden Abschnitt:
1
    /* Receive a part of the sector */
2
      if (buff) {  /* Store data to the memory */
3
        do
4
          *buff++ = rcvr_mmc();
5
        while (--cnt);
6
      } else {  /* Forward data to the outgoing stream */
7
        do {
8
          d = rcvr_mmc();
9
        ---->>>  FORWARD(d);
10
        } while (--cnt);
11
      }
12
13
      /* Skip trailing bytes and CRC */
14
      skip_mmc(bc);
15
16
      res = RES_OK;

Wie muss ich den hier die Funktion FORWARD implementieren?
Was hat diese zu tun?


ByTheWay.... Wenn ich alles deaktiviere bis auf Read
1
#define  _USE_READ  1  /* 1:Enable pf_read() */
2
3
#define  _USE_DIR  0  /* 1:Enable pf_opendir() and pf_readdir() */
4
5
#define  _USE_LSEEK  0  /* 1:Enable pf_lseek() */
6
7
#define  _USE_WRITE  0  /* 1:Enable pf_write() */
8
9
#define _FS_FAT12  1  /* 1:Enable FAT12 support */
10
#define _FS_FAT32  0  /* 1:Enable FAT32 support */

Dann erzeugt es mir immernoch 4.5Kb Code
Auf der Webseite steht jedoch, 2-4kb
Was mache ich also falsch?
Wie kann ich das PetitFS mit 2Kb compilieren?

Ich habe einen Atmega48

Grüsse und danke schonmal

von Honk von und zu Sparfuchs (Gast)


Lesenswert?

ich würde auf ein Makro tippen da alles groß geschrieben ist. Setzt 
wahrscheinlich den Lese/Schreib-Pointer auf d. Hast du vielleicht 
vergessen einen Header zu laden?

habe mal FatFS auf den ARM laufen lassen und kann mich nicht erinnern so 
"tief" im Quellcode irgend was anpassen zu müssen. Hat sich nur auf paar 
SPI Funktionen beschränkt und was da welche Funktion machen sollte stand 
in einer Datei beschrieben.

von holger (Gast)


Lesenswert?

>Was mache ich also falsch?

Der Controller ist zu klein;)

>Wie kann ich das PetitFS mit 2Kb compilieren?
>Ich habe einen Atmega48

Dann nimm einen Atmega168 oder noch besser Atmega328.
Dann bleibt neben dem PetitFS vieleicht auch noch
Flash und RAM für ein Programm über.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Claudio Hediger schrieb:
> Was hat diese zu tun?

"Forward" heißt so viel wie "Weiterleiten".

Was das genau in deinem Kontext bedeutet, weißt du hoffentlich besser
als ich.

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

"Forward" wird nur gebraucht, wenn man den RAM-Speicherplatz für den 
Puffer zur Zwischenspeicherung der gelesenen Daten einsparen will oder 
muss. Welche Frage lässt der Test "If a NULL is given to the Buffer, the 
read bytes will be forwarded to the outgoing stream instead of the 
memory. The streaming function will be typically built-in the low level 
disk read function." aus der Anleitung von ChaN offen?

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.