Forum: Mikrocontroller und Digitale Elektronik Probleme mit dem EEPROM


von PC-Anfänger (Gast)


Lesenswert?

AVR Studio 4, Atmega8, AVR-Tutorial Kapitel EEPROM

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Speicher

In dem Kapitel zum Speicher stehen mehrere Beispielprogramme.

Teil 1: Es wird ein Text im Programmspeicher abgelegt:


Beispielprg. aus dem Tutorial:
***
...
    out     UDR, r16
    ret

; Konstanten werden hier im Flash abgelegt

text:
    .db "AVR-Assembler ist ganz einfach",10,13,0
    ; Stringkonstante, durch eine 0 abgeschlossen
    ; die 10 bzw. 13 sind Steuerzeichen für Wagenrücklauf und neue Zeile
****

Schaue ich mir nun im Debugger Memory an, speziell den Programmspeicher, 
so erkenne ich im HEX-Editor, wenn ich die Zeichen daneben noch anzeigen 
lasse - an einer Stelle im Speicher den Text "AVR-Assembler ist ganz 
einfach"

Teil 2:

Wie in Beispiel 1 wird ein Text im Speicher abgelegt, jedoch diesmal 
nicht im Programmspeicher, sondern im EEPROM.

Beispielprogramm:
*****
...
    ret

; hier wird der EEPROM-Inhalt definiert

.ESEG

text1:
    .db     "Strings funktionieren auch ", 0
text2:
    .db     "im EEPROM",10,13, 0
*** Ende Programm

Nun gehe ich davon aus, dass der Inhalt unter den Speicheradressen text1 
und text2 im EEPROM gespeichert wird und ich war irgendwie der Ansicht, 
dass ich den Text "Strings funktionieren auch..." im Speicherfenster des 
EEPROMS sehen würde - aber das ist nicht der Fall, schaue ich mir im 
Debugger das Memory an, dann sind alle Werte dort auf "FF"?

Wo ist vielleicht grade mein Denkfehler?
von PC-Anfänger (Gast)


Lesenswert?

einfaches Beispielprogramm:


.include "m8def.inc"
.cseg
Data0: .db "Text im Programmspeicher"
.dseg
.eseg
Data1: .db "This is a Text"



Das EEPROM ist einfach leer, der Text "This is a text" steht einfach 
nicht im EEPROM, aber "Text im Programmspeicher" ist im Programmspeicher 
im HEX-Editor zu sehen.
von Krapao (Gast)


Lesenswert?

Hast du nach dem Assemblieren auch die .eep Datei mit dem EEPROM Inhalt 
in den AVR geflasht?

"Wenn man dieses Programm assembliert, erhält man außer der .hex-Datei 
noch eine Datei mit der Endung .eep. Diese Datei enthält die Daten aus 
dem EEPROM-Segment (.eseg), und muss zusätzlich zu der hex-Datei in den 
Controller programmiert werden."
aus AVR-Tutorial: Speicher
von Karl H. (kbuchegg)


Lesenswert?

Der Assembler erzeugt eine eigene Datei mit der Endung EEP für den 
EEPROM Inhalt.
Der Simulator lädt das aber nicht automatisch. Du musst es extra in den 
Simulator laden. (Studio 4: Debug - Up/Download Memory)
von PC-Anfänger (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Der Assembler erzeugt eine eigene Datei mit der Endung EEP für den
> EEPROM Inhalt.
> Der Simulator lädt das aber nicht automatisch. Du musst es extra in den
> Simulator laden. (Studio 4: Debug - Up/Download Memory)

Hey cool - danke für die Antwort noch zu so später Stunde. Jetzt hat es 
funktioniert, ich sehe meinen Text im EEPROM-Fenster und bin glücklich 
:-)
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.