Go Down

Topic: Buffergrößen in der SdFat ? (Read 1 time) previous topic - next topic

paulinchen

Hallo,
ich habe auf dem MEGA einen größeren Sketch, wo der SRAM knapp wird.
F-Makro, Flash-library usw. habe ich alles schon eingebaut. Jetzt habe ich mal von der SD-library auf SdFat umgestellt, da diese wohl weniger Speicher verbrauchen soll. Funktioniert soweit auch gut.

Frage: Kann ich in SdFat irgendwo die verwendeten Buffergrößen einstellen und anpassen?

Viele Größe, paulinchen

pylon

Die Puffergrössen sind gegeben durch den SD-Kartenaufbau. Du musst immer einen Block lesen oder schreiben, brauchst also einen 512 Bytes grossen Puffer.

Quote
ich habe auf dem MEGA einen größeren Sketch, wo der SRAM knapp wird.


Was hast Du denn im Speicher, dass Du 8kB RAM füllst? Vielleicht können wir Dir ja helfen, den Speicherverbrauch etwas einzudämmen.

uwefed

Eine (Not)-Lösung ist den Speicher zu erweitern: http://ruggedcircuits.com/html/megaram.html
Aber sicher ist es besser zuerst den Speicherverbrauch zu optimieren.
Grüße Uwe

paulinchen

Hallo,
ja, es wird wohl Zeit, meinen Sketch zu optimieren...

Ich habe viele int-Variablen, welche aber nur Werte zwischen 0 und 100 enthalten, da würde ja auch 1 Byte reichen.
Kann ich dort also z. Bsp. statt

int VariablenName = 8;

einfach

byte VariablenName = 8;

deklarieren, oder muß ich dann mit "uint8_t" usw. arbeiten?


Ich habe auch viele Schleifen in der Art von:

for (int i = 0; i < 8; i++) {
}

sollte man dort auch das int ersetzen (falls man nicht mehr als 255 Durchgänge braucht)?

Das gleiche gilt natürlich auch für long und float, hier muß ich mal prüfen, ob ich diese Typen wirklich immer brauche...

Viele Grüße, paulinchen

marcusw

byte würde funktionieren, uint8_t ist nur eine andere Bezeichnung, zumindest, wenn man auf der Arduino-Plattform bleibt...

uwefed

Hast Du ...print(F("text") verwendet?
http://arduino.cc/forum/index.php/topic,127552.msg965539.html#msg965539
grüße Uwe

paulinchen

Wie schon oben im Anfangsposting geschrieben, habe ich F-Macro verwendet, sonstige feste Strings mit der Flash-library ins Flash verbannt usw.
Der Sketch ist halt schon 160k groß (Webserver mit SD-Karte, RTC, NTP, FTP, Logging, Schaltzeituhr mit Relais, 8x 1-Wire Sensoren DS18B20, FS20-Sensoren, Display usw.).

Ich habe schon in den Variablen-Strukturen etwa 2400 Byte, da muß ich jetzt wohl erst mal etwas optimieren...

Viele Grüße, paulinchen

Go Up