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.
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.
Dieter M. schrieb: > Bootloadereinsprung, steht auch dort 0xFF. > Programmzeiger springt dort hin, führt den nop aus... NOP = 0x00 <> 0xFF
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...
c-hater schrieb: > Und wenn Atmel weitere Opcodes für Befehlssatzwerweiterungen braucht, > dann wird $ff mit an Sicherheit grenzender Wahrscheinlichkeit der > allerletzte sein, den sie verwenden werden... Hoffentlich weiß Atmel das auch.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.