AVR Bootloader in C - eine einfache Anleitung

Gast #1983641
Lesenswert?

Hi,

ich versuche mich gerade an dem Tutorial:

[[http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung]]

Als Controlller verwende ich ebenfalls den ATMega88 mit dem AVR Studio + 
GCC.

Das Problem scheinen irgendwie die Interruptvektoren zu sein. Wenn ich 
die wie im Programm angegeben verbiege, läuft das Programm gar nicht 
erst los. Lasse die diese raus, läuft das Programm und auch die UART 
Übertragung funktioniert. Jedoch klappt dann das schreiben ins Flash 
nicht.

Weiß jemand Rat?
#1983902
Lesenswert?

Thomas Eckmann schrieb:
>> a. Lass die Interrupts im Bootloader weg. Die machen alles
>>
>> kompliziterter.
>
> Das ist ja nun keine Lösung

Doch das ist eine ausgesprochen gute Lösung für ein Bootloader (nur halt 
nicht für sein Problem ;) ). Einfach, weil der Bootloader einfach 
gestrickt ist. Auf Daten warten, CRC-check, entschlüsseln, in den 
Flash/EEPROM schreiben, auf Daten warten, usw. bis irgendwann mal kommt 
"und jetzt bitte ein Reset!". Da braucht man einfach keine Interrupts.

Tim schrieb:
> Das Problem scheinen irgendwie die Interruptvektoren zu sein. Wenn ich
> die wie im Programm angegeben verbiege, läuft das Programm gar nicht
> erst los. Lasse die diese raus, läuft das Programm und auch die UART
> Übertragung funktioniert. Jedoch klappt dann das schreiben ins Flash
> nicht.

Könnte es sein, dass du den Bootloader nicht in den Bootloader-Bereich 
programmiert hast? Lies mal den Flash wieder aus und schau ob am Anfang 
der Hex viele 0xFF sind. Wenn nicht, dann hast du Schritt 1 im Tutorial 
nicht befolgt ;).

lg
Mobius
#1985331
Lesenswert?

Thomas Eckmann schrieb:
> Aber sicher du Schlaumeier.

Ja, ich habe mir erlaubt, Deinen Fehler zu korrigieren.  Das ist Dir 
offensichtlich nicht recht.  Also musstest Du Dir mit obigem Satz 
Erleichterung verschaffen.

Eine Methode für Dich, das zu vermeiden, wäre, unfehlbar zu werden.  In 
der gesamten Menschheit findet sich meines Wissens aber bisher nur 
einer, der das für sich in Anspruch nimmt.

Oder aber Du findest Dich einfach damit ab, dass Irren menschlich ist 
und dass Fehler korrigiert werden können.  Das wäre dann deutlich 
konsensfähiger.

Oder kürzer:  Friede, bitte ;).  Ich hatte wirklich nur die Korrektur 
einer technischen Fehlaussage im Auge (mit Begründung: .lss beinhaltet 
nicht, was der Linker macht) und nicht vor, Dich an die Decke zu 
treiben.
#1985366
Lesenswert?

Hc Zimmerer schrieb:
> Oder kürzer:  Friede, bitte ;).  Ich hatte wirklich nur die Korrektur
>
> einer technischen Fehlaussage im Auge (mit Begründung: .lss beinhaltet
>
> nicht, was der Linker macht) und nicht vor, Dich an die Decke zu
>
> treiben.

Und wenn du noch so borniert daher kommst: Meine Aussage ist kein 
Fehler.

Wenn du diesem File die Informationen nicht entnehmen kannst, ist das 
dein Problem. Ich kann es!

mfg.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren