Forum: Mikrocontroller und Digitale Elektronik STLink + OpenOCD + Eclipse


von matzunami (Gast)


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.

von Stefan F. (Gast)


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.

von Harry L. (mysth)


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.

von matzunami (Gast)


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.

von TMK (Gast)


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.

von Harry L. (mysth)


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.

von matzunami (Gast)


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.

von Harry L. (mysth)


Lesenswert?

Das könnte daran liegen, daß du ein 32bit Java auf einem 64bit OS 
installiert hast, oder SW5STM32 für 32bit compiliert wurde und dui ein 
64bit Java hast.

Aber warum installierst du nicht SW4STM in deinem lauffähigen Eclipse 
wie ich das oben beschrieben hab?

von matzunami (Gast)


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.

von Harry L. (mysth)


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

: Bearbeitet durch User
von matzunami (Gast)


Lesenswert?

eclipse-cpp-oxygen-R-win32-x86_64
heißt das file

von Harry L. (mysth)


Lesenswert?

matzunami schrieb:
> eclipse-cpp-oxygen-R-win32-x86_64
> heißt das file

Das ist uralt.

von matzunami (Gast)


Lesenswert?

ok...
Das steht auf der Homepage unter Version 4.7 ganz oben (seit Juni 2017).
Darunter steht Neon (v4.6)

Da kann das doch nicht so alt sein...

von Harry L. (mysth)


Lesenswert?

matzunami schrieb:
> ok...
> Das steht auf der Homepage unter Version 4.7 ganz oben (seit Juni 2017).
> Darunter steht Neon (v4.6)
>
> Da kann das doch nicht so alt sein...

Hatte ich anders im Kopf - aber Ok....
Auf der offiziellen Download-Seite von Eclipse CDT gibts jedenfalls 
nichts neueres als NEON3 (Ver. 9.2.1)

https://eclipse.org/cdt/downloads.php

von matzunami (Gast)


Lesenswert?

ok, danke. Ich werde es damit nochmal probieren

von matzunami (Gast)


Lesenswert?

ok, alles geht... besten Dank, jetzt kann ich auch debuggen.

von DerAndere (Gast)


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.

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.