Forum: Mikrocontroller und Digitale Elektronik STM32 Flash programming?


von Tobias P. (hubertus)


Lesenswert?

Hallom,
ich hab da mal eine Frage zum Flash programmieren des STM32.
Ich hab hier ein Board, wo der USART1 auf eine Stiftleiste geführt ist - 
eben zum Programmieren für in der Produktion. Mittels einer kleinen Box, 
wo ein MAX232 und so weiter drin sitzt, sollte man vom PC aus den STM32 
programmieren können. Schön und gut - ich hab jetzt im IAR EWARM ein 
Programm erstellt, und das ganze für die Ausführung vom Internen Flash 
gelinkt. Laut Inhalt der Hex-Datei beginnt meine Applikation ab Adresse 
0x000000. So, nun lösche ich mit dem J-Link den STM32 (damit ich einen 
neuen, noch unprogrammierten STM32 simulieren kann) und versuche mich 
mit dem USART1 zu verbinden. Das geht allerdings nur, wenn ich

BOOT0 = L
BOOT1 = H

setze?! interessanterweise ist dann das Flash aber an die falsche 
Basisadresse gemappt, sodass sich meine Intel Hex-Datei mit der 
Fehlermeldung "Wrong Address" nicht runterladen lässt.
Wo liegt mein Denkfehler?

von Mike R. (thesealion)


Lesenswert?

Ich habe den internen Bootloader bisher nicht benutzt, aber wenn du
BOOT0 = L
BOOT1 = H (ist eigentlich egal)
setzt, dann startet er von Main Flash Memory, also dem Bereich in den du 
dein Programm geladen hast.

Zumindestens im normalen Betrieb liegt der "User" Flash ab 0x08000000

Ich weiß jetzt nicht ob du den ST Bootloader verwenden willst, oder 
einfach nur dein Programm per J-Link auf den Chip bringen und starten?

von Tobias P. (hubertus)


Lesenswert?

Hi Mike,
es ist so:
für die Entwicklung hab ich einen J-Link, da man hier auch debuggen und 
den RAM anschauen können muss.
Für die Produktion wäre es aber ein Overkill, noch mehrere weitere 
J-Links anzuschaffen, denn da muüssen ja nur die fixfertigen Hexdateien 
auf den Chip programmiert werden. Von daher möchte ich dort gerne den 
internen Bootloader nutzen. Aber ich hab irgendwie ein durcheinander, wo 
jetzt das Flash bzw. RAM liegt, und wie die Bootpins stehen müssen, 
einerseits zum Programmieren, andererseits für normale 
Programmausführung.... :-/

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.