Forum: Mikrocontroller und Digitale Elektronik ARM STM32F4 Discovery mit Eclipse


von Meik S. (atomius)


Lesenswert?

Hallo liebe Gemeinde ;-)

Mein Name ist Meik, ich studiere im ersten Semester an der HAW-Hamburg, 
und wir testen in einer kleinen Gruppe den oben gennanten 
Mikrocontroller auf Eignung als Praktikumsgerät. Den ST-Link habe ich 
bereits über QSTLINK2 hinbekommen, Reset, Download usw. laufen. Ich habe 
auch schon das "Blink-LED" Projekt in Eclipse Helios eingebunden, und 
bekomme es auch compilt. Mein Problem liegt jetzt in der Verbindung der 
beiden Elemente:

Wie kriege ich aus Eclipse eine .bin Datei raus, welche ich dann 
anschließend mit QSTLINK2 flashen kann, und wie kann ich dann Step für 
Step durch das Programm durchspringen, und mir die Register 
währenddessen anzeigen lassen? Quasi den Debugmode hinkriegen.

Bin Anfänger auf diesem Gebiet, und freue mich schon auf eure Antworten 
;-)

lg Meik

von Simon H. (simi)


Lesenswert?


von Meik S. (atomius)


Lesenswert?

Den Fred habe ich schon gesehn, allerdings krieg ich den GDB nicht zum 
laufen, bzw. finde diese 1.4er Version auch nicht zum download. Ein 
Request bei der Firma hat auch nichts gebracht =(

QSTLINK2 läuft jetzt bei mir endlich, kann ich dieses nicht genauso 
implementieren? Hat da keiner ne Dummy Anleitung zu? Ich meind er 
Einstieg in das alles ist eh schon schwierig genug, und es ist doch für 
einen alten Hasen auf dem Gebiet ein kleines mir die nötigen Tipps tu 
geben, damit ich endlich starten kann..

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Atollic Downloaden, dann mit 7Zip die EXE öffnen und den GDB-Server 
entpacken.

von Simon H. (simi)


Lesenswert?

Meik Soul Reaver schrieb:
> allerdings krieg ich den GDB nicht zum
> laufen, bzw. finde diese 1.4er Version auch nicht zum download.

Erst mal: Diese von mir erwähnte 1.4er Version ist nicht GDB, sondern 
ein GDB -Server. Das ist ein sehr grosser Unterschied (wie Webbrowser 
und Webserver).

Dann: Schau nochmal in den Thread rein, ich habe ganz kürzlich 
geschrieben, wo es den gibt. :-)

Meik Soul Reaver schrieb:
> QSTLINK2 läuft jetzt bei mir endlich, kann ich dieses nicht genauso
> implementieren?

Ich kenne QSTLINK2 nicht, aber ein kurzer Blick auf den Screenshot sagt 
mir, dass das wohl einfach ein Tool zum Brennen von Binaries ist. Damit 
wirst Du kaum glücklich, wenn Du debuggen willst. (Irrtum nicht 
ausgeschlossen).


Will heissen: Installiere den Atollic GDB-Server. Oder am besten die 
Atollic Tool-Chain. Da kriegst Du alles pfannenfertig.

Wenn Du die Einschränkungen loswerden willst, nimmst Du Eclipse und 
GCC/GDB und hängst Dich damit an den GDB-Server.

Meik Soul Reaver schrieb:
> Ich meind er
> Einstieg in das alles ist eh schon schwierig genug, und es ist doch für
> einen alten Hasen auf dem Gebiet ein kleines mir die nötigen Tipps tu
> geben, damit ich endlich starten kann..

Das habe ich ja gerade. Mit dem Verweis auf den Link. Was Du ganz sicher 
nicht erhalten wirst, ist eine Anleitung, was Du der Reihe nach machen 
musst. Nicht, weil wir zu faul sind, das zu tun, sondern, weil man sich 
einarbeiten MUSS. Und das beste, was wir dazu tun können, ist, Dir zu 
sagen, wo/wonach Du suchen musst. Aber Atollic bietet wie gesagt etwas 
recht pfannenfertiges.

Ich sag nur noch kurz folgendes:

Eclipse --> GDB --> GDB-Server --> ST-Link --> Prozi


Das ist Deine Landkarte. In jedes dieser Elemente solltest Du Dich ein 
bisschen einlesen. Dann klappt das.

Viel Erfolg!
Simon

von Meik S. (atomius)


Lesenswert?

Okay, danke dir ;-)
Entschuldige meine forsche Art, aber ich hab zu viele Stunden am Stück 
drangesessen ohne Erfolg, und sowas frustriert natürlich..

Also der GBD Server von Atollic (in der 1.4.0 Version) hat so direkt 
auch nicht funktioniert. Mithilfe der Treiber Datei direkt von STM, hab 
ichs aber zum laufen gebracht, und konnte das ST Link Update auf dem 
Controller machen. Der Server läuft jetzt inner Batch. In Eclipse habe 
ich jetzt auch CDT installiert, welches Plugin brauch ich denn da genau, 
um Eclipse mit dem laufenden GDB Server kommunizieren zu lassen? Dann 
bin ich in der Lage den Chip zu flashen und zu debuggen oder?

von Simon H. (simi)


Lesenswert?

Meik Soul Reaver schrieb:
> Entschuldige meine forsche Art, aber ich hab zu viele Stunden am Stück
> drangesessen ohne Erfolg, und sowas frustriert natürlich..

Das kenne ich. :-)

> In Eclipse habe
> ich jetzt auch CDT installiert

Du kannst übrigens bei eclipse.org direkt die C/C++-Variante laden. Da 
ist CDT schon dabei. Aber so passt es natürlich auch.

Meik Soul Reaver schrieb:
> welches Plugin brauch ich denn da genau,
> um Eclipse mit dem laufenden GDB Server kommunizieren zu lassen?

Eclipse kommuniziert nicht direkt mit dem GDB Sever, sondern mit GDB. 
Und GDB wiederum spricht mit dem GDB-Server.
Allerdings brauchst Du, wie Du schon schriebst, ein Plugin, welches so 
mit GDB schwätzt, dass das mit dem Debugging direkt auf der HW über 
JTAG/SWD funktioniert.  Und das Ding nennt sich "GDB Hardware 
debugging". Google das mal. Ich muss ehrlich gestehen, dass ich gerade 
nicht aus dem Stehgreif sagen kann, warum es dafür ein spezielles Plugin 
braucht. Aber ich denke, es hat damit zu tun, dass GDB halt bei dieser 
Form von Debugging einige Einschränkungen hat und Eclipse aufgrund 
dessen nicht ganz den selben Funktionsumfang bietet.

LTC1043 hat im von mir verlinkten Thread sehr schön beschrieben, resp. 
mit Screenshots gezeigt, wie man das Ding konfigurieren muss.

Gruäss
Simon

von LTC1043 (Gast)


Lesenswert?

Anmerkung:

Das ARM Eclipse Plugin läuft nun auch mit Eclipse Indigo perfekt. Es gab 
Anfangs Dezember ein Update.

Gruss
LTC1043

von Guest (Gast)


Lesenswert?

Hallo,

du kannst auch einen Segger J-Link benutzen, da ist dann der GDB Server 
direkt mit dabei. Funktioniert bei mir ohne Probleme mit Eclipse.
Den J-Link bekommst du in der EDU Version (nicht kommerzielle Benutzung) 
für etwa 50,- Euro.

Als Eclispe Umgebung kannst du auch mal bei Yagarto schauen 
(yagarto.de).

von THaala (Gast)


Lesenswert?

Hier eine fast perfekte Anleitung:

http://www.chibios.org/dokuwiki/doku.php?id=chibios:articles:stm32f4_discovery

du must allerdings die letzte Version aus SVN laden, nicht die von 
sourceforge, da ist die Unterstützung für dieses Board noch nicht drin.

viele Grüße,
THaala

von Simon H. (simi)


Lesenswert?

Guest schrieb:
> du kannst auch einen Segger J-Link benutzen, da ist dann der GDB Server
> direkt mit dabei. Funktioniert bei mir ohne Probleme mit Eclipse.

Stimmt, das läuft auch prima. Aber im Discovery Board ist halt ein 
ST-Link schon mit eingebaut. Den zu verwenden, ist halt schon eleganter. 
Ich weiss auch nicht, ob die JTAG-Pins im Discovery überhaupt an die 
Steckerleiste geführt sind.

LTC1043 schrieb im Beitrag #2460961:
> Das ARM Eclipse Plugin...

Ganz blöde Frage: Was macht das Arm Eclipse Plugin? Ich verwende das gar 
nicht. Worin besteht der Unterschied zum Hardware debugging Plugin?

Ok... ich kann's ja lesen:

> Features
> simplify project management (no need to create makefiles)
> support major ARM toolchains (Sourcery G++ Lite, GNUARM)
> run on Windows, GNU/Linux, Mac OS X

Da geht's also um den Build-Prozess, nicht um's Debugging, wenn ich das 
richtig sehe? Ich präferiere halt make Projekte... allerdings nur, weil 
das mit dem managed build unbefriedigend war... vielleicht sollte ich 
das mal ausprobieren?

von LTC1043 (Gast)


Lesenswert?

Simon Huwyler schrieb:
>> Das ARM Eclipse Plugin...
>
> Ganz blöde Frage: Was macht das Arm Eclipse Plugin? Ich verwende das gar
> nicht. Worin besteht der Unterschied zum Hardware debugging Plugin?

Es erleichert dir die Einstellungen von Compiler, Linker extrem...

Wenn du mit erstellten Make-Files arbeitest ist der Nutzen nicht so 
gross.

Gruss

von Guest (Gast)


Lesenswert?

>Aber im Discovery Board ist halt ein
>ST-Link schon mit eingebaut. Den zu verwenden, ist halt schon eleganter.
>Ich weiss auch nicht, ob die JTAG-Pins im Discovery überhaupt an die
>Steckerleiste geführt sind.

Stimmt, habe ich verpeilt, ich benutze da auch den integrierten 
ST-Link...
Gar nicht mehr dran gedacht, weil ich sonst den ganzen Tag den J-Link 
benutze.

von Meik S. (atomius)


Lesenswert?

vielen dank für die ganzen nützlichen tipps ;-)
Ich hab jetzt den Dampfhammer rausgeholt und mir die IAR workbench for 
arm in der 6.3er version installiert, damit läuft auch alles. Ich muss 
jetzt nur noch rausfinden, welche von den vielen dateien ich eigentlich 
nur brauche für ein ganz normales projekt, also für die blanke 
initialisierung und alles. Wenn ich nämlich den sog. "master workspace" 
von der stm homepage in IAR lade, dann hab ich da gefühlte 1000 dateien 
drin, von denen ich die meisten bestimmt gar nicht brauche...

von Guest (Gast)


Lesenswert?

Lass dir doch einfach von IAR ein C Projekt generieren. Linker File und 
Startup Code liefert IAR dann schon. Mehr brauchst du eigentlich nicht.

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.