Forum: Mikrocontroller und Digitale Elektronik ARM Cortex Entwicklungsumgebung aufbauen


von Ralf (Gast)


Lesenswert?

Hi,

ich möchte mir eine Entwicklungsumgebung für ARM Cortex-M0/M3 Controller 
aufbauen. Bisher kenne ich nur die Keil-Umgebung, die ich in der Firma 
auf einem DevKit in der Evaluierungsversion mal angetestet habe.

Hab mich dann entsprechend mal auf die Suche begeben, und bin momentan 
bei folgender Kombination gelandet:
- Eclipse
- CodeSourcery G++ Lite
- Olimex ARM-USB-OCD-H

So, jetzt klemmt's aber leider ein bisschen, weil natürlich Fragen offen 
sind:
1. Generell ist erst mal die Frage ob die Kombi funktioniert.
2. Soweit ich gesehen habe, gibt's bei den Cortex-Controllern zwei Arten 
für's Debugging/Programmieren, JTAG und SWD(?) -> Kann man beides mit 
dem Olimex Adapter machen? Ich hab's entweder überlesen oder er kann's 
nicht.
3. Welcher Unterschied besteht zur Keil Umgebung, die einem ja recht 
viel abnimmt bzw. in der man viel direkt über die IDE(-Fenster) eingeben 
kann? Welche Einstellungen, etc. muss man von Hand (einmal oder bei 
jedem Projekt) machen? Debugging mit Breakpoints, Variablen im 
Watch-Fenster, etc.? Ich vermute mal, dass die Register nicht so 
angezeigt werden wie bei Keil, sondern als simple Speicheradressen, 
oder?
4. C++ würde auch mit G++ Lite gehen, nehme ich an. Lohnt sich das auf 
nem Cortex? Da dürfte der Speicherverbrauch doch ziemlich groß sein, 
oder?

Ich denke mal, Eclipse ist kein Diskussionsthema :)
G++ scheint soweit auch geeignet zu sein.
Ist der Olimex-Adapter geeignet? Oder gibt's andere Alternativen, die 
ggf.für kommerziellen Einsatz geeignet sind?

Danke.

Ralf

von ddsadasda (Gast)


Lesenswert?

was spricht gegen die dinger von den entsprechenden herstellern
wenn man eh nicht alle debugger oder so liegen haben will
STM gibts das atollic ... eclipse + gcc
NXP das LCPXpresso    .. auch eclipse + gcc

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


Lesenswert?


von Ralf (Gast)


Lesenswert?

Ja, aber da ist man wohl mehr oder weniger an die jeweiligen Hersteller 
gebunden. Wer will das schon?

Ralf

von Ralf (Gast)


Lesenswert?

@Markus:
Nein, die kenne ich noch nicht :)

Ralf

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


Lesenswert?

Auf der Seite STM32 ist ein Eclipse Demo-Projekt zum Download 
verlinkt.

von Ralf (Gast)


Lesenswert?

@Markus:
Danke,werd ich gleich morgen mal unter die Lupe nehmen.

Ralf

von Ralf (Gast)


Lesenswert?

Guten Morgen,

ich hab mir die Yagarto-Seite angesehen, sieht gut aus.
Werde ich ausprobieren.

Bleibt noch die Frage nach dem JTAG/SWD-Dongle.

Ralf

von Jan B. (berge)


Lesenswert?

Moin moin,

Yagarto verrichtet seinen Dienst auch bei mir. Ist empfehlenswert.

Das Jtag Dongle kannst du per OpenOCD verwenden. Verwende bei der 
Installation des Dongles die Treiber die bei OpenOCD dabei sind, nicht 
die Olimex. Mit denen läuft es nämlich nicht ;)

Per Telnet kannst du die korrekte Funktion von JTAG/OpenOCD dann testen.

Viel Erfolg dabei!

LG Jan

von Sebastian (Gast)


Lesenswert?

Hi!

Habe STM32 mit codesoucery g++ lite, eclipse, OpenOCD und FreeRTOS in 
Verwendung. Funktioniert alles bestens. Hat aber auch seine Zeit bei der 
Einrichtung gebraucht.
Bei der aktuellen codesourcery version (Sourcery G++ Lite 2010.09-51 
4.5.1) gibt es allerdings Probleme mit mit openOCD und dem gdb...
C++ verwende ich auch. Kostet schon Speicher aber man kann damit leben. 
Mit den ganz kleinen STM32 brauch man nicht damit anfangen. So ab high 
density kann man schon daruber nachdenken.

Gruß
Sebastian

von Ralf (Gast)


Lesenswert?

Hallo Jan,

danke für die Info :)
Jetzt bleibt eigentlich nur noch die Frage offen, ob der Olimex SWD 
unterstützt. Momentan haben meine "Spielzeuge" hier JTAG, aber wenn ich 
mal welche mit SWD habe brauche ich einen anderen Adapter, das wär 
natürlich doof...

Ralf

von Ralf (Gast)


Lesenswert?

Hallo Sebastian,

danke, dann werd ich C++ nur auf dem LPC1768 üben ^^

Ralf

von thorstendb (Gast)


Lesenswert?

Hi,

da empfehle ich den Segger JLink Edu (nicht komerziell) für rund 60€, 
wenns ne private Bastelei ist.
Der hat auch gnu debug support, und läuft mit vielen Toolchains, u.a. 
dem GNU zeug, Keil, IAR, ...

Hat den Vorteil, dass du vernünftig debuggen kannst, auf Memory- und 
Registerebene, und nicht nur mit printf...


VG,
/th.

von Ralf (Gast)


Lesenswert?

Hi Thorsten,

danke für die Empfehlung, aber es kann sein, dass die Umgebung auch in 
der Firma zum Einsatz kommt, also kommerziell.
Deswegen prüfe ich grad die OpenSource-Varianten.

Ralf

von thorstendb (Gast)


Lesenswert?

> auch in der Firma zum Einsatz kommt
ahh, ok.
Unterschätze bei deiner Wahl nicht den Mehraufwand bei einer gnu-lösung, 
auch in Bezug auf weitere Zusatzkomponenten / -libs.
Solltest du dich mit den gnu Sachen bereits bestens auskennen, ists egal 
:-)

von Ulrich P. (uprinz)


Lesenswert?

Hi!

Also ich verwende seid Jahren die Kombination aus Yagarto, OpenOCD und 
ein OpenOCD-USb Dongle (ca 30€ hier im Shop) und prorammiere damit alles 
was irgendwie ARM heißt vom 7er bis zum A8. Keine Probleme.

Als Editor setze ich allerdings auf ein kommerzielles Teilchen, weil ich 
meist auf bestehenden Code drauf entwickle und daher sehr viel wert auf 
schnelle und zuverlässige Reverse-Engineering Funktionen angewiesen bin.
Wer das auch macht, soll sich mal das hier ansehen:
http://www.sourceinsight.com/

Wer alle Vorteile des OpenOCD mit Cortex und unter Windows nutzen will, 
sollte sich eine der letzten Versionen aus dem Repository ziehen und 
diese gegen die FTDI Lib compilieren. Das ist im OpenOCD Forum gut 
beschrieben.

Gruß, Ulrich

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


Lesenswert?

Installiere alles in ein Ordner, z.B.

C:\WinARM\Eclipse
C:\WinARM\Codesourcery
C:\WinARM\....

Um die Umgebung auf einem zweiten PC zum Laufen zu bekommen:

- Verzeichnis WinARM kopieren
- Umgebungsvariablen einrichten
Fertig.

Und alle haben dann exakt die gleiche Version und der Code kann 
problemlos getauscht werden.

Dann unter
C:\WindARM\Projekte\...
immer die aktuellen Projekte rein, dann gibt es auch niemals Probleme 
wegen anderen Orten/Verzeichnisstrukturen.

Zum Sichern eines Projektes einfach alles komplett Zippen.

von Ralf (Gast)


Lesenswert?

@Ulrich:
> Also ich verwende seid Jahren die Kombination aus Yagarto, OpenOCD und
> ein OpenOCD-USb Dongle (ca 30€ hier im Shop) und prorammiere damit alles
> was irgendwie ARM heißt vom 7er bis zum A8. Keine Probleme.
Okay, und der Dongle kann SWD? Muss mal gucken, ob ich im Firmware-Pool 
was finde...

Ralf

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


Lesenswert?

SWD kann nur der JLINK, nicht OpenOCD.

von Ralf (Gast)


Lesenswert?

> SWD kann nur der JLINK, nicht OpenOCD.
Okay... hm... naja, kann ja dann im Notfall auch einfach die 
SWD-Controller ignorieren :)

Ralf

von Ulrich P. (uprinz)


Lesenswert?

Wollte ich auch gerade sagen. Wenn man auf eine openSource Toolchain 
setzt, dann muss man auf proprietäres SWD verzichten und nutzt JTAG.

Gruß, Ulrich

von Ralf (Gast)


Lesenswert?

Aber in dem Fall müsste es ja eigentlich möglich sein, sich einen 
Adapter selber zu bauen, oder? Also FT2232-D bzw. -H basierend, oder?
Ich denke, den Olimex werd ich mir holen, aber rein interessehalber: 
gibt's OpenSource-Schaltpläne?

Ralf

von Thomas B. (escamoteur)


Lesenswert?

Hi,

ich kam mit dem Olimex und meinem STM32 nicht klar. der Jlink von Segger 
dagegen lief auf Anhieb. Kostet ind er komerziellen Versio so um die 
250€.

Als IDE hab ich Crossworks und bin damit auch sehr zufrieden.

Lief alles ohne Probleme.

von Peter (Gast)


Lesenswert?

Markus Müller schrieb:
> SWD kann nur der JLINK, nicht OpenOCD.

Letztes Mal als ich da reingeschaut hab gabs einen ersten Patch für SWD 
in OpenOCD, könnte inzwischen evtl. fertig sein.

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


Lesenswert?

Schaue mal diesen JTAG-Stecker an, wenn der auf der Platine ist, dann 
hast du ziemlich alle Möglichkeiten und der ist viel kleiner als der 
Standard-JTAG und hat mehr Möglichkeiten.

http://www.mikrocontroller.net/articles/JTAG#Der_10-polige_JTAG_Stecker_von_mmvisual

Die Features sind im Artikel beschrieben.

Mit OpenOCD hatte ich auch mal was wegen SWD gelesen, aber nicht in 
deren Doku. Somit ist es erstmal "experimentell"

von Ralf (Gast)


Lesenswert?

@Thomas:
> der Jlink von Segger dagegen lief auf Anhieb. Kostet ind er komerziellen
> Version so um die 250€.
Das war dann der JLink Pro, oder?

@Peter & Markus:
>> Letztes Mal als ich da reingeschaut hab gabs einen ersten Patch für SWD
>> in OpenOCD, könnte inzwischen evtl. fertig sein.
> Mit OpenOCD hatte ich auch mal was wegen SWD gelesen, aber nicht in
> deren Doku. Somit ist es erstmal "experimentell"
Okay, das heisst man muss nachforschen, ob FT2232D/H basierende Adapter 
theoretisch doch geeignet sind? Der Olimex ist ja auch ein 
FT2232x-basierter Adapter.

Ralf

von Ralf (Gast)


Lesenswert?

@Thomas:
>> der Jlink von Segger dagegen lief auf Anhieb. Kostet ind er komerziellen
>> Version so um die 250€.
> Das war dann der JLink Pro, oder?
Vergiss die Frage :)
Die Lizenzen für JFlash etc. braucht man ja theoretisch (praktisch?) 
nicht ^^

Ralf

von thorstendb (Gast)


Lesenswert?

> Die Lizenzen für JFlash etc. braucht man ja theoretisch (praktisch?)
> nicht ^^
Das hängt davon ab, die der Treiber geschrieben ist. Im µVision (Keil) 
z.B. werden eigene Flash-Algorithmen verwendet, da werden die vom JLink 
nicht benötigt.
IAR nutzt so weit ich weiss die Algorithmen, die der JLink mitbringt, 
darum haben die gelben JLinks so eine Lizenz mit on Board.

Andererseit hat Segger - meine ich - seine Flash Lizenzen seit einiger 
Zeit freigegeben, so dass man die nicht mehr extra dazukaufen muss.

von Ulrich P. (uprinz)


Lesenswert?

Ralf schrieb:
> Aber in dem Fall müsste es ja eigentlich möglich sein, sich einen
> Adapter selber zu bauen, oder? Also FT2232-D bzw. -H basierend, oder?
> Ich denke, den Olimex werd ich mir holen, aber rein interessehalber:
> gibt's OpenSource-Schaltpläne?
>
> Ralf
Natürlich, aber bei einem Preis von um die 30€ und einer fertig mit SMD 
bestückten Platine... Man muss nicht alles selber machen.
Ich feile mir doch auch keinen Hammer wenn ich einen Nagel in die Wand 
hauen möchte.

Gruß, Ulrich

von Ulrich P. (uprinz)


Lesenswert?

Thomas Burkhart schrieb:
> ich kam mit dem Olimex und meinem STM32 nicht klar. der Jlink von Segger
> dagegen lief auf Anhieb. Kostet ind er komerziellen Versio so um die
> 250€.

Ich habe die Kombination mit OpenOCD-USB empfohlen, weil sie hier an 
einigen Arbeitsplätzen und bei mir zu Hause an drei verschiedenen 
Rechnern mit allem was irgendwie ARM hat einwandfrei funktioniert.
Außerdem ist die Geschwindigkeit dieser Kombination, wenn man OpenOCD 
gegen die FTDI Lib linkt, selbst bei vorsichtigen Einstellungen, völlig 
ausreichend.

Natürlich gibt es Leute die erheblich höhere Anforderungen stellen 
werden, aber dann müssen die auch 250..1000€ anlegen.

Oder sieh es so, ich habe mir so lang mit einem analogen Zweistrahler
mein Hobbybudget aufgebessert, bis es für einen Agilent DSO reichte.

Gruß, Ulrich

von Ralf (Gast)


Lesenswert?

@Ulrich:
> Natürlich, aber bei einem Preis von um die 30€ und einer fertig mit SMD
> bestückten Platine...
Du meinst dann das hier:
http://shop.embedded-projects.net/index.php?module=artikel&action=artikel&id=12

Oder?

Ralf

von Sebastian H. (sh______)


Lesenswert?

Also ich kann den JLink in Verbindung mit Crossworks empfehlen. 
Einfacher kann der Einstieg bei ARM gar nicht sein :)
Damit hat man es nach wenigen Minuten ohne Probleme am laufen.

von Ulrich P. (uprinz)


Lesenswert?

Nein, den habe ich nie wirklich zum Laufen gebracht.

Ich meine den hier:
http://shop.embedded-projects.net/index.php?module=artikel&action=artikel&id=14

Gruß, Ulrich

von Ralf (Gast)


Lesenswert?

Hi Ulrich,

ah, okay. Stimmt, der kostet nicht die Welt.

@Sebastian:
Ich schwanke noch :) Der JLink kostet halt doch schon n bisschen mehr ;)

Ralf

von peterguy (Gast)


Lesenswert?

Danke für diesen Thread und die Erfahrungsberichte!

Bin auch grad am STM32 dran und habe mir jetzt für 55€ den Segger JLINK 
Edu bestellt. Gestern bestellt, heute kam die Versandbestätigung.

Muss aber erst noch mein Board fertigbekommen bevors richtig losgehen 
kann ;-)

Als IDE soll dann Eclipse + YATARGO eingesetzt werden, und auf dem µC 
FreeRTOS laufen. Bin mal gespannt ob das alles auf Anhieb fluppt.

von Ralf (Gast)


Lesenswert?

Hi Peterguy,

wäre schön wenn du uns ebenfalls mit Erfahrungsberichten versorgst :)

Ralf

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.