[ARM7] Stack overflow

Gast #1637065
Lesenswert?
• ▲
▼
Hallo!

Ich verwende einen AT91SAM7X256 mit FreeRTOS und GCC.
Jetzt habe ich das Problem, dass er sich häufiger im laufenden Betrieb 
resettet, oder komplett abschmiert, sodass ich ihn neu flashen muss, 
damit er wieder läuft.

Die Stack Overflow Detection von FreeRTOS schlägt an, also vermute ich 
mal, dass das das Problem ist. Allerdings hängt sich das ganze System 
schon kurz nach dem booten auf, wenn ich dem entsprechenden Task mehr 
Stack zuteile.

Deswegen bin ich im Moment einwenig ratlos, was ich machen soll. Habe 
auch noch nicht wirklich viel Erfahrung auf dem Gebiet.
Für Tipps wäre ich dankbar...
Gast
Lesenswert?
• ▲
▼
Hi Chris,

und was verstehst du unter 'detailierte Angaben zur Hardwareumgebung' ?

Ich dachte eher, dass es vielleicht eine Stelle gibt, wo ich die gesamt 
Größe des Stacks ändern muss oder so? Also alles, was ich bisher 
versucht habe war beim Aufruf von xTaskCreate() den Parameter 
usStackDepth etwas zu vergrößern. Dies führt dann aber wie gesagt zu 
einem Absturz direkt zu Anfang.
Gast
Lesenswert?
• ▲
▼
Warum so unfreundlich?

Schaltplan habe ich keinen und der Code ist recht umfangreich.

In wie fern kann denn ein Stack Overflow mit der Schaltung zusammen 
hängen?
Und was könnten (!) die Gründe dafür sein, dass nach dem Vergrößern des 
Stacks für einen Task gar nichts mehr läuft.
Gast
Lesenswert?
• ▲
▼
Jupp schrieb:
> Und was könnten (!) die Gründe dafür sein, dass nach dem Vergrößern des
> Stacks für einen Task gar nichts mehr läuft.

Ein Programmierfehler, der irgendwo Speicher überschreibt.

Wenn dieses "irgendwo" zufällig die Stackverwaltung von FreeRTOS trifft, 
kann es sein, dass deshalb eine irreführende "Stack Overflow"-Warnung 
kommt.

Durch die Vergrößerung des Task-Stacks hat sich das Speicherabbild 
geändert, das "irgendwo" ist jetzt woanders (oder es ist derselbe Ort, 
aber der wird jetzt anders verwendet), und daher sind auch die 
Auswirkungen anders.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 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.