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
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
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
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
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
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.
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
> 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
:-)
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
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.
@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
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
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.
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.
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"
@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
@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
> 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.
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
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
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.
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.