PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ATtiny13 : Out of SRAM



felack
22.02.2006, 15:22
Ich habe versucht , ein Programm, das mit der Version 1.11.7.9 lief mit der 1.11.8.1 zu compilieren. Dann kam die Meldung "Out of SRAM", sobald der Befehl DIM A as Byte im Programm stand. Nach meheren Versuchen kam ich dann zu folgender Lösung:

Wenn man $HWSTACK=16 oben ins Programm setzt, dann läuft es. In der vorherigen Version war das nicht erforderlich.

Hat Mark Alberts da was im Programm geändert oder in der attiny13.dat?

felack

uwegw
22.02.2006, 15:36
Die Voreinstellung für den Stack ist 32 (Byte???). Du begrenzt den Stack nun durch den Compilerbefehl auf 16. Das spart natürlich RAM, aber du läufst gleichzeitig stärker in Gefahr, nen Stack Overflow zu erleiden... wenn das Programm also bei vielen gosubs und rekursiven Aufrufen zum Aufhängen oder Rumspinnen neigt, nicht wundern...

felack
22.02.2006, 19:31
Wie aus der Überschrift ersichtlich, handelt es sich hier um einen ATtiny13, der hat nur 64 Byte RAM.Die Frage ist, braucht jede Stackposition 2 Byte? dann ist bei $HWSTACK=32 das RAM voll und nix geht mehr. Steht die Stackgröße in der attiny13.dat oder nur in den Compileroptionen?

felack

uwegw
22.02.2006, 22:15
Wie aus der Überschrift ersichtlich, handelt es sich hier um einen ATtiny13, der hat nur 64 Byte RAM.Die Frage ist, braucht jede Stackposition 2 Byte? dann ist bei $HWSTACK=32 das RAM voll und nix geht mehr.

Die 32 in den Optionen scheint in Bytes gemessen zu sein, man könnte dann also 16 Aufrufe per Stack verwalten und hätte den halben RAM belegt...


Steht die Stackgröße in der attiny13.dat oder nur in den Compileroptionen?
Schau doch selbst nach! Beim groben überfliegen hab ich in der .dat nichts gefunden...


Wie komplex ist denn dein Programm? Muss viel gepoppt werden? ;)