Gast
#2383422
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