Hallo,
ich versuche beim ATMega128 einen Bootloader zu programmieren,hänge aber
jetzt schon bei den ersten Schritten. Ich versuche eine komplette page mit
konstanten Werten zu programmieren und lese die page dann wieder, was aber
unterschiedliche Ergebnisse bringt.
Hier mal mein Listing, wie ich die page schreibe:
Lesen erfolgt mit lpm-Befehl, ich lese aber nicht abwechselnd 0x10 und 0x55. Kann mir jemand helfen?
Danke
snoopy
ich versuche beim ATMega128 einen Bootloader zu programmieren,hänge aber
jetzt schon bei den ersten Schritten. Ich versuche eine komplette page mit
konstanten Werten zu programmieren und lese die page dann wieder, was aber
unterschiedliche Ergebnisse bringt.
Hier mal mein Listing, wie ich die page schreibe:
Code:
schreibe_page:
ldi xl, 255 ; anzahl der bytes
ldi xh, 0
r16, 0x20 ; hier die Adresse
r17, 0x50
schreibe_pageloop:
ldi r0, 0x10 ; hier die daten low und high
ldi r1, 0x55
mov zl, r16 ; hier die adresse nach z
mov zh, r17
ldi r19, 1<<SPMEN ; SPMCR = 0x01
sts SPMCSR, r19 ; page speichern
spm
ldi r19, 1 ; nächste adresse
ldi r20, 0
add r16, r19 ; r16 und r17 ist die adresse
adc r17, r20
sbiw xl, 1
brne schreibe_pageloop
Lesen erfolgt mit lpm-Befehl, ich lese aber nicht abwechselnd 0x10 und 0x55. Kann mir jemand helfen?
Danke
snoopy