Forum: Mikrocontroller und Digitale Elektronik Atmega8 / 88Tiefe der Schachtelung von Funktionen


von Tobi88 (Gast)


Lesenswert?

Guten Abend zusammen,

ich wollte ein etwas aufwendigeres Programm mit meinem Atmega8 bzw 
88(ich habe hier beide rumliegen) schreiben und wollte vorab wissen bis 
zu welcher Tiefe ich Funktionsaufrufe schachteln kann.
 Mein Prof meinte damals nämlich dss nich mehr als zwei ineinandr 
verschachtelte Funktionen aufgerufen werden können weil sonst der AVR 
"aussteigt" habt ihrdazu Erfahrungswerte?

Liebe Grüße

von Timmo H. (masterfx)


Lesenswert?

Du kannst so viele Funktionen verschachteln bis dein Stack voll ist. Auf 
den Stack kommen neben den Rücksprungadressen auch die Register die 
gesichert werden müssen.

von holger (Gast)


Lesenswert?

> Mein Prof meinte damals nämlich dss nich mehr als zwei ineinandr
>verschachtelte Funktionen aufgerufen werden können weil sonst der AVR
>"aussteigt" habt ihrdazu Erfahrungswerte?

Unsinn. Solange der Stack reicht kannst du verschachteln solange du 
willst.

von Eumel (Gast)


Lesenswert?

Bis der Stack voll ist. Die (maximale) Größe des Stack ist gleich der 
des Ram. Hast du noch andere Sachen im Ram halt entsprechend weniger. 
Außerdem ist zu beachten was bei einem Funktionsaufruf alles auf den 
Stack gelegt wird. Das ist minimal die Rücksprungadresse kann aber auch 
mehr sein.

von Tobi88 (Gast)


Lesenswert?

soll heissen ist also anhängig von der anzahl der bytes die die lokalen 
Variablen der funktionen brauchen + deren rücksprungaddressen ..richtig?

wo kann ich denn die aktuelle Stack / RAM-Auslastungs ablesen wenn ich 
nicht im genuss eines AVR_Studio kompatiblen flashers bin sondern nur 
einen USBASP?

liebe grüße

von Stefan (Gast)


Lesenswert?

Such mal hier im Forum nach Stackview.
Stefan

von Tobi88 (Gast)


Lesenswert?

brachte leider keine ergebnisse

von Josef D. (jogedua)


Lesenswert?

Tobi88 schrieb:
> wo kann ich denn die aktuelle Stack / RAM-Auslastungs ablesen

http://www.rn-wissen.de/index.php/Speicherverbrauch_bestimmen_mit_avr-gcc

von Stefan (Gast)


Lesenswert?


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.