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
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.
> 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.
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.
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
Tobi88 schrieb: > wo kann ich denn die aktuelle Stack / RAM-Auslastungs ablesen http://www.rn-wissen.de/index.php/Speicherverbrauch_bestimmen_mit_avr-gcc
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.