Funktionen im Bootloader werden ohne Aufruf ausgeführt

Gast #673495
Lesenswert?
• ▲
▼
Hallo,

ich habe zwei Funktionen zum schreiben und lesen des Flashspeichers im 
BOOTLOADER eine ATMega128 platziert. Wenn ich nun das Programm mittels 
AVR Studio in den Mikrocontroller lade, werden die Funktionen schon 
einmal ausgeführt ohne das ich das Programm gestartet habe. Die Fuse 
BOOTRST ist aus. Woran könnte das liegen?

Vielen Dank und viele Grüsse

Michael
Gast #673543
Lesenswert?
• ▲
▼
Um in Erfahrung zu bringen warum irgendein Code ausgeführt wird, weil er 
im BOOTLOADER steht, bevor das Programm startet, soll ich diesen hier 
hereinstellen oder was meinst du mit dieser Antwort?
Gast #673585
Lesenswert?
• ▲
▼
Also, der Code ist im Anhang. Nachdem der Code in den Speicher 
gedownloaded wurde vom AVR Studio steht im Flash an der Stelle 0x0192 
schon der Wert 0xAA.

Diese beiden Funktionen wurden in den BOOTLOADER gelegt.

ReadFlashByte                    CODE      0001DFFE
WriteFlashByte                   CODE      0001E054

Wenn ich die Funktion WriteFlashByte in der main auskommentiere, dann 
wird die Speicherstelle nicht überschrieben.
Angehängte Dateien:
#673611
Lesenswert?
• ▲
▼
Michael wrote:
> Also, der Code ist im Anhang. Nachdem der Code in den Speicher
> gedownloaded wurde vom AVR Studio steht im Flash an der Stelle 0x0192
> schon der Wert 0xAA.

Nein, es steht erst einige ms später drin, nachdem das Programm 
ausgeführt wurde.

Ein MC hat keinen Startbutton, Programme werden ausgeführt, sobald 
Spannung anliegt.
Auch jeder SPI-Zugriff macht implizit einen (externen) Reset.

Wenn Du also Fuse, Lockbits, Flash, EEPROM lesen, schreiben ausführst, 
wird jedesmal das Programm gestartet (= 9 Schreibzyklen verbraucht).

Ein unbedingtes Schreiben nach jedem Reset ist sehr schlecht für den 
Flash (begrenzte Zahl an Schreibzyklen).


Peter
Gast #673658
Lesenswert?
• ▲
▼
Hallo,

die main brauche ich nur zum testen. Später wird das noch anders.
Ich hatte vergessen den Flash vor dem beschreiben zu löschen, deshalb 
stand es noch so drin. Jetzt funktioniert es. Danke

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