Forum: Mikrocontroller und Digitale Elektronik STM32 Bootloader Protokoll


von Frank A. (_frank)


Lesenswert?

Hallo,

ich bin gerade dabei ein Programm ähnlich dem Flash Loader Demonstrator 
von ST zu schreiben.
Ich möchte über den integrierten USART Bootloader von STM32F103RB ein 
neues Programm flashen können.

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/APPLICATION_NOTE/CD00264342.pdf

Die grundlegenden Funktionen habe ich bereits realisiert.
Jedoch verstehe ich nicht wie man den Speicher beschreiben kann. Laut 
Handbuch auf Seite 18 und den folgenden Seiten soll man wie folgt 
vorgehen:

- die Anzahl der zu schreibenden Datenbytes an den STM senden
- Datenbytes (N+1 Bytes) und die Checksumme senden
- ...

Das Problem ist, dass ich nicht verstehe was das N+1 sein soll. Die 
zweite Zeile im HEX-File enthält die ersten Daten:
:10 0000 00 00C00020817F0008F918000805190008 C9
Demnach müsste ich zuerst eine 0x10 für 16 Datenbytes, dann die 
Nutzdaten und dann die Checksumme senden. Wenn ich das jedoch mit HTerm 
ausprobiere, muss ich noch ein zusätzlichen Byte nach der Checksumme 
senden bis der Bootloader mir mit einem NACK antwortet, also im Prinzip 
17 Datenbytes.

Hat das vielleicht schon mal jemand gemacht und kann helfen.
Gruß Frank

von Ralf (Gast)


Lesenswert?

In der Beschreibung steht, dass maximal 256 Bytes Nutzdaten gesendet 
werden können. In das Längenbyte passt aber maximal nur der Wert 255. 
Daher vermute ich, dass der Bootloader intern das Längenbyte 
inkrementiert.

Ralf

von Frank A. (_frank)


Lesenswert?

Hallo Ralf,

vielen Dank. Hab ich gerade ausprobiert und funktioniert.
Bei der Anzahl der zu senden Bytes muss man einen abziehen.

Sehr merkwürdig die Dokumentation

Danke und Gruß

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.