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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.