STLink + OpenOCD + Eclipse

Gast #5089414
Lesenswert?

Hallo,

ich versuche gerade ein STM32f0308-Disco Eval Board in betrieb zu 
nehmen.
Das Flashen mittels STM32 ST-LINK Utility und auch mit OpenOCD aus der 
Kommandozeile funktioniert auch.
Starte ich OpenOCD jedoch aus Eclipse heraus, bekomme ich in der Konsole 
folgenden fehler:
1
GNU MCU Eclipse 64-bits Open On-Chip Debugger 0.10.0+dev-00135-g8029919-dirty (2017-06-22-15:43)
2
Licensed under GNU GPL v2
3
For bug reports, read
4
  http://openocd.org/doc/doxygen/bugs.html
5
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
6
adapter speed: 1000 kHz
7
adapter_nsrst_delay: 100
8
none separate
9
srst_only separate srst_nogate srst_open_drain connect_deassert_srst
10
Started by GNU ARM Eclipse
11
Info : Unable to match requested speed 1000 kHz, using 950 kHz
12
Info : Unable to match requested speed 1000 kHz, using 950 kHz
13
Info : clock speed 950 kHz
14
Info : STLINK v2 JTAG v28 API v2 SWIM v0 VID 0x0483 PID 0x3748
15
Info : using stlink api v2
16
Info : Target voltage: 2.903986
17
Info : stm32f0x.cpu: hardware has 4 breakpoints, 2 watchpoints
18
Info : accepting 'gdb' connection on tcp/3333
19
Info : device id = 0x20006440
20
Info : flash size = 64kbytes
21
undefined debug reason 7 - target needs reset
22
Info : dropped 'gdb' connection

Muss ich in den Eclipse Debug Configurations noch irgend was besonderes 
einstellen, oder reset Parameter angeben? Wenn ja, wo?

Ich verwende Eclipse Oxygen und OpenOCD v0.10

Danke.
Gast #5089419
Lesenswert?

Und wieder einer mit dem selben Problem.

Das wird hier alle paar Wochen gefragt. Ich habe ein ganzes Wochenende 
damit verbraucht und weder eine hilfreiche Erklärung noch eine Lösung 
gefunden.

Das komische ist: In der System Workbench (SW4STM32) klappt es mit 
dieser Software.
#5089435
Lesenswert?

Zuerst eine Debug-Konfiguration erzeugen:
Run -> Debug Configurations
Dort in der linken Liste einen Rechtsklick auf "AC6 STM32 Debugging" und 
dann "New" auswählen.

Danach oben den Reiter Debugger anklicken und in dem Dialog den Button 
"Show Generator Options" klicken.

Für die ST-Boards mit integrierten Debugger sollte bei Reset-Mode 
"Connect under Reset" ausgewählt sein.
Für einen externen ST-Link gehört da "Software System Reset" hin.

Mit der Konfiguration läuft das bei mir einwandfrei.
Gast #5089451
Lesenswert?

Ok, vielen Dank.
Ich habe bei mir "new" bei "GDB OpenOCD Debugging" gemacht.
"AC6 STM32 Debugging" steht bei mir nicht. Muss ich da in Eclipse noch 
was nachinstallieren?

Bei mir im Debugger Reiter hab ich unter Config Option nur das config 
file angegeben.
-f board/stm32f0discovery.cfg
Ein Reset-Mode steht da leider nicht.
Gast #5089460
Lesenswert?

Es scheint sehr viele verschiedene "ST-Links" zu geben. Originale gibt 
es ja schon mehrere. Die Box von ST selbst und abgetrennte Teile der 
Nucleo Boards. Ausserdem zig Clones aus China.
Ich kann natürlich nie ausschliessen evt. ein Kabel falsch/nicht 
verbunden zum haben, aber bei mir stellten sich folgende Effekte ein:
- Die ST-Originale zeigten nie die "Target Voltage" richtig.
- Ein von einem 411er Board abgetrennter "Nucleo-ST Link" konnte 
erfolgreich auch mit "Connect under Reset" debuggen.
- Die China Clones brauchen die Einstellung "Software System Reset" 
(siehe oben von User Harry L.)
- Ab und zu ging gar nichts mehr, es kam kein Connect des ST-Link mehr 
zustande. USB-Kabel ziehen und Rechner Reboot mit stromlos machen half 
nicht. Ich dachte schon Board oder ST-Link ist im Eimer, dann fand ich 
doch noch die "Wiederbelebung": ST-Link Software starten, den 
Reset-Knopf drücken und gedrückt halten, in der Software mittels 
"Connect under Reset" die Verbindung versuchen, und dann schnell den 
Reset-Knopf los lassen. Danach "Erase Flash" und es ging dann wieder bis 
zum nächsten Mal. :-)

Ich benutze auch die System Workbench anstatt mit Addons 
zusammengebasteltes Eclipse, aber einen wirklichen Unterschied scheint 
es nicht zu machen.
#5089472
Lesenswert?

matzunami schrieb:
> "AC6 STM32 Debugging" steht bei mir nicht. Muss ich da in Eclipse noch
> was nachinstallieren?

Ja, das AC6-Paket.
Dazu im Eclipse Help->Install new Software
In dem Dialog auf ADD klicken, und die folgende URL eintragen:

http://ac6-tools.com/Eclipse-updates/org.openstm32.system-workbench.update-site-v2

Damit wird alles Erforderliche für SW4STM32 installiert.

Danach kannst du auch die Debug-Configuration erzeugen.
Gast #5089551
Lesenswert?

Ich hab mir jetzt das AC6-Paket heruntergeladen und installiert.
Wenn ich da jetzt auf "new" gehe kommt:
Error: java.lang.NullPointerException
Habe kein Glück, kann es sein, dass meine Eclipse Version zu neu ist?
Ich werde es mal mit einer älteren versuchen.
Gast #5089569
Lesenswert?

Sorry, hab mich falsch ausgedrückt. Ich habe ein 64bit OS mit 64bit 
Eclipse und habe das AC6 Paket in Eclipse mit install new Software 
installiert (wie oben gesagt).
Sehe bei Debug Configurationen jeztz 'AC6 StM32 Debugging' und wenn ich 
da jetzt auf new gehe kommt der Fehler.
#5089573
Lesenswert?

matzunami schrieb:
> Sorry, hab mich falsch ausgedrückt. Ich habe ein 64bit OS mit 64bit
> Eclipse und habe das AC6 Paket in Eclipse mit install new Software
> installiert (wie oben gesagt).
> Sehe bei Debug Configurationen jeztz 'AC6 StM32 Debugging' und wenn ich
> da jetzt auf new gehe kommt der Fehler.

Ok..welche Eclipse-Version hast du installiert?
Aktuell ist Neon 3

http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/neon3
Gast #5106795
Lesenswert?

Ich hatte den selben Fehler mit Eclipse Oxygen und OpenOCD beim Versuch 
ein ST Nucleo STM32F103RB Board zu debuggen.

Nach langem Herumgoogeln und ausprobieren konnte ich schließlich den 
Fehler beheben indem ich nicht die OpenOCD Version 0.10.0 von 
GNU-MCU-Eclipse (GNU MCU Eclipse OpenOCD) genommen habe sondern die 
Version 0.10.0 von 
http://www.freddiechopin.info/en/download/category/4-openocd

Nachdem ich OpenOCD ausgetauscht habe lief alles ohne Probleme.

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