Forum: Mikrocontroller und Digitale Elektronik STM32F303xyz interner Bootloader


von Ole L. (olel)


Lesenswert?

Hallo,

ich habe gerade angefangen ein Board zu entwerfen, welches als Prozessor 
einen STM32F303 benutzt. Ich habe nun gerade ein wenig im Internet über 
den Boot0 bzw. Boot1 pin dieses Chips gelesen. Ich möchte gerne den 
integrierten USB-Bootloader verwenden, wenn ein USB-Kabel angeschlossen 
ist. Das man dafür irgendwie diese Pins (Boot0 und Boot1) braucht habe 
ich auch schon heraus gefunden aber wie genau ich die belegen muss habe 
ich noch nicht herausgefunden/gefunden, oder ich habe es einfach 
übersehen.

Grüße Ole

von Dr. Sommer (Gast)


Lesenswert?

Das steht im Reference Manual, Kapitel 3.5, Boot Configuration.

Tip: Verlasse dich nicht auf den integrierten Bootloader, der ist 
ziemlich instabil. Sehe auf jeden Fall noch eine SWD/JTAG Verbindung für 
einen Programmieradapter vor. Erspart auch ungemein viel Arbeit beim 
debuggen...

von Dr. Sommer (Gast)


Lesenswert?

PS: Je nach Modell (zB STM32F303x6/8) ist kein USB Bootloader vorhanden, 
steht auch in o.g. Kapitel.

von Lothar (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Verlasse dich nicht auf den integrierten Bootloader, der ist
> ziemlich instabil. Sehe auf jeden Fall noch eine SWD/JTAG Verbindung für
> einen Programmieradapter vor

Bei LPC oder EFM ist der integrierte Bootloader absolut stabil, der ist 
zudem die letzte Rettung wenn im Programm die SWD Pins umgeschaltet 
wurden oder die PLL falsch konfiguriert und das DEBUG RESET zu spät 
kommt. Kann mir nicht vorstellen, dass es bei den STM anders sein soll.

von Jim M. (turboj)


Lesenswert?

Lothar schrieb:
> Bei LPC oder EFM ist der integrierte Bootloader absolut stabil, der ist
> zudem die letzte Rettung wenn im Programm die SWD Pins umgeschaltet

Bei EFM32 geht dann immer noch der "Flash unlock" über SWD, der dann 
übrigens den Bootloader killt weil Flash hinterher komplett leer ist.

Bei LPC1343 braucht der USB Bootloader auf der CCC R0ket über 30 
Sekunden zum Hochfahren weil da ein Bit im (Masken)ROM quer liegt.

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

Dr. Sommer schrieb:
> Das steht im Reference Manual, Kapitel 3.5, Boot Configuration.
>
> Tip: Verlasse dich nicht auf den integrierten Bootloader, der ist
> ziemlich instabil. Sehe auf jeden Fall noch eine SWD/JTAG Verbindung für
> einen Programmieradapter vor. Erspart auch ungemein viel Arbeit beim
> debuggen...

Danke für die Warnung.
Unter welchen Bedingungen hast Du Probleme mit den STM32-Bootloadern?
Welche dieser Probleme sind nicht in der aktuellsten AN2606 und den 
Errata-Sheets erfasst?
Was sagt ST dazu?

von W.S. (Gast)


Lesenswert?

Lothar schrieb:
> Kann mir nicht vorstellen, dass es bei den STM anders sein soll.

Ist es auch nicht.

Genauso, wie man bei den LPC nebst TxD und RxD auch noch Reset und Boot 
(ein Boot reicht, wenn man den anderen sinnvoll festlegt) an die 
Serielle führt, sollte man das auch bei den STM32 tun. Dann funktioniert 
auch der STM-Bootlader sauber und zuverlässig.

Der Knackpunkt zwischen LPC und ST ist die Art der Auslesesperre. Bei 
den LPC hat es dazu an bestimmter Stelle die diversen Magics und bei ST 
hat es den Option-Block - und letzterer hat seine Wurzeln in der 
Hardware.

Deshalb muß man beim Entsperren eines STM32 (zum einen Lesesperre und 
dann dasselbe mit der Schreibsperre) eben mehrmals mit Reset und 
nachfolgendem Wieder-Synchronisieren rechnen. Genau DAS ist es, wo sich 
viele Leute drum herum mogeln wollen und eben deshalb mitten im 
Programmieren feststecken - und dann heißt es, der Bootlader sei 
instabil. Unsinn sowas.

Andererseits sind die Dokumente von ST im Detail oft ungenau bis falsch. 
Das gilt vor allem für Adreßeingaben, wo zwar dasteht, daß der BL in 
manchen Fällen kein NAK sendet - er tut es aber dennoch.

W.S.

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.