www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ARM Cortex Entwicklungsumgebung aufbauen


Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: ddsadasda (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Ralf (Gast)
Datum:

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

Ralf

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Markus:
Nein, die kenne ich noch nicht :)

Ralf

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf der Seite STM32 ist ein Eclipse Demo-Projekt zum Download 
verlinkt.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Markus:
Danke,werd ich gleich morgen mal unter die Lupe nehmen.

Ralf

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jan Berg (berge)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Sebastian,

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

Ralf

Autor: thorstendb (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: thorstendb (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 
:-)

Autor: Ulrich P. (uprinz)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SWD kann nur der JLINK, nicht OpenOCD.

Autor: Ralf (Gast)
Datum:

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

Ralf

Autor: Ulrich P. (uprinz)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas Burkhart (escamoteur)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht 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_1...

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"

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: thorstendb (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ulrich P. (uprinz)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ulrich P. (uprinz)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Oder?

Ralf

Autor: Sebastian H. (sh______)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ulrich P. (uprinz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, den habe ich nie wirklich zum Laufen gebracht.

Ich meine den hier:
http://shop.embedded-projects.net/index.php?module...

Gruß, Ulrich

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: peterguy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Peterguy,

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

Ralf

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.