Forum: Compiler & IDEs GDB Experten gesucht für Eclipse integration


von Holger K. (holgerkraehe)


Angehängte Dateien:

Lesenswert?

Hallo zusammen


--- Folgende Ausgangslage:

Ich versuche STM8 unter Eclipse zu programmieren. Sprich Code 
Compilieren und Debuggen.


--- Was wurde bisher gemacht:

IAR Kickstart version für STM8 heruntergeladen und in Eclipse die 
Plugins installiert. Damit lässt sich nun problemlos der Code 
Compilieren.


--- Was fehlt:

Debuggen geht mit diesem Plugin laut Support von IAR nicht.
IAR liefert auch keinen GDB Server mit um STM8 zu debuggen.



--- Meine Idee:

ST Bietet mit dem ST Visual Develop kurz STVD eine eigene Umgebung ohne 
Compiler an. Diese habe ich mir mal genauer angesehen, und das File im 
Anhang entdeckt

Es scheint für mich so, als würde STVD einen GDB Server zum debuggen 
nutzen welcher SWIM (Das Proprietäre Format der STM8) kann.

Nun habe ich das so verstanden, dass ein GDB Server auf 
"standardisierte" kommandos reagiert welche z.B. von der Umgebung wie 
eclipse kommen.

Sommit müsste sich dies meiner Meinung nach miteinander kombinieren 
lassen.



--- Was ist noch unklar:

Ich weiss nicht, ob das Debug-Binary auch ein Standardformat ist.
Oftmals ja ein *.elf file. Weiss da jemand mehr ob das durch den IAR 
Compilierte Debug Binary auch mit GDB von STVD Funktioniert? Oder bringe 
ich hier etwas ducherinander?


--- Weiteres vorgehen:

Ich würde gerne versuchen, den GDB von STVD in Eclipse zu integrieren.
Bräuchte dazu aber noch ein paar Tipps von den Experten hier.

Wäre froh, wenn jemand ein paar Gedanken austauschen könnte.

Im Anhang sind noch zwei Bilder der (wie ich vermute) wichtigsten Daten 
im Ordner. Es gibt auch eine gdb7.exe Datei. Vermutlich der eigentliche 
Server.

Danke schonmal

: Bearbeitet durch User
von Jack (Gast)


Lesenswert?

Holger K. schrieb:
> Nun habe ich das so verstanden, dass ein GDB Server auf
> "standardisierte" kommandos reagiert welche z.B. von der Umgebung wie
> eclipse kommen.

Ein GDB Server arbeitet mit Kommandos die von einem GDB kommen. Eclipse 
arbeite, soweit ich das weiß auch mit einem externen GDB.

http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.cdt.doc.user%2Freference%2Fcdt_u_dsfgdb.htm

Die Kommunikation, wenn du wirklich einen GDB Server gefunden hast, wäre 
dann:
1
                  SWIM
2
uC <--> ST-Link <------> GDB SWIM Server <--> GDB <--> Eclipse CDT

Ob du einen GDB Server gefunden hast könntest du ganz ohne Eclipse, nur 
mit einem GDB auf der Kommandozeile ausprobieren.
1
                  SWIM
2
uC <--> ST-Link <------> GDB SWIM Server <--> GDB

Übrigens ist die Verwendung eines lokalen GDB Servers ein bisschen ein 
Hack, wenn auch ein gängiger. Eigentlich ist die Schnittstelle für 
Remote-Debugging gedacht gewesen und der Server ein Remote Stub. Daher 
brauchst du in GDB die Remote-Debugging Kommandos zum Start.

https://sourceware.org/gdb/onlinedocs/gdb/Remote-Debugging.html#Remote-Debugging

Wenn du den Verdächtigen direkt untersuchen möchtest (ohne GDB) ginge 
das auch. Die Kommandos sind dokumentiert. Die Netzwerk-Kommandos sind 
die gleichen wie die seriellen Kommandos:

https://sourceware.org/gdb/onlinedocs/gdb/Remote-Protocol.html#Remote-Protocol

Alternativ könntest du mal nachsehen, ob dir nicht

http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm8-software-development-tools/stm8-performance-and-debuggers/stm-studio-stm8.html

zum Debuggen reicht.

von Holger K. (holgerkraehe)


Angehängte Dateien:

Lesenswert?

Vielen Dank für deine Antwort.


In diesem Fall, scheint es wohl sehr simpel zu sein.
In dem Ordner befindet sich ein GDB und nicht ein GDB Server.

Es war mir möglich damit innerhalb der Konsole mit dem Mikrocontroller 
zu kommunizieren. Siehe dazu das Bild im Anhang.


Nun stellt sich mir halt noch die frage, wie ich Eclipse dazu bringe, 
die GDB.exe mit den richtigen Commands zu füttern.

Gibt es hier "standards"?

In der gdb.ini kann ich die befehle definieren.

So ist z.B.
1
emulator-reset-port-mcu

Mit dem hier definiert:
1
#
2
# emulator reset port and MCU
3
#
4
define emulator-reset-port-mcu
5
target gdi -dll swim\stm_swim.dll -stlink3 -port $arg0 -mcuname $arg1
6
mcuname -set $arg1
7
end


Ich habe das Gefühl, das ich der Lösung sehr nahe bin....
Hat jemand noch Tipps?

: Bearbeitet durch User
von Holger K. (holgerkraehe)


Angehängte Dateien:

Lesenswert?

Soo...

Nun scheint der ST GDB nicht die gewünschte Versionsinformation im 
gewünschten Format zu übergeben.

Weiss jemand wie man dies umgehen kann?


Und nochwas... Es scheint eine alte Version 4.xx zu sein.
Ich habe CDT 9 in Eclipse Neon. weiss jemand ob dies ein Problem für das 
CDT Plugin ist bzw. wo ich die herausfinden kann?

Danke

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.