Forum: Mikrocontroller und Digitale Elektronik OpenOCD sysreset


von gagosoft (Gast)


Lesenswert?

Hallo Leute!

Ich arbeite mit einem STM32 auf einem selbst erstellten Board. Als 
JTAG-Adapter verwende ich den OpenOCD, den's bei openprojects zu 
erstehen gibt. Da ich unter normalen Arbeitsbedingungen des Boards den 
ganzen Port B als IO benötige, muss ich JTAG in der initialisierung 
dektivieren. Zum debuggen kann ich notfalls auf die zwei Bits des JTAG 
im Port B verzichten.

* Flashen ohne JTAG-dekativieren geht problemlos und direkt aus dem 
Makefile
* Bei JTAG-deaktivierung erhalte ich schon beim "init" die 
Fehlermeldung, dass JTAG nicht erreichba ist - klar! Aber ohne init 
beschwert sich openocd über diverse Befehle, sie seien unbekannt.
* Bei JTAG-deaktivierung kann ich das Board flashen, indem ich die 
Reset-Taste gedrückt halte und erst loslasse, wenn ich den Befehl zum 
flashen gegeben habe.

Nun zu meiner Frage:
Wie kann ich OpenOCD dazu bringen, zuerst SRST\n zu aktivieren und dann 
mit dem flashen zu beginnen.

LG Gabriel

von Turbo J (Gast)


Lesenswert?

Man kann in OpenOCD die Reset-leitungen direkt ansprechen:
1
jtag_reset 0 1

OpenOCD hat ein `help` Kommando:
1
jtag_reset trst_active srst_active
2
      Set reset line values.  Value '1' is active, value '0' is inactive.

Das setzt voraus, das die reset_config ein srst zulässt.

von gagosoft (Gast)


Lesenswert?

Turbo J, vielen Dank für den Hinweis!
Das ist schon ein Schritt weiter...

Die SRST Leitung wird auch schön aktiviert, doch ich bekomme die 
Schaltung trotzdem noch nicht scriptgesteuert programmiert.

Hat jemand eine Prozedur, wie ich die JTAG Pins reusen und trotzdem über 
JTAG programmieren kann?

Also den Prozessor zu resetten BEVOR JTAG ansprechbar ist. In dem kurzen 
Fenster, in dem JTAG nach dem Reset noch aktiv ist, JTAG starten, den 
Prozessor anhalten und flashen.

Wer weis eine Möglichkeit SRST VOR dem "init" Befehl zu aktivieren ?

LG Gabriel

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.