Forum: Mikrocontroller und Digitale Elektronik AVR lock bits und das Überschreiben des Bootloaders


von captan-LOCK-baer (Gast)


Lesenswert?

Hallo,

ich war ja immer der Meinung, dass der Bootloader im ATmega nicht per 
Quellcode ausgetauscht werden kann. Es würde also nur gehen die 
Application-Section vom Bootloader aus zu überschreiben.

Nun bin ich allerdings im Datenblatt unter den Einstellungen für die 
Lock-Bits (Program And Data Memory Lock Bits) auf diese Aussage 
gestoßen:
BLB12 = 1  und  BLB11 = 0
==>  SPM is not allowed to write to the Boot Loader section. SPM is not 
allowed to write to the Boot Loader section.

(BLB = Boot Look Bit)


Würde das nun bedeuten, dass es im anderen Fall (also BLB12=1 und 
BLB11=1) also doch gehen würde den Bootloader vom Quellcode aus neu zu 
programmieren?

von Purzel H. (hacky)


Lesenswert?

Ja. Allerdings ist waehrend der Programmierung die Ausfuehrung gesperrt. 
Das wird dann etwas muehsam...  der programmcounter steht !

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

captan-LOCK-baer schrieb:
> Würde das nun bedeuten, dass es im anderen Fall (also BLB12=1 und
> BLB11=1) also doch gehen würde den Bootloader vom Quellcode aus neu zu
> programmieren?

Nein. Nur aus der NRWW-Sektion kann man auf das Flash schreiben. Die 
Applikation liegt in der RWW-Sektion.

von Purzel H. (hacky)


Lesenswert?

Lies das Kapitel nochmals genau durch. RWW heisst Read While Write und 
NRWW heisst No Read While Write.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Angehängte Dateien:

Lesenswert?

Siehe Bilder.

von Purzel H. (hacky)


Lesenswert?

Was auch immer. Den Bootloader neu zu programmieren per Software ist 
eine ganz schlechte idee. Denn was geschieht wenn die Power verschwindet 
?

Weshalb wollte man den bootloader neu programmieren ? Weil er Schrott 
ist ?

von Andreas (Gast)


Lesenswert?

Poly Oschi schrieb:
> Was auch immer. Den Bootloader neu zu programmieren per Software ist
> eine ganz schlechte idee.

Quatsch.

Poly Oschi schrieb:
> Denn was geschieht wenn die Power verschwindet
> ?

Für diesen Fall kann amn Vorkehrungen treffen, und dazu braucht man 
nicht einmal eine unterbrechungsfreie Stromversorgung. Die 
Kopierroutine, die den alten Bootloader mit dem neuen Bootloader 
überschreibt, kann nämlich ganz leicht feststellen, ob sie dabei 
unterbrochen wurde und in diesem Fall den Vorgang wiederholen.

Poly Oschi schrieb:
> Weshalb wollte man den bootloader neu programmieren ? Weil er Schrott
> ist ?
In jeder Software finden sich früher oder später Fehler - Bootloader 
bilden da keine Ausnahme. Außerdem kann man ggfs. die Funktionalität des 
Bootloaders erweitern.

von Purzel H. (hacky)


Lesenswert?

Autsch. Der Bootloader wird ja beim powerup als Erstes angesprungen. Der 
soll also sich selbst auf Vollstaendigkeit pruefen, und falls er nicht 
vollstaendig ist auf die Applikation springen. Denn die Applikation kann 
den Bootloader neu programmieren ?

Mein Bootloader ist fehlerfrei wofuer er gedacht ist. Ein neuer 
Bootloader bedeutet ein neues Produkt.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Poly Oschi schrieb:
> Denn die Applikation kann
> den Bootloader neu programmieren ?

Nö.

Poly Oschi schrieb:
> Mein Bootloader ist fehlerfrei wofuer er gedacht ist. Ein neuer
> Bootloader bedeutet ein neues Produkt.

Meiner auch (hoffnungsvoll gestimmt).

von Andreas (Gast)


Lesenswert?

Poly Oschi schrieb:
> Autsch. Der Bootloader wird ja beim powerup als Erstes angesprungen.

Nein.
Es wird eine festgelegte Adresse im Flash angesprungen. Was da steht, 
ist jedoch nicht festgelegt. Nur in Köpfen von Leuten ohne Fantasie 
steht dort unverrückbar ein Bootloader. ;)

von Purzel H. (hacky)


Lesenswert?

Ok. Also ein Vorloader, der den Bootloader neu laden kann. Auch gut. 
Hoffentlich ist wenigstens dieser fehlerfrei.

von Andreas (Gast)


Lesenswert?

Der Vorlader meines letzten Projektes war nur 138 Bytes lang und hat 
schon alleine deswegen garantiert wesentlich weniger Fehler enthalten, 
als der über 6000 Bytes große Bootloader.

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.