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?
Ja. Allerdings ist waehrend der Programmierung die Ausfuehrung gesperrt. Das wird dann etwas muehsam... der programmcounter steht !
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.
Lies das Kapitel nochmals genau durch. RWW heisst Read While Write und NRWW heisst No Read While Write.
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 ?
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.
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.
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).
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. ;)
Ok. Also ein Vorloader, der den Bootloader neu laden kann. Auch gut. Hoffentlich ist wenigstens dieser fehlerfrei.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.