BOOTRST Fuse ohne Bootloader

Gast #3059569
Lesenswert?
• ▲
▼
Hallo,

was passiert bei einem AVR ATmega88, wenn man aus Versehen die BOOTRST 
Fuse programmiert ohne einen Bootloader auf dem Chip zu haben?
Kommt es zu Fehlfunktionen?

Ich habe es aus Versehen in einer Anwendung nämlich getan, aber bisher 
keine Probleme festgestellt. Ändere das natürlich umgehend, aber die 
Grundfrage interessiert mich dennoch.

Danke.
Gast #3059613
Lesenswert?
• ▲
▼
Nach dem Chip erase steht in allen Speicherstellen 0xFF (= opcode für no 
operation)(wenn ich mich recht erinnere)
Beim Flashen wird der Speicher nur mit dem Programm voll geschrieben, 
der Rest bleibt 0xFF.
Wenn das Programm kleiner ist als die Adresse für den 
Bootloadereinsprung, steht auch dort 0xFF.
Programmzeiger springt dort hin, führt den nop aus... bis zum Ende des 
Speichers. Von dort Überlauf des Programmzeigers -> Sprung an Adresse 
0x0000, wie beim Start ohne bootrst, das Programm wird normal 
ausgeführt.

Anders natürlich, wenn das Programm größer als die Bootrst 
Einsprungadresse. Dann kommt wahrscheinlich Müll raus.
Gast #3059883
Lesenswert?
• ▲
▼
MWS schrieb:

> NOP = 0x00 <> 0xFF

Wirkt aber trotzdem genau wie ein NOP. Ich habe nie im Detail alle 
undokumentierten Opcodes des AVR untersucht, aber die paar, die ich 
(gezielt) auspobiert habe, tun allesamt nur eins: dasselbe wie NOP.

Vermutlich passiert die Decodierung tabellengetrieben und nicht per 
unvollständiger Klapperlogik wie zu seligen 6502-Zeiten.

Und wenn Atmel weitere Opcodes für Befehlssatzwerweiterungen braucht, 
dann wird $ff mit an Sicherheit grenzender Wahrscheinlichkeit der 
allerletzte sein, den sie verwenden werden...
Gast #3059918
Lesenswert?
• ▲
▼
c-hater schrieb:
> aber die paar, die ich
> (gezielt) auspobiert habe, tun allesamt nur eins: dasselbe wie NOP.

Auf unterschiedlichen AVR's ?
Das Problem undokumentiertem Verhaltens - es gibt keine Garantie dafür, 
ob's bei einem oder allen so ist, ob das einfach ignoriert wird, oder 
auch einen Reset auslöst.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.