EEPROM Werte nach Compilieren falsch

Gast #4184435
Lesenswert?

Hallo,

ich arbeite mit Atmel Studio 6.2. In meinem Programm habe ich mit EEMEM 
ein 2D-Array mit Kommandos im EEPROM definiert. Das funktionierte über 1 
Jahr zuverlässig. Auf der Suche nach einem Bug ist mir gestern 
aufgefallen, dass das Kommando addnumber (erstes im Array) nichtmehr 
funktioniert. Der Kompiler setzt den String "addnumber" als "addLumber" 
um.
Deklaration und übersetzte EEPROM Speicher sin im Anhang 
"Gegenueberstellung.txt"
1
char eecommands[KommandoAnz][14] EEMEM = {"addnumber\0","delnumber\0","delallnumber\0","switchbycall\0",    
2
                      "answer\0","name\0","free1\0","relfunc\0",              
3
                      "fencealarm\0","mbalarm\0","dcoutfunc\0","poweron\0",      
4
                      "poweroff\0","status\0","xstatus\0","sensitivity\0",      
5
                      "alarmreset\0","fencecal\0","reset\0","credit\0",        
6
                      "free2\0","autoreset\0","autostart\0","fall\0",          
7
                      "case\0"};



eeprom 0x0010  6c 6e 75 6d 62 65 72 00 00 00 00 00 64 65 6c 61 
lnumber.....dela
eeprom 0x0020  6c 6c 6e 75 6d 62 65 72 00 00 73 77 69 74 63 68 
llnumber..switch
eeprom 0x0030  62 79 63 61 6c 6c 00 00 61 6e 73 77 65 72 00 00 
bycall..answer..
usw.

Kann mir jemans sagen, wo ich hier einen Fehler gemacht habe?

Danke und Gruß
Sebastian
Angehängte Dateien:
Gast #4184445
Lesenswert?

Sebastian schrieb:
> Kann mir jemans sagen, wo ich hier einen Fehler gemacht habe?

wenn es vorher ging, wird es wohl kein Fehler von dir sein.

zwischen l und n liegt nur 1bit. Eventuell ist ja die Zelle defekt. Ist 
es denn in der eep Datei vor dem Transfer auf den µC noch richtig?

\0 kannst du dir sparen, das kann der Compiler selber.
Gast #4184588
Lesenswert?

Hallo,
Danke an euch beide.

Ja es war der Prozessor. Hab ich mir nicht vorstellen können, dass ein 
Prozessor so schnell den Geist aufgibt. Und das auf so eine gemeine Art. 
Den Inhalt vom EEPROM konnte ich nicht auslesen und vergleichen. Also 
hab ich Flash und EEPROM überschrieben und bin auf diesen Fehler 
gestoßen.
Lange Rede kurzer Sinn. Jetzt gehts.

Nochmals Danke und Gruß
Sebastian
#4185489
Lesenswert?

Sebastian schrieb:
> Das funktionierte über 1
> Jahr zuverlässig.

Ich würde mal das Programm durchsuchen, ob irgendwo ständig auf den 
EEPROM geschrieben wird. Solche Programmierfehler können sich durchaus 
erst nach einem Jahr auswirken.

Falls diese Konstanten nie geschrieben werden, würde ich sie besser im 
Flash ablegen.

Brownout hast Du natürlich aktivert?
Ohne BOR ist ein Flippen des EEPROM normal.

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