Forum: Mikrocontroller und Digitale Elektronik Debuggingproblem beim GDBServer mit Eclipse + J-Link für STM32F103


von Chris (Gast)


Lesenswert?

Wunderschönen guten Abend,

ich versuche nun schon seit zwei Tagen mein Eclipse einzurichten aber 
habe nach wie massive Probleme beim Flashen und Debuggen.

Meine Umgebung besteht aus einem frischen Eclipse Mars, GNU ARM Eclipse 
Build Tools 2.4-201503242026, GNU Tools ARM Embedded 4.9 2015q2, Segger 
J-Link V5.00i. Die benötigten Eclipse-Plug-Ins sind natürlich auch 
installiert, Betriebssystem ist Windows 7 64-Bit.

Zum testen habe ich mir ein einfaches Programm geschrieben in welchem 
ein Pin mit angeschlossener LED als Ausgang konfiguriert wird und im 
Sekundentakt mit Delay()-Funktionen blinkt. Das kompilieren funktioniert 
auch ohne Fehler oder Warnungen, soweit so bekannt.

Wenn ich das Programm nun aber auf meinen STM32F103 schreiben lassen und 
debuggen möchte wechselt die Ansicht in den Debug-Modus und die 
GDB-Server UI von Segger öffnet sich, es verbindet sich jedoch kein 
Client damit. Daher wird auch keine Software aufgespielt und das 
Debugging funktioniert natürlich auch nicht.

Wenn ich den GDB-Client arm-none-eabi-gdb.exe manuell mit dem Segger 
J-Link GBD-Server localhost:2331 verbinde wird dies dort korrekt 
angezeigt. Dieser Vorgang scheint aber aus Eclipse heraus nicht zu 
funktionieren, auch mit einem gdbinit-Script konnte ich nichts daran 
ändern.

Ist jemanden ein derartiger Fehler bereits untergekommen und weiß sogar 
wie man ihn behebt? Habe schon zwei Bekannte gefragt die sich leider 
keinen Reim darauf machen können, insbesondere da die Einstellungen 
korrekt aussehen.

von Simon (Gast)


Lesenswert?

Hallo,

hast du schon mal das Programm direkt per J-Link-Commander rüber geladen 
und läuft das?

Passt das Linker-Skript? Schau dir das Binär-Image an, ob die 
InterruptVektorTabelle passt.

Und v.a. ob der Clock-Tree passt. Nicht dass es direkt abstürzt.

Gruß

Simon

von Chris (Gast)


Lesenswert?

Konnte das Problem mitlerweile etwas besser eingrenzen. Wenn ich ein 
Projekt mit den Beispieldaten (z.B. zum Blinken der LEDs) erstellen 
lasse geschieht dies mit der "alten" HAL. So kann ich das Programm auf 
den STM32 laden und ganz normal debuggen.

Bau ich jedoch das Programm um auf die neue HAL funktioniert das 
aufspielen und debuggen nicht mehr. Der Fehler bzw. die Warnung der 
dafür verantwortlich ist, ist diese hier:
cannot find entry symbol _start; defaulting to 08000000

Und tatsächlich gibt es _start in der neuen HAL nicht mehr. In der alten 
ist dieses symbol in der exception_handlers.c zu finden. Jetzt muss ich 
nur noch eine Möglichkeit finden die vernünftig in mein Programm zu 
bauen, dann sollte es hoffentlich funktionieren...

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.