mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Bootloader in C - eine einfache Anleitung


Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich versuche mich gerade an dem Tutorial:

[[http://www.mikrocontroller.net/articles/AVR_Bootlo...]]

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?

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja. Lass die Interrupts im Bootloader weg. Die machen alles 
kompliziterter.

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
O.. oha Jetzt ! schrieb:
> a. Lass die Interrupts im Bootloader weg. Die machen alles
>
> kompliziterter.

Das ist ja nun keine Lösung.

Tim schrieb:
> Das Problem scheinen irgendwie die Interruptvektoren zu sein.

Bitte etwas genauer.
Welche Adresse? Fuses? Code?

mfg.

Autor: Laszlo H. (mobius)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Laszlo H. schrieb:
> 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 ;).

Dazu zählt man keine 0xff, sondern guckt ins .lss-File.

mfg.

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.lss, also vor dem Linken?  Kaum.  Wenn schon, dann ins .map.

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hc Zimmerer schrieb:
> .lss, also vor dem Linken?  Kaum.  Wenn schon, dann ins .map.

Aber sicher du Schlaumeier.

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.