mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR - Bootloader


Autor: MaX (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

über das Thema wurde hier ja schon viel geschrieben. Da gibt es
bestimmt auch ein paar Experten, die mir meine Frage beantwroten
können:

Einen Bootloader brennt man doch "einfach" in den Chip und sobald
dieser dort läuft, kann man seriell das eigentliche Programm in den
Chip laden. Der Bootloader (deswegen sicher auch der Name) startet
dieses dann nach jedem reset.

Nun gibt es eine Reihe von Bootloadern. Aber 2 fallen immer wieder auf:
Einer aus der AN109 und einer mit STK500-Protokoll. Wo liegt der
Unterschied? Sind nicht alle Bootloader prinzipiell gleich?

MaX

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

es ist eben ein anderes Protokoll. Das AVR910-Protokoll ist einfacher
und damit kleiner in der Implementierung. STK500 ist das modernere
Protokoll und man kann direkt aus dem AVR Studio den Bootloader
ansprechen. Nachteil ist das es komplexer ist und damit etwas mehr
Platz im Flash braucht. Meinen STK500 kompatiblen Bootloader (in C
geschrieben) hab ich aber immerhin auf unter 1k bekommen. In ASM müßten
eigentlich auch 512 Byte möglich sein.

Matthias

Autor: MaX (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Matthias,

>Meinen STK500 kompatiblen Bootloader
Meinst Du den aus dem USBISP-Projekt?

Ich will mich gerade mit dem Thema beschäftigen, und suche verzweifelt
einen Anfang. Es gibt so viele verschiedene Ansätze. Aber wo soll man
beginnen?

Ich habe mir auch schon mal den Bootloader von Peter Dannegger (aus dem
Codeforum) angesehen. Aber der ist in ASM und nur mit spärlicher Doku
('tschuldigung Peter ;o) ).

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Genau den meine ich. Sollte sich problemlos auf jeden anderen AVR
umschreiben lassen. Vorteil an einem Bootloader mit
AVR910/STK500-Protokoll ist halt das man keine eigene Software
schreiben muß um mit dem Bootloader zu kommunizieren.

Matthias

Autor: MaX (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, dann werd ich mir den mal ansehen. Der kommuniziert zwar über USB,
aber das Prinzip sollte ja bei UART gleich sein.

Ohne jetzt schon in den Code geguckt zu haben: Hat der eigentlich auch
so was wie eine Passwortabfrage zum Programmieren? Und wartet der nach
einem Reset eine bestimmte Zeit, ob da irgendwer was programmieren
will?

Wenn ich das USB durch UART ersetze, dann muß ich dort auch eine
bestimmte Baudrate vorgeben (wenns keine automatische Erkennung gibt),
richtig?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

ein paar Änderungen wirst du schon vornehmen müssen. Beim Einschalten
prüft der Bootloader zwei Pins ab ob die auf High sind. Sind sie es
wird in den Bootloader verzweigt. Ansonsten wirst du halt die Routinen
aus der usb.c auf den UART umbiegen müssen. Sollte aber nicht das
Problem sein.

Matthias

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.