Bootloader für AVR über nur eine Leitung?

Gast #520822
Hallo,

ich suche einen Bootloader für die AVR-Prozessoren, der folgende zwei 
Kriterien erfüllt:

1. Es gibt nur eine serielle Leitung, der AVR kann also nur empfangen 
und nichts zurücksenden.
2. Als Initialisierungsbefehl für den Bootloader können nur Befehle an 
den AVR geschickt werden, eine Aktivierung über einen Taster soll es 
nicht werden.

Gibt es da bereits etwas fertiges? Alle Bootloader, die ich bislang 
gefunden habe, senden auch irgendwas zurück.

Gruß
Christian
Du willst die Daten "einfach" an den mc schicken, ohne ein Programm, was 
ein Boot-Protokoll fährt, verstehe ich Dich richtig?

Damit das funktioniert, müssen ein paar Bedingungen erfüllt sein:

Entweder
der PC, von dem Du das schicken willst, kann Dein Boot-Timing einhalten. 
Dann schickt er die Daten für eine Page, gibt das Programmier-Kommando, 
und wartet dann, bis der ATmega worstcase fertig ist (ca. 10ms). Dann 
das Spiel für die nächste Page von neuem.

Oder
der PC schickt die Daten komplett am Stück an den ATmega. Da Du nur eine 
Ltg und damit keine Handshake-Möglichkeit hast, musst Du die Baudrate so 
niedrig halten, dass der ATmega mit dem Programmieren hinterherkommt. 
Ausserdem muss der UART-Empfang interruptgesteuert sein und einen 
Eingangspuffer füllen, damit während den Programmierphasen keine Daten 
verloren gehen. Je nach AVR und damit nach Pagegröße sind aber 115200 
Baud oder mehr möglich).
Ausserdem  kann der Bootloader NUR die NRWW-Sektion programmieren: Beim 
Schreibzugriff auf die RWW-Sektion würde der AVR "Pause" machen -> 
Datenverlust. Sinnvollerweise wählst Du als Bootloadergröße gleich die 
Maximal-Bootloadergröße, dann deckt der Bootloader die RWW-Sektion 
komplett ab.

Einen Bootloader zu programmieren ist auch nicht wesentlich aufwändiger 
als ein "normales" Programm, wenn man einige Besonderheiten beachtet. 
Die AVR-libc unterstützt einen Bootloader schon ganz prima.

Gruß, Stefan

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 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.