Bootloader Protokoll

Gast #2945108
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
#2945124
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.
Gast #2945149
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.

Antwort schreiben

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.

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.