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?
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?
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.
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.
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.
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.
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 €)
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.
" 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 ;-).
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?
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.
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.
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!
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.
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
"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.