Programm spinnt nach deklaration von char array [400]

Gast #2383422
Lesenswert?

Hallo,

ich verwende einen Atmega 128 und AVR-GCC. Nun muss ich in meinem 
Programm gut 400 Bytes zwischenpuffern und habe dazu global eine array 
of char mit 400 Elementen deklariert. Laut dem Make-Skript ist "Data" zu 
36% voll.

Seit dieser Änderung, die natürlich Funktionen zum Lesen und Schreiben 
in das Array beinhaltet, funktioniert das Programm nicht mehr richtig:

- Displayausgaben einer bestimmten Funktion zeigen am Anfang jeder der 4 
Displayzeilen Sonderzeichen. Zunächst funktioniert es, dann gibt es 
immer mehr fehlerhafte Zeichen

- Meine Sensor-Zuordnungen (im eeprom gespeichert) sowie andere 
Einstellungen scheinen verändert zu werden. Ich verwende EEMEM mit 
eeprom_read_byte /update_byte für den Zugriff und habe nichts an den 
EEMEM-Deklarationen geändert, so dass sich das eeprom-Layout ja nicht 
verändern dürfte?

- Das Programm stürzt ab, wobei Interrupts weiter laufen

- Das Programm startet plötzlich neu.


Ich habe die eemem-Zugriffe überprüft und geschaut, ob ich irgendwo zu 
weit in einem array lese / schreibe, aber nichts gefunden.
Wie könnte ich weiter vorgehen? Anscheinend schreibt ja irgend etwas in 
den falschen Speicherbereich.

Was passiert eigentlich, wenn der Ram voll ist?

Gruß,
Chris

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren