Forum: Compiler & IDEs STM32F4-Discovery Debugging mit Eclipse


von Peter (Gast)


Lesenswert?

Hallo allerseits

Ich besitze ein STM32F4-Discovery Board und möchte nun über dessen 
ST-Link Inderface vom Eclipse aus programmieren und debuggen.

Meine Konfiguration:
- WindowsXP 32Bit
- Eclipse-cpp-luna-M4-win32
- GNU ARM Eclipse Plugin, Version 1.1.7-20131224
- gcc-arm-none-eabi-4_8-2013q4-20131204-win32

Projekte erstellen und compilieren funktioniert problemlos, aber wie 
kann ich über den ST-Link (SWD) debuggen?

Ich besitze keinen (Segger) J-Link. CoCoox habe ich mir angeschaut, da 
wurden mir zuviel nützliche Eclips-Feautures kastriert.

Ich bin bestimmt nicht der einzige der Eclipse und das STM32-Discovery 
verwendet, wie bzw. womit debuggt ihr, bzw wie richtet man das am besten 
ein? Es gibt diverse Beschreibungen im internet, die sind aber 
unvollständid oder beruhen auf alten Versionen und funktionieren so 
nicht mehr.

Kann man sich irgendwie den Debug-Server vom CooCox rauskopieren?


Ich bin dankbar für eure Feedbacks!

von Dr. Sommer (Gast)


Lesenswert?

Du brauchst einen GDB-Server für ST-Link, da gäbe es OpenOCD und "texane 
stlink". Den musst du installieren und starten, und in eclipse eine 
Debug-Konfiguration für Hardware-Debugging so einrichten, dass sie den 
GDB-Server verwendet (Port, startupscript etc).
Mit dem J-Link müsstest du im übrigen genau das gleiche machen, aber 
eben mit dem J-Link GDB Server.

von Peter (Gast)


Lesenswert?

Ich habe nun zwei Möglichkeiten zum Debuggen über ST-Link ausprobiert.

Der "Texane ST-Link" GDB-Server läuft recht gut mit dem GNU ARN Eclipse 
Plug-In: http://gnuarmeclipse.livius.net/blog/


Mit dem OpenOCD kann man ebenfalls arbeiten, er wird vom Zylin-CDT 
Plugin unterstützt:
http://vedder.se/2012/12/debugging-the-stm32f4-using-openocd-gdb-and-eclipse/
Funktioniert aber weniger stabil, bleibt oft hängen und ich muss 2..3 
mal probieren bis die Debug-Session endlich steht.

Aber so glatt wie mit CooCox läuft leider keiner der beiden 
Möglichkeiten, zudem würde ich oft gerne einfach die SW direkt vom 
Eclipse auf das Target laden (mit einem Klick).

Wer hätte da noch gute Tipps, Beschreibungen, Links?

von 900ss (900ss)


Lesenswert?

Peter schrieb:
> Der "Texane ST-Link" GDB-Server läuft recht gut mit dem GNU ARN Eclipse
> Plug-In: http://gnuarmeclipse.livius.net/blog/

Hmm... Kapier ich nicht. So wie ich das verstanden habe, steht der 
GDB-Server von Texane nur für Linux zur Verfügung. Du benutzt aber 
Windows-XP. Bitte nenne doch mal deine genaue Konfiguration und warum 
dir diese Lösung nicht so gefällt. Bei OpenOCD hast du es ja genannt 
(instabil).

Hier ist ein Link:
http://www.chibios.org/dokuwiki/doku.php?id=chibios:guides:stlink_eclipse

Dort wird beschrieben wie man den GDB-Server vom TrueStudio "extrahiert" 
und dann mit Eclipse und ST-Link benutzt.
Ich habe das nicht probiert, nur weil es mich auch interessiert, habe 
ich mal gegraben.

Falls du es probierst, berichte bitte mal.

Edit: Habe eben zumindest den GDB-Server mit 7-ZIP aus dem TrueStudio 
Executable extrahieren können. Nun hab ich keine Zeit mehr zum Testen.

: Bearbeitet durch User
von Peter (Gast)


Lesenswert?

>Hmm... Kapier ich nicht. So wie ich das verstanden habe, steht der
>GDB-Server von Texane nur für Linux zur Verfügung. Du benutzt aber
>Windows-XP.
Hier gib es eine Version die für WindowsXP gebaut wurde...
==> http://www.emb4fun.de/archive/stlink/index.html

>und warum dir diese Lösung nicht so gefällt...
Ich stelle mir eine Lösung vor, wo men einfach auf das [Debug] Icon 
klicken kann und los geht es mit debuggen, ohne vorher händisch den 
Debug-Server zu starten und eine Breackpoint im main() setzen zu müssen. 
(Sonst startet er einfach durch...)

Ebenso mit dem SW-Download, bzw. Flashen => Einziger Mausklick auf das 
entsprechende Icon.

Es gibt doch sicher zahlreiche Leute die mit Eclipse arbeiten und sich 
da besser auskennen. Hat mir niemand einige Tipps..?

von Peter S. (psavr)


Lesenswert?

Ich fand folgende Info:

>New gdb servers form Attolic TrueStudio are protected to use only
>with original application.. The last version that works outside
>TrueStudioST-LINK_gdbserver.exe ver. 1.4.1 extracted from TrueStudio
>ver. 2.3.0

Könnte mir jemand den Atollic ST-LINK_gdbserver V-1.4.1 zumailen?

: Bearbeitet durch User
von 900ss (900ss)


Lesenswert?

Peter schrieb:
> Ich stelle mir eine Lösung vor, wo men einfach auf das [Debug] Icon
> klicken kann und los geht es mit debuggen, ohne vorher händisch den
> Debug-Server zu starten und eine Breackpoint im main() setzen zu müssen.

Das wirst du kaum hinkriegen. Ich habe den J-Link und starte den J-LINK 
GDB-Server händisch einmal und kann dann immer wirder aus Eclipse heraus 
eine Debug-Session starten (mit einem oder zwei Klick(s)). Da ich aber 
auch das STM32F4 Discovery Board habe, wollte ich natürlich dafür den 
integrierten ST-Link nutzen. Wie das damit geht wieß ich eben noch 
nicht.

Peter S. schrieb:
> Ich fand folgende Info:

Mist, ich wußte, dass da ein Haken ist. Wie blöd.

von M. K. (kichi)


Lesenswert?

Peter schrieb:
> Ich stelle mir eine Lösung vor, wo men einfach auf das [Debug] Icon
> klicken kann und los geht es mit debuggen, ohne vorher händisch den
> Debug-Server zu starten und eine Breackpoint im main() setzen zu müssen.
> (Sonst startet er einfach durch...)
>
> Ebenso mit dem SW-Download, bzw. Flashen => Einziger Mausklick auf das
> entsprechende Icon.
>
> Es gibt doch sicher zahlreiche Leute die mit Eclipse arbeiten und sich
> da besser auskennen. Hat mir niemand einige Tipps..?

Ich nutze Eclipse Indigo, da ich mit Juno Probleme (Stabilität beim 
debuggen) hatte und die Nachfolger nicht mehr ausprobiert habe.

Ich habe das bei mir folgendermaßen gelöst:
1. GDBserver über "External Tools Config" aufrufbar gemacht [1]
2. In der "Debug Config" unter "Startup" "Set breakpoint at:" aktiviert 
und "main" eingetragen [2]
3. Die beiden eben erstellten Teile in einer "Run Config" 
zusammengefasst

Beim ersten Start muss somit nur der "Play"-Knopf angeklickt werden und 
danach jeweils nur noch der Käfer.

Was mir allgemein nicht an der ganzen Sache mit Eclipse gefällt ist, 
dass diese ganzen Einstellungen Workspace-spezifisch sind. Wenn man also 
mehrere Projekte innerhalb eines Workspaces hat (theoretsich ohne 
Probleme machbar), braucht man bspw. für jedes Projekt eine eigene, 
separate Debug-Config und dementsprechend auch je eine Run-Config.

Im CodeComposerStudio von TI (auch Eclipse-basierend) kann man in 
solchen Fällen jeweils ein einzelnes Projekt aktiv setzen und dann 
einfach drauf loslegen ohne die Configs anzupassen oder lauter einzele 
Configs zu haben.

Wenn jemand Abhilfe dafür kennt wäre ich für Tipps sehr dankbar.

[1] 
https://sites.google.com/site/stm32discovery/open-source-development-with-the-stm32-discovery/setting-up-eclipse-for-stm32-discovery-development
[2] der Teil mit dem Breakpoint fehlt im Link 
https://sites.google.com/site/stm32discovery/open-source-development-with-the-stm32-discovery/getting-hardware-debuging-working-with-eclipse-and-code-sourcey

: Bearbeitet durch User
von Peter S. (psavr)


Lesenswert?

>Wenn jemand Abhilfe dafür kennt wäre ich für Tipps sehr dankbar.
Ich auch! ;o)

Zumindest kann man Projekte, an denen man nicht gerade arbeitet einfach 
"schliessen", dann hat man zumindest die unnötigen Debug-Sessions nicht 
mehr in der Auswahlliste.

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.