Was bewirkt "boot_rww_enable()" ?

Gast #2677949
Hallo Forum,

ich habe mir einen Bootloader geschrieben in etwa nach der Anleitung 
"AVR Bootloader in C - eine einfache Anleitung" aus der Artikelsammung 
(vielen Dank für diesen tollen Artikel!). Mein Bootloader funktioniert 
auch soweit und ich kann das Flash korrekt programmieren und 
anschließend auslesen mit dem ISP-Programmmer. Nur gelingt mir der 
Rücksprung aus dem Bootloader in die Application nicht.

Ich habe gesehen, dass man dazu die Funktion

boot_rww_enable ();

aufrufen soll. Leider kann ich diese Funktion nicht kompilieren für den 
ATmega168A (WINAVR,AVR-Studio 4.19, AVRToolchain 3.3.2). Ich bekomme die 
Fehlermeldung

"../main.c:325:6: error: 'RWWSRE' undeclared (first use in this 
function)
"

Wenn ich verstehen würde was diese Funktion genau macht und bewirkt, 
dann würde ich sie mir selbst schreiben.

Kann mir das jemand erklären? Aus den Angaben im Datenblatt und der 
avr-libc-Doku werde ich nicht richtig schlau.

Vielen Dank für alle Tips!

Henning
Gast #2678019
Hallo Bernhard,

vielen Dank für den Link oben. Scheint ähnlich zu sein.

Ich habe wie vorgeschlagen selbst definiert

#define RWWSRE 4

und kann nun kompilieren und mit Aufruf der Funktion

boot_rww_enable ();

klappt dann auch der Rücksprung. Der Bootloader funktioniert nun 
einwandfrei wie er soll.

Mich würde dennoch interessieren was genau da im Hintergrund passiert. 
Aus dem Datenblatt mit der Beschreibung der RWW und NRWW-Sections werde 
ich einfach nicht schlau.

vielen Dank nochmal,

Henning
#2678122
Henning Petermann schrieb:
> Mich würde dennoch interessieren was genau da im Hintergrund passiert.
> Aus dem Datenblatt mit der Beschreibung der RWW und NRWW-Sections werde
> ich einfach nicht schlau.

Während und auch nach dem Schreiben in die RWW-Section kann nicht von 
dort gelesen (und damit auch kein Code ausgeführt) werden. Die Section 
muss erst wieder "freigeschaltet" werden.
Moderator Persönliche Seite #2678135
Henning Petermann schrieb:
> AVRToolchain 3.3.2

Da scheint der Support für die A-Devices wohl nicht sauber
eingearbeitet worden zu sein.  Im avr-libc-Projekt haben wir
dafür von Atmel für die "A"s nichts zurückbekommen, sprich: der
ATmega8A wird von der reinen avr-libc selbst nicht unterstützt.
(Es wäre schön, wenn Atmel hier nicht unnötigerweise sein eigenes
Süppchen kochen würde.)

ATmega8 und ATmega8A sollten aber softwaremäßig ohnehin
identisch sein, du kannst also dein Projekt auch gleich für
einen ATmega8 compilieren.

Du solltest den Bug also auf jeden Fall bei <avr[at]atmel.com>
eintüten.
Gast #2678370
Hallo,

vielen Dank für die beiden Tips und Hinweise.

Mir ist noch weiterhin aufgefallen, dass die beiden bits

IVSEL und IVCE ebenfalls nicht definiert sind (werden benötigt um die 
Interruptvektoren in die Bootsection zu legen).

Ich nutze diese AVR-Toolchain auch zum ersten Mal. Bisher hatte ich 
WINAVR und AVR-Studio 4.x. Ging immer hervorragend. Nach der 
Installation von AVR-Studio 5.1 ging aber nix mehr. Auch nach dem 
Entfernen und dem Neuinstallieren von AVR-Studio 4.19 habe ich die alte 
Toolchain nicht wieder zum Laufen gebracht. Goog... lieferte, dass das 
Problem mit der Installation der AVR-Toolchain 3.3.x behoben sein 
sollte. War auch so, nur bei den "defines" wurde wohl irgendwo gespart.

Bug habe ich gemeldet.

vielen Dank nochmal, damit ist der Fall erledigt denke ich.

Henning

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.