Stack-Size unter GCC festlegen?

Gast #76637
Hallo

Laut Datenblatt hat mein ATmega16 1k SRAM und der beinhaltet den Stack.
Korrekt?? Nun stürtzt mein Programm aber bei einem bss Wert von 600
etwa ab und ich vermute, das der Stack zu voll ist. Kann ich unter GCC
in Verbindung mit dem ProgrammersNotepad2 die Größe des Stack den ich
nutzen möchte festlegen? Wenn ja, wie?

Gruß Marco
Die Stackgröße kann man nicht festlegen. Die CPU nimmt sich immer soviel
sie braucht. D.h. es hängt nur allein von der Schachtelungstiefe ab,
also wieviele Unterprogramme ineinander aufgerufen werden.

Unbedingt vermeiden muß man rekursive Funktionen. Die benötigen immer
wesentlich mehr CPU-Zeit und Flash als ein Schleifenprogramm. Und den
Stack fressen sie nicht nur, sie verschlingen ihn regelrecht wie ein
schwarzes Loch.

600 Bytes Daten klingen schon mächtig viel.
Hast Du auch gut überlegt, daß Du wirklich soviel brauchst und auch
nicht alles als globale Variablen deklariert ?


Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.