www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik [ARM7] Stack overflow


Autor: Jupp (Gast)
Datum:

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

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohne detailierte Angaben zur Hardwareumgebung kann hier glaub ich keiner 
was sinnvolles dazu sagen.

Autor: Jupp (Gast)
Datum:

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

Autor: Jupp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also das mit den detailierten Angaben zur Hardwareumgebung war durchaus 
eine ernst gemeinte Frage. Und auch sonst würde ich mich über 
Hilfestellungen freuen :)

Autor: Guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist daran nicht zu verstehen?
Schaltplan posten, Code posten, fertig.

Autor: Jupp (Gast)
Datum:

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

Autor: tuppes (Gast)
Datum:

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

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.