Forum: Compiler & IDEs Debuggen mit GDB (ähnlich dem Bsp. auf Yagarto-Homepage)


von Lukas R. (mikrobroesl)


Lesenswert?

Hallo,

ich bin gerade dabei das freie RTOS ecos auf ein FM3-Evalboard zu 
portieren und dazu habe ich mir als IDE Eclipse-CDT eingerichtet.
Nun bin ich soweit, dass ich zum Debuggen übergehen kann.

Dazu habe ich mir ein Makefile-Projekt in Eclipse erstellt, in dem sich 
meine erstellte ecos-Library befindet sowie eine kleine 
HelloWorld-Anwendung, die ein LED leuchten lassen soll.
Die Konfiguration des Projekts sollte passen - das Makefile macht was es 
soll: es kompiliert mein HelloWorld und linkt es anschließend mit der 
ecos-Library, sodass zu guter Letzt ein elf-File entsteht.

Nun will ich die ganze Sache debuggen. Dazu habe ich ein Onboard-JLink, 
GDB von der Yagarto-Toolchain sowie den GDB-Server von Segger.

Ich habe einige Monate zuvor ein Beispiel von der Yagarto-Website 
nachgebastelt und konnte mit den gleichen Werkzeugen und dem gleichen 
Target erfolgreich debuggen. Nun habe ich mir gedacht, dass die ganze 
Sache für mein ecos-Projekt eigtl. auch funktionieren sollte.

Nur scheitert es bei mir wohl bei den Debug-Konfigurationen - u.a. den 
StartUp-Einstellungen. Leider habe ich darin bis dato so gut wie keine 
Erfahrung - deswegen meine Frage an euch:

Weiß jemand auf was ich bei den Commands für den GDB achten muss? Im 
Yagarto-Beispiel wurde Dinge gemacht wie:

target remote localhost:2331
monitor endian little
...
monitor reg r13 = (0x20000000)
monitor reg pc = (0x20000004)


Ich weiß bspw., dass 0x20000000 die Startadresse vom RAM meines Boards 
ist.
Aber kann jemand evtl. erläutern, was man beachten muss?

Viele Grüße, Lukas

von Lukas R. (mikrobroesl)


Lesenswert?

Bin jetzt ein Stückchen schlauer und ein bisschen weiter.
Ich glaube, mein Problem hat sich gelöst.

Punkt 3.4 im folgenden PDF hat mir weiter geholfen :)

http://www.segger.com/admin/uploads/productDocs/UM08005_JLinkGDBServer.pdf


Falls trotzdem noch jemand Anmerkungen hat, die mir helfen könnten --> 
nur zu, ich bin dankbar für alle Tipps :-)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Die ganzen "monitor"-Kommandos leiten den Rest des Kommandos 1:1
an den GDB-Server weiter, d. h. deren Erklärung musst du in der
Doku des Segger-Servers nachschlagen.

Ich benutze immer OpenOCD, mit dem Segger-Server steh' ich auf
Kriegsfuß.

von Hugo (Gast)


Lesenswert?

Jörg Wunsch schrieb:
> Ich benutze immer OpenOCD, mit dem Segger-Server steh' ich auf
> Kriegsfuß.

Echt? Ich fand das bis jetzt mit den J-Link GDB Server immer recht 
simpel. Das einzige worauf man achten muss, wenn man im Flash debuggen 
will, ist das man dem J-Link bekannt man welches Device denn dran hängt, 
damit der richtige Flash Algorithmus benutzt werden kann (wie soll es 
auch sonst anders funktionieren).
Etwa in der Art wie:
monitor flash device = AT91SAM7A3

Das einfachste ist, sich eine entsprechende embOS Trial Version zu laden 
und die GDB Kommandos dort abzuschauen.

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.