Gast
#444522
Wie geht ihr dabei genau vor? Wie findet ihr raus, wieviel stack effektiv benötigt wird? Gruss dani
|
Anzeige
|
Grösse des Stack's bestimmen...
Gast
#444522
Wie geht ihr dabei genau vor? Wie findet ihr raus, wieviel stack effektiv benötigt wird? Gruss dani Das hängt sehr von der Architektur und vom Compiler ab. Manche Compiler benötigen mehrere Stacks, manche pushen sehr viel, manche überlagern Variablen usw. Z.B beim 8051 mit dem Keil C51 im Small Modell reichen in der Regel 16..32 Byte Stack aus. Peter In ASM weiß der Programmierer ja, wie hoch die maximale Verschachtelungstiefe der Unterprogrammaufrufe (einschließlich ISR-Aufrufe) seines Programms ist. Dazu kommt noch der maximale Stackbedarf durch Registersicherung (push/pop). Bei anderen Sprachen halte ich mich etwas zurück. ...
Gast
#444539
hab nen c167, stackgrösse momentan 512 Byte... hab manchmal nen stackoverflow... gibts die möglichkeit den stack ins externe ram auszulagern, damit ich diesen entsprechend grösser machen kann, oder was gibts grundsätzlich für möglichkeiten? Daniel wrote:
> hab manchmal nen stackoverflow...
Woher weißt Du das ?
Wenn Du nen Emulator benutzt, dann sollte der doch auch anzeigen können,
welche Funktion da so gefräßig ist.
Peter
Gast
#444627
eine gängige Methode ist das Ram mit definierten Werten vorzubelegen (z.B. haben wir da immer 'AFFE' reingeschrieben) und dann zyklisch oder auf Anfrage zu checken bis wohin die Affen überschrieben wurden. Das max. wird natürlich nur erreicht wenn man alle Codepfade durchlaufen hat. Es ist zwar keine 100%ige Methode aber besser als nur zu raten. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|