Forum: Mikrocontroller und Digitale Elektronik Bootloader Protokoll


von Mike (Gast)


Lesenswert?

Hallo zusammen,

Was ist zu empfehlen bei einem USB Bootloader :

- die HEX-Datei als "char" Daten zu senden (die (Win)Applikation liest 
die Datei und sendet sie einfach weiter zum Bootloader)

- Oder lieber wenn die (Win) Applikation die Daten dekodiert und als 
Hex-Daten weiter sendet, (hier muss ich noch irgendein Protokoll 
festlegen!)

Wie habt ihr sowas am besten realisiert?`

Vielen Dank für die Ratschläge

von Karl H. (kbuchegg)


Lesenswert?

Meine Meinung:

Die Datenübertragung in einem Bootloader ist nicht so wahnsinnig 
zeitkritisch. Viel wichtiger ist, dass sie 100% sicher funktioniert. Ich 
hab nichts davon, wenn die Übertragung um 40% schneller ist und dafür 
dann jedes 856-te Byte falsch gebrannt wird, weil es kein Handshake gab 
oder sich der Bootloader im µC auf einen falschen Frame-Anfang 
synchronisiert hat.

* - die HEX-Datei als "char" Daten zu senden (die (Win)Applikation
> liest die Datei und sendet sie einfach weiter zum Bootloader)

Was passiert, wenn der µC mal eine kleine 'Auszeit' braucht um die 
empfangenen Bytes dann auch mal zu brennen? Kann der µC auch für 
kleinere Abschnitte erkennen, ob es einen Übertragungsfehler gab und 
diesen Datenblock erneut anfordern?

Selbst in dieser 'Einfach-Version' brauchst du also schon so was wie ein 
Protokoll. Bläst der PC die Bytes einfach als Bytes raus, dann wird es, 
sagen wir mal, unangenehm sich spezielle Bytewerte zur 
Protokollsteuerung zu definieren. Möglich ist es allerdings, so ist das 
dann auch wieder nicht.

von Steel (Gast)


Lesenswert?

Es ist blödsinn die Daten als ASCII zu übertragen. Der HEX-File sollte 
schon vom PC decodiert werden und die Daten binär nacheinander in der 
Reihenfolge in der sie im Flash des uC abgelegt werden sollen gesendet 
werden.

@KHB
Nicht zeitkritisch? Das stimmt vielleicht für die Home-Bastelanwendung, 
wenn man in einer industriellen Produktion aber pro Produkt 30 Sekunden 
beim Flashen sparen kann, so läppert sich das mit der Zeit zu einem 
hübschen Sümmchen. Die Datensicherheit bekommt man darüber, dass der uC 
nach Empfang aller Daten eine CRC über diese rechnet, die dann mit der 
vom PC berechneten verglichen wird.

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.