Gast
#637216
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?
|
Anzeige
|
struct mit Fehler
Gast
#637216
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?
> sporadisch stürzt mein Atmega128 dann ab.
Sowas riecht nach Stack-Überlauf.
Gast
#637238
ok, und wie kann ich jetzt vorgehen? Die struct wird nur angelegt und noch nirgendwo im Programm benutzt. 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 schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|