www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik IAR: Stack bei 100%


Autor: Eric (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

IAR hat zwar gar nichts mit GCC zu tun, aber och wusste nicht wo ich 
diesen beitrag hätte sonst hinpacken sollen.
Zum eigentlich Problem: Ich tippe gerade an einer Firmware für einen 
MSP.
Beim debuggen meldet mir IAR folegendes
Mon Jun 14 07:49:01 2010: The stack 'Stack' is filled to 100% (80 bytes used out of 80). The warning threshold is set to 90.% 

ich bin zwar ein absoluter Anfänger, aber ich weiß, dass es kein gutes 
Zeichen ist, wenn der Stack überfüllt ist.
Aber woran liegt das? Wie kann man das verhindern?

Danke für eure Hilfe.

Gruß
Eric

: Verschoben durch User
Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
80 Bytes ist immer anfangs eingestellt - mach ihn doch einfach größer.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In den Projektoptionen kannst den Stack größer einstellen. Der MSP430 
hat im Prinzip einen unbegrenz großen Stack, der liegt im normalen 
RAM-Bereich. Wenn dein RAM nicht zu voll ist, kann der Stack auch viel 
mehr als 80 Byte groß werden.

Autor: Eric (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Danke für die Antworten.
Hab die Option gefunden, um den Stack zu vergrößern.
Jetzt die Frage: Wo sehe ich die Speicherausnutzung? RAM, Flash?

Gruß
Eric

Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die kannst du dir beim Kompilieren im Build-Fenster anzeigen lassen. 
Musst du aber vorher einschalten, dass du alles sehen willst. Findest du 
auch bei den Optionen. Den Stack kannste dir auch unter "View" anzeigen 
lassen.

Autor: Eric (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dennis schrieb:
> Die kannst du dir beim Kompilieren im Build-Fenster anzeigen lassen.
> Musst du aber vorher einschalten, dass du alles sehen willst. Findest du
> auch bei den Optionen. Den Stack kannste dir auch unter "View" anzeigen
> lassen.

Also ich bin jetzt eigentlich jeden Reiter durchgegangen. Sowohl unter 
Project-Option, wie auch den Allgemeinen. Hab nichts von "Show memory 
information" o.ä. gefunden....

Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TOOLS -> OPTIONS -> MESSAGES -> SHOW BUILD MESSAGES -> ALL

Autor: Tony (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder

Projectoptions -> Linker -> List -> dort mal alles Anklicken

ergibt ein .map file im Outputdirectory mit allen Infos drin.

Autor: Eric (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dennis schrieb:
> TOOLS -> OPTIONS -> MESSAGES -> SHOW BUILD MESSAGES -> ALL

Ok, jetzt habe ich nach einem Rebuild eine Ausgabe von Bytes.
Ich geh mak davon aus, das CODE-Memory die (Flash-)Speichernutzung der 
Firmware und DATA-Memory der RAM ist.

Aber was ist diese (+XX absolute), dass hinter der Angabe vom 
DATA-Memory steht?

Tony schrieb:
> Projectoptions -> Linker -> List -> dort mal alles Anklicken
>
> ergibt ein .map file im Outputdirectory mit allen Infos drin.

Die Tabelle ist ja Wahnsinn. Da bin ich eigentlich schon erschlagen von 
der Informationsflut.

In der "Module Summary" wird ja die Speichernutzung aufgeführt. Was wird 
hier unter "Shared" und "Common" bzw. "Rel" und "Abs" verstanden?

Und was ist der Unterschied zwischen "Stack prev" und "Stack locally" 
beim Callstack.

Apropos Stack:
Unter "Watch" kann ich mir nicht den Stack anzeigen lassen, sofern ich 
als Variablennamen "Stack" eingebe. Du meintest doch mit "View" die 
Variablenwatchliste, oder?

Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eric schrieb:
> Aber was ist diese (+XX absolute), dass hinter der Angabe vom
> DATA-Memory steht?

Da wäre ich froh, wenn dazu hier auch nochmal jemand eine Info gibt, das 
weiß ich nämlich auch nicht.

Eric schrieb:
> Unter "Watch" kann ich mir nicht den Stack anzeigen lassen, sofern ich
> als Variablennamen "Stack" eingebe. Du meintest doch mit "View" die
> Variablenwatchliste, oder?

Nein, das meine ich nicht, sondern kannst du (nur wenn du debuggst) 
unter VIEW -> STACK den Füllstand des Stacks sehen. Der ändert sich 
halt, je nachdem, wo du grad im Programm bist. Aber wie gesagt, 
natürlich nur während du debuggst, sonst ist unter VIEW nicht viel zu 
sehen :)

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.