Gast
#849298
Hallo, habe da mal eine Frage zur Bestimmung der Stackgröße in C. Arbeite mit dem IAR und den AVRs (meist mega). Der IAR verwendet ja einen CStack (für die Daten) und einen RStack (für die Rücksprungadresse). Hatte jetzt schon mal den Fall das ein Programm lief, und nach ein paar Erweiterungen auf mal immer wieder abstürzte. Durch herumprobieren habe ich dann herausgefunden das die Abstürze ausbleiben wenn ich den CStack vergrößere. Habe den dann einfach auf 0xff gesetzt und alles läuft seit dem. Nun würde ich gerne wissen wie ich den maximal benötigte Stackgröße bestimmen kann? Beim RStack ist das ja die Anzahl der verschachtelt aufgerufenen Funktionen, also noch recht übersichtlich (im schlimmsten Fall zählen ;). Aber wie sieht das beim CStack aus? Einzige Idee die ich da hatte (und hier im Forum auch schon in anderem Zusammenhang gelesen habe) ist ein Muster ins Ram zu schreiben, das Programm durchlaufen zu lassen und am Ende schauen wie weit dieses Muster zerstört wurde. Geht das auch einfacher? Bzw ist das ja auch nicht zu 100% aussagekräftig, man müsste ja alle möglichen Zustände durchspiele um die Größe sicher zu bestimmen. Gruß