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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.