Forum: Compiler & IDEs struct mit Fehler


von Michael (Gast)


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?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> sporadisch stürzt mein Atmega128 dann ab.

Sowas riecht nach Stack-Überlauf.

von Michael (Gast)


Lesenswert?

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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.