Forum: Mikrocontroller und Digitale Elektronik Protokoll für Bootloader


von Hans L. (Gast)


Lesenswert?

Hallo,
Ich würd gern, nur zu Übungszwecken, einen Bootloader für den ATmega 
schreiben.
Damit ich mich voll auf die Embedded-seite konzentrieren soll dieser ein 
Protokoll sprechen dass es bereits gibt und idealerweise auch von 
avrdude unterstützt wird.
Somit könnt ich mir das PC-Programm erstmal sparen. Evtl wäre mein 
Ergebnis dann auch für andere interessant.
Laufen soll die Kommunikation über RS232/UART.

Gibts da bereits etwas etabliertes?

Grüße!

von greg (Gast)


Lesenswert?

http://www.atmel.com/Images/doc2591.pdf ist etabliert, aber recht 
umfangreich. Bootloader macht man i.d.R. mit Absicht so spartanisch wie 
möglich.

von Roland .. (rowland)


Lesenswert?

Du kannst auch einfach kein Protokoll verwenden und die Programmdaten 
einfach mit einem Terminalprogramm zum µC senden. Eben das HEX-File als 
roher Datenstrom. Erfordert dann PC-Seitig auch keine spezielle 
Software. Das Intel-HEX-Format hat ja sogar bereits eine Checksumme zur 
rudimentären Fehlererkennung.

von greg (Gast)


Lesenswert?

Roland ... schrieb:
> Du kannst auch einfach kein Protokoll verwenden und die
> Programmdaten
> einfach mit einem Terminalprogramm zum µC senden.

Das ist aber ein Protokoll! ;) Egal, Spitzfindigkeiten.

> Eben das HEX-File als
> roher Datenstrom. Erfordert dann PC-Seitig auch keine spezielle
> Software. Das Intel-HEX-Format hat ja sogar bereits eine Checksumme zur
> rudimentären Fehlererkennung.

Das Intel-Hex-Format ist aber ganz schön aufwändig zu parsen und man 
müsste außerdem Flusskontrolle implementieren.

Am sinnvollsten ist wohl ein einfaches paketbasiertes Protokoll. Man 
sendet Datenblöcke an den Mikrocontroller, die klein genug sind, um in 
dessen RAM zu passen. Der Controller schreibt die dann in den Flash und 
sendet danach ein ACK/NACK zurück. Als Prüfsumme kann man z.B. eine 
einfache modulare Summe verwenden.

von Hans L. (Gast)


Lesenswert?

greg schrieb:
> Das Intel-Hex-Format ist aber ganz schön aufwändig zu parsen und man
> müsste außerdem Flusskontrolle implementieren.
>
> Am sinnvollsten ist wohl ein einfaches paketbasiertes Protokoll. Man
> sendet Datenblöcke an den Mikrocontroller, die klein genug sind, um in
> dessen RAM zu passen. Der Controller schreibt die dann in den Flash und
> sendet danach ein ACK/NACK zurück. Als Prüfsumme kann man z.B. eine
> einfache modulare Summe verwenden.

Zwar vielen Dank für deinen Beitrag, aber das geht an meiner Frage 
völlig vorbei.

Mich interessiert weniger wie so ein Protokoll auszusehen hat sondern ob 
es ein "Standard"protokoll gibt, das am Besten auch von avrdude 
unterstützt wird.
Wie gesagt, ich mach das nur als Fingerübung, aber wär schön wenn mein 
Ergebnis dann keine Insellösung ist...

von Roland .. (rowland)


Lesenswert?

AVR910, AVRButterfly...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.