Forum: Mikrocontroller und Digitale Elektronik Cortex-M3: Welche JTAG-Schnittstelle und Softwarekit?


von Absolut unentschlossener (Gast)


Lesenswert?

Hallo,
seit ca. 1 Woche versuche ich, informationen zum Thema Cortex-M3 
zusammenzutragen. Und es ist wie im richtigen Leben: Je mehr man sucht, 
desto verwirrter wird man.
Ich möchte auf den Cortex-M3 einsteigen. Es gibt ja schon viele (und dem 
Preis zum Vorteil) immer mehr Lizenznehmer, deren Chips auch tatsächlich 
verfügbar sind.
Meine persönliche Zusammenfassung:
- Es gibt diverse Toolchainhersteller, die kostenlos eine 
Eval-/Trialversion  bis z.B. 32kB Debugging anbieten.
- Man braucht üblicherweise einen JTAG-Adapter, der auch von der 
Toolchain angesprochen wird. Hiervon gibt es Originale und diverse Clone 
bei Äbäh (die sich natürlich im Preis enorm unterscheiden). Sinniger 
Weise nimmt man alles aus einer Hand (außer man nimmt OpenOCD etc., wo 
man selbst viel konfigurieren muß)
- Es gibt diverse Anbieter von Dev-Boards (auch hier "Orginale" und 
Nachbauten).

Nur: Wenn man nicht weiß, wo man später hin will (weil man ja erst 
lernen will): Mit welchem Kauf macht man nichts verkehrt?

JTAG-Adapter ULINK-ME scheint es zur Zeit sehr günstig bei Toshiba zu 
geben (man ist damit aber an µVision gebunden), oder man nimmt den 
J-Link von Segger (ohne "IDE", aber µVision geht hier auch.

Generell tendiere ich zu einem "Original", weil ich chinesisch zwar 
gerne esse, aber ... und ich zweitens auch in Zukunft wohl Support haben 
werde.

Ist JTAG überhaupt (noch) das Mittel der Wahl oder werden die anderen 
Verfahren (SDW oder so ähnlich) bald das Rennen machen?

Kurzum: Ich werde wohl gut 200 Euro berappen müssen, um sehr viel zu 
lernen und als Hobby mal 1-2 Projekte pro Jahr zu fabrizieren. Wer hat 
eine sachliche Empfehlung, welche Hardwarekombination es werden soll?

von (prx) A. K. (prx)


Lesenswert?

Günstiges Board: 
http://cgi.ebay.de/STM32-ARM-STM32F103-Cortex-M3-ARM7-ARM9-AMEL-JTAG-KEIL_W0QQitemZ170398897340QQcmdZViewItemQQptZWissenschaftliche_Geräte?hash=item27ac90d4bc

In Verbindung mit Rowley Crossworks (nichtkommerziell etwas über 100€, 
basiert auf GCC 4.4) funktionieren die günstigen FT2232 basierenden 
JTAG-Adapter gut. In meinem Fall der Olimex ARM-USB-OCD, aber die 
anderen dürften es genauso tun, auch Selbstbau ist möglich. IMHO 
umgänglicher als Yagarto/Eclipse.

Ob JTAG oder SDW hängt von der Familie ab. LM3, STM32 und LPC1000 können 
mindestens JTAG (ist m.W. schneller als SDW), die grad angekündigten 
Norweger nur SDW. Die FT2232 JTAGs können m.W. kein SDW, Segger schon.

von Lutz (Gast)


Lesenswert?

Hallo,
ich bin auch ein "suchender" in ähnlicher Situation. Klar ist es doof, 
sich ohne eigene Erfahrungswerte auf irgendwas festlegen zu müssen, aber 
Keil genießt ja einen guten Ruf, es gibt die 32 kB-Version für lau und 
den JTAG-Adapter (mit etwas Elektroschrott dabei, sorry) für 89 € (z.B. 
bei Sander) aus dem Toshiba-Kit.
Ich werde daher wahrscheinlich die Variante Toshiba-Kit mit (Keil 
komplett) und Olimex LPC1766 Dev-Board nehmen, sobald die Platine hier 
im Shop verfügbar ist. Übrigens: Weiß jemand, wann und für wieviel € das 
Teil hier zu kriegen ist?

von Gast (Gast)


Lesenswert?

Willst du was beruflich oder privat machen? Falls privat dann gibts den 
J-Link von Segger doch schon für 98,- Euro. Der kann dann JTAG und SWD!

(Davon abgesehen das J-Link halt das Standardprodukt in der Industrie 
ist und man damit halt einfach nichts falsch machen kann).

Die Rowley Umgebumg ist echt nicht schlecht, wenn es auf das Geld nicht 
ankommt würde ich eher IAR nehmen, vor allem weil es da auch das 
Powerpac gibt. Das ein Softwarepaket in dem alle Segger Produkte (OS, 
Filesystem, USB, ...) drin ist.

Wenns denn günstig sein soll kann man natürlich auch mit den diversen 
GNU tools und OpenOCD arbeiten...Spaß macht das aber nicht.

von (prx) A. K. (prx)


Lesenswert?

Wenn man da nicht bloss ein paar Wochen reinschüffeln, sondern ein 
konkretes Projekt angehen will, dann sind 32KB nicht wirklich viel. Mach 
einen Webserver der nicht bloss uIP heisst, plus SD-Slot, und du darfst 
Debugging im optimierten Code durchführen, weil's ohne Optimierung nicht 
reinpasst.

von Lutz (Gast)


Lesenswert?

Also bei mir ist es rein für den privaten Gebrauch gedacht, auch keine 
"Mörderangelegenheiten", wobei der Appetit ja aber bekanntlich beim 
Essen kommt. Aber ich bin nicht so der Softwaremensch, als daß da so 
riesige Dinge rauskommen werden (außer man included da eine Lib nach der 
anderen; Kunststück).
Mit dem Segger-Teil liebäugel ich auch etwas, wobei aber inkl. MwSt. und 
Versand 129,53 € zusammenkommen. Allerdings hat man gleich ein 
vernünftiges Gehäuse und Flachbandkabel dran. Weiterhin wäre das 
Seggerteil mit IAR und Keil nutzbar, wobei wohl die RDI-Schnittstelle 
in Keil 4.00 nicht mehr drin sein soll. Es soll aber trotzdem über einen 
speziellen Cortex-M3-Treiber J-Link gehen. Ob ein GDB-Server 
zukunftssicher ist, kann ich nicht beurteilen. Generell scheint der 
Segger J-Link ja mehr features zu haben (zumindest sind mehr aufgeführt, 
was aber à la Werbung "das Auto wird mit 4 Rädern geliefert" sein kann. 
Kann ich auch nicht beurteilen).
Grundsätzlich will ich schon eine plug and play Lösung kaufen, da hat 
mir damals beim Einstieg das STK500 auch enorm geholfen.

von Hugo B. (stinkywinky)


Lesenswert?

Bei Keil betrifft die Einschränkung nicht bloss die Codegrösse, sondern 
auch die Möglichkeiten, sein Programm speziell zu linken (z.B. ins RAM, 
oder andere Startadresse als 0). Sprich: Es werden keine Scatter-Dateien 
unterstützt.

von Klaus S. (skibby)


Lesenswert?

Hat jemand schon Erfahrungen mit den Raisonance-Tools gesammelt ?

von KeinPlan (Gast)


Lesenswert?

Die Ride7 IDE ist ganz gut. Aber da der RLink Adapter nur Ride 
unterstützt würde ich mir das nicht kaufen. 800 € für die unlimitierte 
Version ist meiner Meinung nach zu teuer für die gebotene Leistung. Dann 
schon eher die Cortino Umgebung von Hitex.
Für die private Nutzung ist wohl Rowley das günstigste.
Ich habe ein OpenOCD Adapter und verwendet privat auch Rowley. Anfangs 
habe ich OpenOCD + GNU Toolchain verwendet, allerdings hat mir das 
Debuggen nicht so gefallen. Da nichtmal eine Registerübersicht 
existiert.
Anfängern würde ich nicht zu GNU raten, denn da muss man erstmal 3-4 
Wochen für die Konfiguration ansetzen. Besonders das erstellen der 
Linkerscripte, Makefile, Startup und ggf. syscalls (für stdio) stellt 
eine Herausforderung dar. Dazu kommt dann noch die Einarbeitung in 
OpenOCD. Mir war das zu aufwendig, obwohl ich mich in den Bereich 
(beruflich bedingt) sehr gut auskenne. Da habe ich lieber die $150 
investiert und kann gleich loslegen.

Meine Empfehlung zusammegefasst:
Adapter: OpenOCD (Olimex) (60 €)
IDE: Rowley Crossstudio 2 (100 €)

von Peggy Sue (Gast)


Lesenswert?

Ich würde dir ein Board von Luminary empfehlen:

http://www.luminarymicro.com/products/evaluation_kits.html/

Die kannst du auch gleich ohne JTAG-Adapter programmieren und debuggen. 
Für den Einstieg sollte das durchaus reichen. Außerdem gibts da noch 
eine umfangreiche "Peripheral Library" und Keil als Eval-Version gleich 
dazu. Preislich liegen die Boards glaube so bei um die 100 Euro.

von Gast (Gast)


Lesenswert?

" Es soll aber trotzdem über einen
speziellen Cortex-M3-Treiber J-Link gehen. Ob ein GDB-Server
zukunftssicher ist, kann ich nicht beurteilen. Generell scheint der
Segger J-Link ja mehr features zu haben (zumindest sind mehr aufgeführt,
was aber à la Werbung "das Auto wird mit 4 Rädern geliefert" sein kann.
Kann ich auch nicht beurteilen)."

Jep, das hatten wir hier letzten schon mal, RDI brauchst du nicht, 
J-Link wird direkt von Keil unterstützt, wir hatte hier doch letztens 
jemand, der wohl für Keil die entsprechende DLL geschrieben hat?

Der J-Link hat nicht nur mehr Features sondern ist auch sehr schnell, 
vor allem wenn du im Flash debuggen möchtest (Flash Breakpoints).

Ich weiß das bei Segger zwei Leute nix anderes machen, als die J-Link 
Software weiter zu entwicklen, sprich da wirds halt auch in Zukunft 
immer Features geben.

Ok, 129,- Euro ist natürlich für privat schon echt die Schmerzgrenze 
aber ich gebe lieber 50 Euro mehr aus und habe dafür was vernünftiges 
womit es auch Spaß macht zu arbeiten. Ich kauf mir ja auch keine Trabbi, 
auch wenn ich sag, ich fahr damit nur privat durch die Gegend ;-).

von (prx) A. K. (prx)


Lesenswert?

Wenn man nun 129€ dafür springen lässt - wie geht es dann weiter? Denn 
damit hat man ja wohl nicht mehr in der Hand als ein Interface zwischen 
Gerät und PC. Kein Board, keinen Debugger, keinen Compiler.

Apropos "Geld für was vernünftiges ausgeben": nix ist für die Ewigkeit, 
grad nicht in dieser Branche. Ein Lötkolben mag etliche Jahrzehnte 
halten, bei Debug-Interfaces wird den Leuten aber immer wieder was neues 
einfallen, jetzt wo das standardisierte JTAG bereits kippt und durch 
Firmenvarianten ersetzt wird. Worin liegt also der Vorteil vom 129€ 
J-Link gegenüber dem 45€ ARM-OCD-Tiny? Bekannt: SWD und das Brand 
"Segger". Was noch?

von 900ss (900ss)


Lesenswert?

A. K. schrieb:
> Wenn man nun 129€ dafür springen lässt - wie geht es dann weiter? Denn
> damit hat man ja wohl nicht mehr in der Hand als ein Interface zwischen
> Gerät und PC. Kein Board, keinen Debugger, keinen Compiler.

Dann nehme ich Eclipse + Codesourcery Lite (oder sonst eine Toolchain) 
und damit kann ich dann alles machen. Wenn ich will kann ich auch noch 
das ARM-Plugin für Eclipse nutzen, dann braucht man keine Makefiles. 
Kostet alles nichts.

> Firmenvarianten ersetzt wird. Worin liegt also der Vorteil vom 129€
> J-Link gegenüber dem 45€ ARM-OCD-Tiny? Bekannt: SWD und das Brand
> "Segger". Was noch?

Alle JTAG-IF, die auf OpenOCD basieren sind meiner Meinung nach 
schlichtweg das Grauen, da die Konfiguration von OpenOCD zum K***** ist. 
Ich habe mir mal die Mühe gemacht und es lief auch leidlich. Aber ich 
war so genervt von dem Zeug, dass ich mir den J-Link gekauft habe. Damit 
war das ganze wesentlich einfacher, deutlich schneller und stabiler.

von (prx) A. K. (prx)


Lesenswert?

900ss D. schrieb:

> Dann nehme ich Eclipse + Codesourcery Lite (oder sonst eine Toolchain)

Yep, aber der Fragesteller sprach von "plug and play". Dazu  gehören 
Eclipse und Codesourcery nicht unbedingt.

> Alle JTAG-IF, die auf OpenOCD basieren sind meiner Meinung nach
> schlichtweg das Grauen, da die Konfiguration von OpenOCD zum K***** ist.

Ich war ebenfalls davon etwas genervt, nur mit anderer Konsequenz. 
Adapter und Compiler behalten, aber Debugger/Programmer gewechselt. 
Crossworks geht direkt an den FT2232, nicht über OpenOCD. Problem auch 
weg.

von 900ss (900ss)


Lesenswert?

A. K. schrieb:
> 900ss D. schrieb:
>
>> Dann nehme ich Eclipse + Codesourcery Lite (oder sonst eine Toolchain)
>
> Yep, aber der Fragesteller sprach von "plug and play".

Hab ich so nicht lesen können.

> Dazu  gehören
> Eclipse und Codesourcery nicht unbedingt.

Das stimmt allerdings.

>
>> Alle JTAG-IF, die auf OpenOCD basieren sind meiner Meinung nach
>> schlichtweg das Grauen, da die Konfiguration von OpenOCD zum K***** ist.
>
> Ich war ebenfalls davon etwas genervt, nur mit anderer Konsequenz.
> Adapter und Compiler behalten, aber Debugger/Programmer gewechselt.
> Crossworks geht direkt an den FT2232, nicht über OpenOCD. Problem auch
> weg.

Ich suchte mehr nach einer allgemeinen Lösung, ich wollte mich nicht an 
eine IDE fesseln. Ausserdem nutze ich auch sonst fast ausschliesslich 
Eclipse zum Entwickeln.
Mit dem J-Link bin ich ziemlich frei in der Auswahl meiner IDE. Der 
J-Link nagelt mich nicht fest. OT: Es gibt auch im Moment keinen 
besseren Editor zum kodieren als der von Eclipse. Die Unterstützung ist 
einfach unerreicht. Und das kostenlos!

von (prx) A. K. (prx)


Lesenswert?

900ss D. schrieb:

> Ich suchte mehr nach einer allgemeinen Lösung, ich wollte mich nicht an
> eine IDE fesseln.

Ich auch nicht. Für mich war massgeblich entscheidend, dass Crossworks 
ebenfalls GCC verwendet. Das macht es ziemlich leicht, sich in 
Programmierphasen, die einen klassischen Debugger nicht mehr erfordern, 
von Crossworks zu lösen. Und der Editor ist mir schnuppe, schreiben tu 
ich Programme aus alter Gewohnheit sowieso in Emacs.

von Dominik (Gast)


Lesenswert?

Hi!

Ich beschäftige mich seit ein paar Wochen mit den Cortex-M3.
Ich habe den JLink von Segger. Der funzt super, kann ich nur empfehlen.

Zu der IDE:
Es gibt von NXP für die LPC17xx-Baureihe die CMSIS Bibliothek mit 
Treibern für alle Komponenten. Dabei ist auch eine Anleitung zum 
Aufsetzen einer kompletten Umgebung mit Eclipse, GCC, GDB, Jlink.
Ich habe es noch nicht probiert, werde ich aber die Tage.

Auf der NXP Seite musst du etwas suchen, ich habe den Link nicht da.
Du findest die CMSIS Bibliothek mit dem Tutorial bei den 
Support-Dokumenten zu den LPC.

Ansonsten ist die 32K Version von IAR sehr zu empfehlen. Ich finde die 
IDE sehr gut.

Ciao
 Dominik

von P.F. (Gast)


Lesenswert?

"Apropos "Geld für was vernünftiges ausgeben": nix ist für die Ewigkeit,
grad nicht in dieser Branche. Ein Lötkolben mag etliche Jahrzehnte
halten, bei Debug-Interfaces wird den Leuten aber immer wieder was neues
einfallen, jetzt wo das standardisierte JTAG bereits kippt und durch
Firmenvarianten ersetzt wird."

Ähmmm... du weißt schon das es JTAG seit 1985 gibt und es auch noch die 
nächsten Jahre geben wird? Es gibt eben JTAG damit gerade nicht jeder 
Chip Hersteller sein eigenes Süppchen kocht. Wobei das jetzt natürlich 
auch nicht ganz richtig ist, da JTAG nur das Drumherum definiert, wie 
Debug Engine im Chip aussieht ist natürlich dem Chip Hersteller selber 
überlassen. Aber genau deswegen wird die J-Link Software ja dauernd 
weiter entwickelt, um alle neuen Chips mit zu unterstützen.

Lange Rede, kurzer Sinn: Gerade wenn du sagst das es in Zukunft weniger 
Chips mit JTAG und mehr mit SWD geben wird, dann wird ein J-Link immer 
noch funktionieren, ein ARM-OCD-Tiny nicht.


"Worin liegt also der Vorteil vom 129€
J-Link gegenüber dem 45€ ARM-OCD-Tiny? Bekannt: SWD und das Brand
"Segger". Was noch?"

Es gibt eine Menge Vorteile:
1. Deutlich schneller, gerade was das Debuggen im Flash angeht -> Flash 
Breakpoints.
2. Bessere Software Unterstützung (GDB Server, JFlash, ...)
3. Kompatibel mit allen Tool Chains
4. Sehr einfach zu bedienen


Aber es ist klar, mam muss sich immer fragen, was will ich machen, und 
wieviel mag ich ausgeben. Wenn ich wirklich nur ein bisschen mit ARM 
Controllern rumspielen wollen würde, dann würde ich auch einen 
ARM-OCD_Tiny nehmen.

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.