Forum: Mikrocontroller und Digitale Elektronik EEPROM wird beim Debug-Start ungewollt überschrieben


von Florian B. (Gast)


Lesenswert?

Hallo zusammen,

ich benutze einen ATmega644. Zur Programmierung verwende ich Atmel 
Studio 6.0.1882. Zum Debuggen verwende ich den JTAGICEmkII neueste 
Firmware. Das Programm ist in C geschrieben.

Mir ist aufgefallen, dass sich nach ein- oder mehrmaligem Starten und 
Stoppen des Debug-Vorgangs der Inhalt meines EEPROMs geändert hat. Der 
Inhalt des EEPROMs ändert sich nicht beim Ein- und Ausschalten der 
Steuerung, nur beim Starten des Debuggings. Ein oder mehrere Bytes 
(Position willkürlich) weisen nach Starten des Debugvorgangs nicht mehr 
den original Zustand auf, obwohl der Code noch gar nicht angelaufen ist.

Das Problem scheint unabhängig vom Code zu sein. Ich habe mehrere 
Programme getestet.

Der Brown-Out Detector hat darauf auch keinen Einfluss. Das Problem 
existiert bei jeder Einstellung.

Ich vermute, dass sich der Programmzeiger beim Starten des Debugvorgangs 
irgendwie selbständig macht?! Auch die Option "use external reset" hat 
darauf keinen Einfluss.

Kennt dieses Problem noch jemand? Oder kann mir jemand sagen, woran das 
liegen könnte und was ich eventuell falsch mache?

Vielen Dank an alle

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Setz doch mal die EEPROM schutz fuse.

von Florian B. (Gast)


Lesenswert?

Danke für die Hilfe Martin.
Ich hab das EESAVE fuse gesetzt, habe aber das Problem immernoch. Hast 
du noch eine Idee, woran es liegen könnte?

von Florian B. (Gast)


Lesenswert?

Das Problem existiert natürlich nur, wenn "Preserve EEPROM" aktiviert 
ist. Sonst wird das EEPROM ohnehin jedes mal beim Starten des Debuggings 
neu beschrieben. Genau das will ich aber nicht.
Weiß noch jemand Rat?

Vielen Dank

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Dann kann ich nix weiter zu sagen, mach normalerweise UART debugging 
über die Konsole :X

von Florian B. (Gast)


Lesenswert?

Hat sonst keiner dieses Problem??? Es muss doch noch irgendjemand mit 
dem Atmelstudio 6.0 und dem JTAGICE mkII arbeiten (eve. auch mit dem 
ATmega644), und ein Programm haben, das schreibenderweise auf das EEPROM 
zugreift.
Ich hab diesen Fehler auch lange nicht entdeckt, weil nicht immer der 
gleiche Speicherbereich des EEPROM überschrieben wird. Erst nach 
mehrmaligem Starten des Debug-Vorgangs werden nach und nach mehr und 
mehr Zellen geändert. Ich habe das rausgefunden, indem ich den 
Debug-Vorgang nur kurz gestartet habe und gleich wieder abgebrochen 
habe. Dann habe ich den EEPROM-Inhalt vor und nach dem Debug-Start 
verglichen.

Woran könnte das noch liegen oder hat jemand das gleiche Problem?
Vielen Dank

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.