STM32 Boot0 Problem

OP #3015554
Lesenswert?

Hallo,

bei den STM32 kann man ja über Boot0 sagen, ob er aus dem Systemmemory 
oder auf dem FLASH booten soll.

Wenn BOOT0 auf VCC liegt, bootet er aus dem Systemmemory. So lässt sich 
per JTAG was flashen. Verständlicherweise kann das Programm so jedoch 
nicht starten, da im Linkerscript die Adressen des Flashs stehen und der 
PC ja auf den Systemmemory zeigt.

Wenn BOOT0 auf GND liegt, also aus dem Flash gestartet werden soll, 
bekomme ich per JTAG keine Verbindung mehr zum Controler.

Ich nutze OpenOCD mit nem GDB (Codesourcery)

Hat jemand ne Idee, woran das liegen kann?
Angehängte Dateien:
Gast #3015739
Lesenswert?

Das Programm läuft auf dem evalboard wunderbar.
Die Hardware ist selber entwickelt und der stm ist neu.

Aber der systemmemory ist doch ein anderer apeicherbereich.
Ich will.ja das Programm aus dem Flash starten.

Warum geht es denn per jtag wenn boot0 auf 1 liegt, wenn es auf 0 liegt 
aber nicht?

Wie gesagt openocd erkennt mit boot0 auf gnd nicht mal die Anzahl der 
breakpoints.

Was verstehst du unter Programm ist lesegeschutzt?
Gast #3015860
Lesenswert?

Vielen dank für das zitieren der doku. Lesen kann ich selber.
Wie ich bereits s grien ist der Chip neu. Warum sollte also ein 
Lärmschutz implementiertsein, zumal ich ja den Flash schreiben.und lesen 
kann. Nur halt im falschen bootmode
(Firma: EleLa - www.elela.de) #3015862
Lesenswert?

In der oben gezeigten Demo funktioniert es mit dem OpenOCD.
Der OpenOCD benötigt alle JTAG Anschlüsse SWD ging damals nicht.
Jetzt nutze ich den Segger J-LINK-EDU und der geht noch viel besser als 
OpenOCD.

Versuche doch mittels
Telnet >> OpenOCD >> Olimex >> STM32
die Befehle von OpenOCD mal von Hand ein zu geben.
Gast #3015874
Lesenswert?

Wie gesagt, auf dem evalboard funktioniert openocd, ich vermute nen 
hardwarefehler

Boot0 = 1 Flashen und lesen geht. Loslaufen nicht. ( klar weil 
linkerfile Adressen.usw.)
Boot0 = 0 keine Verbindung zum stm also auch kein flashen
#3015890
Lesenswert?

Versuch mal folgendes: Nimm das Flash-Tool der STM Utilities und 
versuche, den STM32 zu löschen Und zwar so:

Power up, und dann SOFORT auf "löschen" drücken.

Frag mich jetzt nicht, warum, aber das hat bei mir schön öfter mal 
geholfen, wenn der STM32 nach dem Download einer verhunzten SW 
"störrisch" wurde und keine Verbindung möglich war.
Ich habe allerdings über SWD verbunden.
(Firma: EleLa - www.elela.de) #3015895
Lesenswert?

Wenn das mit dem Demo-Board funktioniert und mit dem Selbstbau-Board 
nicht und Du hast die Protection Register des STM's nicht manipuliert 
dann gibt es exakt 3 Möglichkeiten:

1. Der Prozessor hat nicht an allen VCC und AVCC /GND Pins 
Strom/Spannung oder die Spannung ist falsch.
2. Den Prozessor hast Du kaputt gelötet
3. Ein Fehler in der Verdrahtung zwischen Prozessor und JTAG Stecker.

Suche und finde das.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren