STM32F4-Discovery Debugging mit Eclipse

Gast #3460670
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!
Gast #3460681
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.
Gast #3463944
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?
#3464081
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.
Gast #3464295
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..?
#3464356
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?
#3464706
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.
#3464738
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

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