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
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.