www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Grösse des Stack's bestimmen...


Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie geht ihr dabei genau vor? Wie findet ihr raus, wieviel stack 
effektiv benötigt wird?

Gruss
dani

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

...

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: JojoS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.