mikrocontroller.net

Forum: Compiler & IDEs struct mit Fehler


Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe folgende struct angelegt:

typedef struct
{
 float  x,y;
} LCD;

LCD A,B,C,S,E;

sporadisch stürzt mein Atmega128 dann ab.
Wo habe ich einen Fehler gemacht?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> sporadisch stürzt mein Atmega128 dann ab.

Sowas riecht nach Stack-Überlauf.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, und wie kann ich jetzt vorgehen?
Die struct wird nur angelegt und noch nirgendwo im Programm benutzt.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael wrote:

> ok, und wie kann ich jetzt vorgehen?

Das hängt davon ab, was du zum Debuggen zur Verfügung hast.  Eine
gängige Methode, die Stackbenutzung festzustellen ist, dass man
ganz am Anfang (z. B. in der section .init3) den gesamten RAM
mit einem konstanten Muster füllt.  Später nimmt man dann den
Debugger und sieht nach, wie weit dieses Muster durch den Stack
(der vom Ende des RAMs nach unten wächst) überschrieben worden
ist.

> Die struct wird nur angelegt und noch nirgendwo im Programm benutzt.

Trotzdem wird der Platz dafür ja angelegt, entweder statisch oder
auf dem Stack (für lokale Variablen).

Du wirst nicht umhin kommen, dir deine RAM-Benutzung mal genauer
zu Gemüte zu führen.

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.