PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SWstack, HWstack, Framesize????



Dani-Bruchflieger
01.05.2007, 22:49
Hi,

Ich habe mal ne Frage, was diese 3 Statements bedeuten, und wo ich herauslesen kann, welche Werte für den jeweiligen Prozessor / das jeweilige Programm am besten sind.
Hintergrund:
Ich hatte bisher noch nie Probleme mit den Werten, die Bascom in den Compilereinstellungen vorgibt Hw32 Sw8 und Fs24, nur wenn ich Tiny13 Prozessoren verwenden will bekomme ich immer Fehler 22 Out of SRAMspace wenn ich Variablen deklariere - einzige Möglichkeit mit "at &H61" beginnend den Speicherort manuell festzulegen bzw in der attiny13.dat in der Zeile 6 den Start des Sram auf 61 zu verlegen.
Ich hatte dieses Problem Mark Alberts berichtet und ihm eine Beispielprogrammdatei mitgeschickt. Er schrieb mir, daß ich folgende Werte probieren solle: hw40 sw8 fs8. Das eine Programm läuft damit nun, aber ein anderes meckert bei den letzten 2 variablen auch wieder rum: Out of SRAMspace. das spezielle Programm nutzt die I2C Slave Library, die man erst kaufen muß, sowie 2 Word und 4 Byte Variablen.
Wo kann man also rausfinden, welche Werte am besten einzusetzen sind?

Grüße Dani.

linux_80
02.05.2007, 01:26
Hallo,

schau mal ins Wiki, da gibts eine Seite dazu:
https://www.roboternetz.de/wissen/index.php/Bascom_Inside

Der Tiny13 hat nur 64 Byte SRAM, da wirds schnell knapp.
Solange man keine ISR verwendet, kann man den HWstack auch mal kleiner als 32 machen.

Bei der I2C-Slave-Lib wird aber die ISR verwendet, also muss der HWstack mehr als 32 haben, was aber auch bedeutet, das man weniger normale Variablen benutzen kann. Es darf halt nie mehr als 64 rauskommen.

Wenn der Fehler beim Compilieren noch nicht kommt, kann man den Status der Speicherverteilung anzeigen lassen, steht in einer Text-Datei. Zu erreichen auch im Menü -> Program -> Show Results.
So kann man sich langsam an das Limit herantasten.

Dani-Bruchflieger
02.05.2007, 12:42
Hi,

OK Danke - muß ich mir nochmal in Ruhe durchlesen, damit ich da durchsteige. Bis dahin hab ich meine attiny13.dat dahingehend geändert, daß der SRAM erst bei &H61 beginnt und nicht schon bei &H60 - dadurch geht mir zwar 1 Byte verloren, aber meine Programme laufen wenigstens auf dem Chip...

Grüße Dani.