Forum: Mikrocontroller und Digitale Elektronik Welcher Programmer für ARM Cortex-M0?


von T. Baumbach (Gast)


Lesenswert?

Hallo,

bisher habe ich 'nur' Mikrocontroller wie Attiny, Atmega usw. 
programmiert.
Nun möchte ich in die Programmierung von ARM Cortex-M0 einsteigen und 
die Welt der IoT (Internet of Things) erkunden.
Kann mir jeman dafür einen Programmer empfehlen?
Da ich bisher mit Atmel Studio gearbeitet habe würde ich gerne dabei 
bleiben.
Von Atmel habe ich die Programmer 'Atmel ICE' und 'Atmel SAM-ICE' 
gesehen.
Ich blicke da aber nicht so recht durch, worin besteht bei beiden genau 
der Unterschied?

Danke für Eure Hilfe...

von (prx) A. K. (prx)


Lesenswert?

Cortex M0 ist der Core von ARM. Programmiert wird aber nicht der Core, 
sondern der Flash-Speicher, und der ist vom Hersteller des 
Mikrocontrollers.

Üblicherweise kann man auf zweierlei Art programmieren: Per 
vorinstalliertem Bootloader und per Debugger. Die Schnittstelle zum 
Debugger ist von ARM, der Bootloader (z.B. über UART) aber vom 
Hersteller des Controllers.

Beim Debugger sollte man drauf achten, dass die angedachte 
Entwicklungsumgebung den Controller und den Debugger auch unterstützt.

von T. Baumbach (Gast)


Lesenswert?

Hallo A. K.,

danke das wusste ich noch nicht, das hilft mir schonmal weiter.
Aber da ich ja in der Atmel-Familie bleibe, was die Prozessoren und die 
Entwicklungsumgebung und auch den Programmer angeht müsste es ja passen 
- oder?

Aber was nehme ich denn nun den 'Atmel ICE' und 'Atmel SAM-ICE'?
Mir sind die Unterschiede nicht klar...

von Seggerlover (Gast)


Lesenswert?

Kann nur den Segger JLink empfehlen. Feht für fast alle ARMe.

von Planlos (Gast)


Lesenswert?

http://www.atmel.com/products/microcontrollers/arm/sam-d.aspx?tab=tools

Der Sam-ice geht auch für die dickeren ARMs, der jtagice3 nur für die 
kleinen Cortex-M0(+), würde ich sagen.

von Axel S. (a-za-z0-9)


Lesenswert?

T. Baumbach schrieb:
> Aber da ich ja in der Atmel-Familie bleibe, was die Prozessoren und die
> Entwicklungsumgebung und auch den Programmer angeht müsste es ja passen

Wenn du in der Familie bleiben willst, dann würde ich dir zu einem der 
Xplained Evalboards [1] raten. Da ist der Programmer/Debugger schon 
drauf. Wenn du dann weißt daß du bei den Atmel SAM bleiben willst, 
kannst du immer noch das Geld für ein Atmel-ICE o.ä. in die Hand nehmen.

Aber vielleicht möchtest du ja auch mal über den Tellerrand schauen. ST 
macht auch schöne Cortex-M. Und die gibts in sehr vielen Varianten als 
Discovery Evalboard. Ebenfalls mit Programmer/Debugger (STLINK) onboard, 
wobei man bei den meisten Boards von ST den STLINK auch standalone 
betreiben kann. Von NXP gibt es ähnliches (LPCXpresso).

[1] z.B. das hier: http://www.atmel.com/tools/ATSAMD10-XMINI.aspx

von Bernd K. (prof7bit)


Lesenswert?

Segger J-Link

gibt nichts besseres.

Die ermäßigte EDU Version (50€) hat außer der Tatsache daß man Dir 
blind(!) vertraut daß Du sie nur zur persönlichen Weiterbildung oder zu 
Hobbyzwecken einsetzen wirst keinerlei Beschränkungen im 
Funktionsumfang.

Die Vorteile des J-Link gegenüber eines Atmel-only-Gerätes sind erstens 
daß Du es wirklich für nahezu jeden ARM-Controller unter diesem Himmel 
verwenden kannst und nicht nur für Atmel und zweitens daß für die 
jenseits von Atmel sehr beliebe Eclipse IDE ein Plugin existiert das 
speziell auf den J-Link zugeschnitten ist (und natürlich unterstützen 
auch fast alle anderen IDEs den J-Link weil er sowas wie der de-facto 
Industriestandard ist).

von X. A. (wilhem)


Lesenswert?

Ich kann dir diesen https://www.segger.com/jlink-debug-probes.html 
empfehlen.

Falls du es nicht für kommerzielle Entwicklungen verwendest, kostet das 
Gerät knapp 60 €.
Das Ding ist echt sehr leistungsfähig.

von GS (chromosoma)


Lesenswert?

Hm, wer erfährt denn, ob ich den Programmer kommerziell benutze oder 
nicht?
Oder hat das ehe was mit Gewissen zu tun?=)

: Bearbeitet durch User
von T. Baumbach (Gast)


Lesenswert?

Hallo,

danke, aber ich denke ich bleibe erstmal in der Atmel Familie.
Sich in die Programmierung von ARM Cortex einzuarbeiten und eine andere 
Entwicklungsumgebung ist zu viel auf einmal für mich.
Da ich meine Produkte auch verkaufe wäre die EDU-Version des Segger 
J-Link wohl nichts für mich. Der J-Link Base kostet aber gleich ca. 400 
EUR.
Der Atmel ICE kostet ca. 110 EUR, der Atmel SAM ICE kostet ca. 140 EUR.
Aber ich weiß hat immer noch nicht den Unterschied zwischen den 
beiden!?!

Die Info von Axel Schwenke finde ich auch sehr interssant, ich wollte 
mir das BTLC1000 Xplained Pro Starter Kit bestellen weil ich Bluetooth 
Funktionalität brauche.
(http://www.atmel.com/tools/atbtlc1000-xstk.aspx).

Axel Schwenke sagte da ist der Programmer/Debugger mit drin.
Ok, kann ich damit denn auch eigene SAM L21 programmieren, die also 
nicht fest auf dem Evaluierungsboard aufgelötet sind?
Irgendwann möchte ich ja eigene Schaltungen mit dem SAM L21 aufbauen. Da 
habe ich dann den SAM L21 auf meiner Platine. Kann ich den dann dann 
auch mit Hilfe des Evaluierungsboards programmieren oer brauche ich da 
dann einen Programmer?

von Dirk (Gast)


Lesenswert?

Böser K. schrieb:
> Oder hat das ehe was mit Gewissen zu tun?=)

Nein, aber im Kleingedruckten steht, dass dir im Falle des Missbrauchs 
ein gewisses Körperteil abfällt. :-P

Im Ernst, Segger J-Link ist auch meine erste Wahl. Der kleine Preis für 
die EDU-Version schützt Segger ganz einfach vor China-Klonen. Die 
Chinesen kriegen dass für die Qualität auch nicht billiger hin.

von ./. (Gast)


Lesenswert?

IBei:
Einen ST-Link-Clone gibt es fuer wenige (ca. 3) Euronen.

Einen J-Link-Clone fuer einige Euro mehr.

Die passenden M0 von ST (STM32F030F4P6) im Zehnerpack ebenfalls
wenige Eu. Bei der letzten Lieferung warens noch 7.

Ein passendes Nucleoboard (NUCLEO-F030R8) von ST, das einen ST-Link fuer 
STM-32 enthaelt fuer etwas mehr als 10 Euro.

Ich wuesste im Moment nicht warum ich an Ateml mein Geld
in den Rachen werfen sollte. Zumal ich die Debugadapter fuer
schlecht designt halte.

Und ihr Visual-Studio-Anhaengsel aka Studio koennen sie im
Mondschein wo hin stecken.

von W.S. (Gast)


Lesenswert?

T. Baumbach schrieb:
> bisher habe ich 'nur' Mikrocontroller wie Attiny, Atmega usw.
> programmiert.
> Nun möchte ich in die Programmierung von ARM Cortex-M0 einsteigen und
> die Welt der IoT (Internet of Things) erkunden.
> Kann mir jeman dafür einen Programmer empfehlen?
> Da ich bisher mit Atmel Studio gearbeitet habe würde ich gerne dabei
> bleiben.

Da sind erstmal eine Menge an Fragen offen.

1. kannst du NUR mittels irgend einer IDE zu Potte kommen oder ist dir 
der direkte Umgang mit den eigentlichen Tools (Compiler, Assembler, 
Linker, Fromelf) geläufig?

2. kannst du fehlerfreie Programme schreiben oder bist du auf das 
Durchsteppen per Debugger angewiesen?

3. wie hast du bisher deine Programme aufgebaut, eher modular und mit 
sowas wie einem eingebauten ansatzweisen Mini-Monitor per UART oder 
einfach nur genau das, was grad gebraucht wird?

4. hast du schon mal Manuals zu Cortexen verschiedener Hersteller 
angeschaut oder bist du eher strikt auf Atmel orientiert?

5. ist all dein Bemühen rein privater bastlerischer Natur oder gibt es 
berufliche Aspekte?


Also, du fragst nach einem Programmer. Gut. Da gibt es prinzipiell 2 
Wege: a) den Weg über SWD und b) den Weg über eingebauten Bootlader. 
JTAG ist bei Cortexen weitestgehend außen vor, da durch SWD abgelöst.

Für alles nach a) brauchst du einen SWD fähigen JTAG-Adapter und da ist 
der J-Link von Segger quasi der Klassenprimus. Wenn überhaupt, dann 
orientiere dich an diesem. Falls Berufliches hier dabei ist, dann plane 
den tiefen Griff in die Firmenkasse, denn der originale J-Link ist 
TEUER.

Bei rein privatem Vergnügen solltest du dir einen J-Link-Edu leisten. 
Der ist bezahlbar, hat dafür aber ein paar Lizenzen weniger eingebaut 
als die Vollversion. jaja, Lizenzen sind bei Segger im Adapter 
eingetragen.

Natürlich bekommt man per Ebay etc. auch J-Link Nachbauten aus China für 
billiges Geld. Ich gebe da keinen Rat, außer daß es für bastlerische 
Zwecke sinnlos ist, einen Voll-J-Link-Nachbau zu kaufen, denn der ganze 
JTAG-Teil wird für Cortexe eigentlich nicht gebraucht. Da wäre es aus 
meiner Sicht eher verständlich, sich als ganz armer Schüler einen 
"Onboard"-Spezial-J-Link-Nachbau für 7..8 € dort zu ordern. Die können 
kein JTAG sondern nur SWD, sie haben auch keine Pegelwandler, können 
also nur 3.3V, sind aber ansonsten mit allen Programmen benutzbar, die 
den J-Link benutzen können.

Alles andere hat nämlich so seine Haken:

- der ULink und ULink-2 von Keil ist erstmal NUR!! mittels der IDE von 
Keil benutzbar. Es gibt von Keil keinerlei Standalone 
Programmier-Software. Für den ULink-2 gibt es zwar mittlerweile eine 
alternative Firmware, so daß er damit auch vom Brenn-Programm von Coocox 
benutzbar zu sein scheint (hab's nicht selber ausprobiert), aber das ist 
eine recht dünne Decke, denn Coocox ist typmäßig immer noch recht 
eingeschränkt.

- alle Spezial-Programmer ST-Link, Nu-Link, und so weiter sind von hause 
aus eingeschränkt auf die Produktpalette ihrer jeweiligen Hersteller. 
Damit schränkt man sich künstlich ein.

- das obige gilt allgemein auch für fast alle Programmier-Zusätze, die 
sich auf Eval-Boards befinden. In einigen selteneren Fällen hat man dort 
eine Spezialversion des Segger'schen J-Link drauf. Das ist erstmal gut, 
denn damit kann man die zugehörige Software von Segger benutzen - und 
die ist zehnmal besser als alles andere... und: mit dem Eval-Board kann 
man das auch ganz offiziell.

Tja.
Mit der anderen Herangehensweise per Bootlader sieht das alles ganz 
anders aus. Die Chips von NXP und ST haben eigentlich alle einen fest 
eingebauten Bootlader. (kennt jemand Ausnahmen?) Diese Bootlader sind 
z.T. sehr unterschiedlich, manche arbeiten nur per UART, brauchen also 
am PC eine serielle Schnittstelle oder einen billigen 
USB/Seriell-Adapter, andere sind da besser bis hin zu Bootladern vial 
USB. Dort meldet sich der Bootlader als Speicherstick an, wo man seine 
Firmware nur noch draufzukopieren braucht, eben genau so, als wenn man 
sie auf einen Speicherstick kopiert. Außer einem USB-Anschluß auf der 
eigenen Leiterplatte braucht es da garnichts an Equipment!

Für die Chips von NXP gibt es die "FlashMagic" Software - und die ist 
frei benutzbar, ohne Lizenzgehampel. Bei ST gab es früher den "Erfos", 
wie das derzeit aussieht mußt du mal sehen.

Kurzum, zum Loslegen ist die Wahl des geeigneten Chips das erste, was 
man tun sollte, dann sehe ich als nächstes das Benutzen des Bootladers 
und dann erst den Gedanken an SWD-Adapter nebst ggf. Lizenzbedenken.

W.S.

von Simon (Gast)


Lesenswert?

Also auch ich kann nur Segger empfehlen. Das Geld ist es definitiv wert. 
Wenn du es verkaufst, dann sollten die paar Euros auch kein Problem 
sein.

Was ich empfehlen kann, ist ein Nucleo von STM. Da hast du den debugger 
+ Cortex drauf. Ich habe mit Freescale, Atmel, STM und NXP Controllern 
gearbeitet und STM mit Cube ist zwar nicht Perfekt (sind noch Bugs in 
z.B. USB-Stack) aber es erleichtert das Arbeiten sehr.

Die Cortex con Atmel hat auch nicht wirklich was mit den AtMegas zu tun.

von Axel S. (a-za-z0-9)


Lesenswert?

T. Baumbach schrieb:
> danke, aber ich denke ich bleibe erstmal in der Atmel Familie.

Du magst dafür Gründe haben. Es gibt aber auch gute Gründe, sich mal 
woanders umzuschauen. Andere Mütter haben auch schöne Töchter.

> Sich in die Programmierung von ARM Cortex einzuarbeiten und eine andere
> Entwicklungsumgebung ist zu viel auf einmal für mich.

Ach geh. Die Entwicklungsumgebungen sind doch eh alle gleich. Und IMHO 
auch vollkommen überbewertet. Gute Kommandozeilen-Werkzeuge wie es sie 
für Segger und STLINK gibt (und zwar auch für die Welt jenseits von 
Windows) sind mir wesentlich wichtiger als eine Windows-only IDE.

> Da ich meine Produkte auch verkaufe wäre die EDU-Version des Segger
> Die Info von Axel Schwenke finde ich auch sehr interssant, ich wollte
> mir das BTLC1000 Xplained Pro Starter Kit bestellen weil ich Bluetooth
> Funktionalität brauche.
> (http://www.atmel.com/tools/atbtlc1000-xstk.aspx).

Nun, dieses Board ist erstmal nur ein Add-On für ein Xplained Basis- 
board. Ganz grob vergleichbar mit einem Arduino-Shield.

> Axel Schwenke sagte da ist der Programmer/Debugger mit drin.
> Ok, kann ich damit denn auch eigene SAM L21 programmieren, die also
> nicht fest auf dem Evaluierungsboard aufgelötet sind?

Da auf diesem Board kein Programmer ist, offensichtlich nicht. Und auf 
dem SAM D10 Xplained Mini ist es anscheinend nicht vorgesehen, die 
Verbindung zwischen dem Programmer und dem Target zu unterbrechen und 
ein externes Target dranzustecken. Bei anderen Xplained-Boards mag das 
anders aussehen. Lies halt mal die Doku.

von Bernd K. (prof7bit)


Lesenswert?

Böser K. schrieb:
> Oder hat das ehe was mit Gewissen zu tun?=)

Ja. Es wird nicht geprüft und Du musst auch keine Erklärung abgeben. Du 
bist nur Deinem Gewissen gegenüber verantwortlich und nachdem Du nach 
einiger Zeit das Gerät und die zugehörige Software zu schätzen gelernt 
hast wirst Du in den Spiegel schauen und sagen: "Ja. Die 50€ hab ich 
denen gegeben die es verdient haben, ich habe keinen billigen Klon aus 
China gekauft und wenn ich irgendwann so weit bin das kommerziell 
einzusetzen dann werde ohne zu zögern  die Pro-Version bestellen denn 
das Gerät und die Software und das Know-How das die da reingesteckt 
haben sind jeden Cent ihres Preises wert und noch viel mehr."

von T. Baumbach (Gast)


Lesenswert?

Hallo,

danke an alle, auch an W.S. mit seiner ausführlichen Antwort.
Ich möchte nicht unhöflich sein, bin für jede Antwort hier dankbar.
Aber dieser Thread zeigt mal wieder, dass hier eher um Dinge geht wie 
'diese IDE ist besser als jene' oder 'dieser Programmer ist besser als 
jener' als um meine eigentliche Frage.
Ich programmiere bereits sehr lange im Bereich der Mikroprozessoren.
Nicht nur Atmel's Attiny, Atmega usw. sondern auch andere. Habe früher 
auch die 6502, 68000er, 8086er usw. programmiert vorwiegend in Assembler 
ohne komfortable IDEs.
Und ich programmiere modular, so dass ich Code wiederverwenden kann wenn 
irgend möglich. Ausgaben über LCD oder auch die modernen SHARP Memory 
Displays über SPI sind kein Problem.
Was ist denn so falsch, wenn man eine IDE und einen MCU Hersteller gut 
kennt dabei zu bleiben?
Sicher kann man sich viele IDEs, Tools vier Hersteller von ARM 
Prozessoren anschauen, aber warum? Will man alle IDEs und alle MCUs 
verschiedener Hersteller testen und vergleichen, dann ist man ewig dran 
- wofür?
Meine Aufgabe ist es Hardware und Software zu entwicklen (auch 
kommerziell) und nicht alle IDEs und alle MCUs miteinander zu 
vergleichen.
Bisher habe ich mit den MCUs von Atmel gute Erfahrungen gemacht, auch 
das Atmel Studio ist OK. Es ist kostenlos und hat keinerlei 
Beschränkungen hinsichtlich Code Größe.
Atmel Produkte und die IDE mögen auch ihre Schwächen haben, aber das 
haben andere doch auch. Wichtig ist doch, dass man die Idee, die man im 
Kopf hat umzusetzen. Dabei ist es egal ob man ein Kommandozeilen-Tool 
oder ein Windows-basiertes Tool nimmt. Das Ergebnis zählt - nicht die 
IDE oder die Tools.

Bisher hat mir leider keiner helfen können in meiner ursprücngliche 
Frage:

Worin besteht denn bitte genau der Unterschied zwischen 'Atmel ICE' und 
'Atmel SAM-ICE'

Vielleicht kann mir jemand helfen?

Danke...

von Planlos (Gast)


Lesenswert?

T. Baumbach schrieb:
> Worin besteht denn bitte genau der Unterschied zwischen 'Atmel ICE' und
> 'Atmel SAM-ICE'

Planlos schrieb:
> Der Sam-ice geht auch für die dickeren ARMs, der jtagice3 nur für die
> kleinen Cortex-M0(+), würde ich sagen.

T. Baumbach schrieb:
> Bisher hat mir leider keiner helfen können in meiner ursprücngliche
> Frage:

Du musst die Antworten schon lesen.

von W.S. (Gast)


Lesenswert?

T. Baumbach schrieb:
> Was ist denn so falsch, wenn man eine IDE und einen MCU Hersteller gut
> kennt dabei zu bleiben?

Du hast den tieferen Grund meiner Fragen nicht verstanden. Also, im 
Klartext:

Manches Programmier-Geschirre ist so richtig NUR mit der dazu passenden 
IDE benutzbar, der ULink zum Beispiel. Ob es einem paßt oder nicht, man 
muß bei sowas eben die IDE nehmen, "friß Vogel oder stirb". Mir ist 
sowas unangenehm, dir vermutlich irgendwann auch.

Manches Programmier-Geschirre ist auf ganz bestimmte Produkte 
eingeschränkt. Dafür ist es aber auch kommerziell guten Gewissens 
einsetzbar. Wenn man damit leben kann und will, geht's ja irgendwie, 
aber fast immer wird man dabei wiederum auf irgendeine IDE gedrängelt.

Manches Programmier-Geschirre hat all diese Einschränkungen nicht, ist 
dafür aber TEUER.

Wenn du dich unwohl fühlst, gleich am Anfang teuer Geld auszugeben, dann 
wäre die Bootlader-Version die bessere für dich, weil grundsätzlich 
deutlich billiger und ohne Lizenzprobleme. Aber dafür mußt du ein eher 
erfahrener Entwickler sein, kein Programmier-Baby der ohne Debugger 
keinen Fuß auf den Teppich bekommt.

Ebenso solltest du dich zuvor mal in die Produkte unterschiedlichster 
Hersteller eingelesen haben UND auch bei den üblichen Distries mal 
nachgesehen haben, was die so anbieten und zu welchen Konditionen, um 
einen Überblick zubekommen, was denn für deine Vorhaben in Frage kommt.

T. Baumbach schrieb:
> Nun möchte ich in die Programmierung von ARM Cortex-M0 einsteigen und
> die Welt der IoT (Internet of Things) erkunden.
Ja, eben. Es gibt nicht nur den M0 auf der Welt, es gibt auch andere und 
die Wahl, welcher wofür am ehesten sinnvoll erscheint, müßtest DU für 
dich treffen. Aber dazu braucht es zuvorige Kenntnisnahme.

So gibt es ne Menge unterschedlichster Randbedingungen und Fragen, die 
du dir in einer stillen Stunde mal selbst stellen solltest um daraus 
deine Zielrichtung zu präzisieren. Hier will dir keiner etwas 
aufdrängeln, aber die Ratschläge, dich lieber umzusehen, bevor du "Atmel 
über alles" rufst, solltest du ernst nehmen.

W.S.

von Rudolph R. (rudolph)


Lesenswert?

T. Baumbach schrieb:
> Worin besteht denn bitte genau der Unterschied zwischen 'Atmel ICE' und
> 'Atmel SAM-ICE'

Der Atmel-ICE ist das aktuellste Tool und kann AVR und ARM.
Der Atmel SAM-ICE ist einige Jahre älter.

Ich bevorzuge auch, beim Atmel-Studio zu bleiben, einfach weil ich kein 
Problem damit habe, es nicht eingeschränkt ist und kostenlos.

Früher habe ich auch mal Makefiles geschrieben und den GCC von der 
Kommandozeile aus aufgerufen, in den 90er Jahren des letzten 
Jahrhunderts war das halt noch so...

Mich stört auch dabei nicht, dass ich die Hype-Controller STM32 nicht 
damit programmieren kann, da ich diese beruflich eh nicht gebrauchen 
kann, weil es die nicht als Automotive-Version gibt.

Ein aktuelles XPlained hat auch den Debugger drauf der im Atmel-ICE 
steckt,
ich bin aber auch gerade nicht sicher, ob das überhaupt vorgesehen ist, 
den für andere Target-Boards zu benutzen.

Macht aber auch nicht wirklich was, die kleinen XPlained kosten doch 
nicht viel, anfangen kann man damit allemal.

Wenn Atmel ICE, dann kann ich die Basic Version empfehlen.
2407172 bei Farnell.

von Olaf (Gast)


Lesenswert?

> Die ermäßigte EDU Version (50€) hat außer der Tatsache daß man Dir
> blind(!) vertraut daß Du sie nur zur persönlichen Weiterbildung oder zu
> Hobbyzwecken einsetzen wirst keinerlei Beschränkungen im
> Funktionsumfang.

Das stimmt nicht ganz. Mit der EDU-Version geht das flashen von 
Hex-Files nicht. Deshalb kann man ihn professionel nicht verwenden. 
(keine j-flash Unterstuetzung)

Davon mal abgesehen ist es aber ein professionelles Tool. Soll heissen 
funktioniert sehr zuverlaessig, schnell und stabil. Das kann nicht jeder 
Debugger von sich behaupten.
Etwas nervig ist vielleicht das man sich als erstes einen Adapter 
basteln muss da wohl kaum einer die 20polige-Arm-Buchse auf sein Board 
packen will weil die alleine schon fast so gross ist wie die meisten 
Boards. :-)

Olaf

von T. Baumbach (Gast)


Lesenswert?

Hallo Rudolf R.,

danke das hilft mir sehr weiter! Ich denke dann bestell ich mir mal den 
Atmel-ICE.

@W.S: Wo bitte habe ich "Atmel über alles" gerufen?
Ich habe nur gesagt, dass ich Atmel-Produkte über Jahre kenne und gut 
damit zurecht komme. D.h. aber (uns so habe ich es auch geschrieben), 
dass es durchaus andere Hersteller gibt, deren IDE und/oder 
Entwicklungsboards in Teilen besser aber auch schlechter sein können.

Danke nochmal an alle...

von Frank K. (fchk)


Lesenswert?

T. Baumbach schrieb:

> Was ist denn so falsch, wenn man eine IDE und einen MCU Hersteller gut
> kennt dabei zu bleiben?

Weil man so oft nicht die optimale Lösung hinbekommt. Auch andere Mütter 
haben schöne Töchter. Wenn ich sehe, wie viele Leute hier CAN-Knoten mit 
Mega8 plus MCP2515 zusammenschrauben, wo ein PIC18F25K80 die platzmäßig 
kleinere und bauteilemäßig günstigere Lösung gewesen wäre... Oder 
Stichpunkt USB und dieses unsägliche VUSB: Es gibt Berichte von Leuten, 
die das bereut haben und auf einen PIC16F1454 (die günstigste 
Möglichkeit, ein Hardware USB Device zu realisieren) gegangen sind, und 
zwar ohne Mehrkosten...

Zu den größeren AVRs: sie sind für das, was Du an Rechenleistung 
bekommst, einfach zu teuer. Für den Preis eines Mega 128 bekommst Du 
auch schon einen Cortex M3 von NXP, STM und anderen.

Auch DAS gehört zu den Aufgaben eines Entwicklers.

fchk

von Rudolph R. (rudolph)


Lesenswert?

Frank K. schrieb:
> Weil man so oft nicht die optimale Lösung hinbekommt.

Naja, von einem Mega8 auf einen PIC zu wechseln ist dann eher nicht die 
optimale Lösung an sich, weil man dann eher keine PICs kennt.
Von einem PIC auf einen AVR zu wechseln weil der AVR für eine Anwendung 
besser geeignet erscheint, wäre ebenso unsinnig.

Frank K. schrieb:
> Zu den größeren AVRs: sie sind für das, was Du an Rechenleistung
> bekommst, einfach zu teuer. Für den Preis eines Mega 128 bekommst Du
> auch schon einen Cortex M3 von NXP, STM und anderen.

An Material-Wert stimmt das.
Wenn man aber nur kleinste Stückzahlen hat, dann kostet einen die 
Einarbeitung in eine völlig neue Familie so viel, dass man sich locker 
zurück lehnen kann und darauf warten kann, dass man die Rechenpower 
wirklich mal für ein Projekt benötigt.

Das juckt mich überhaupt nicht ob meine Controller sechs Euro das Stück 
kosten und was die Teile drum herum so kosten wenn ich zwei Geräte 
ausliefern soll mit vielleicht 30 Euro BOM.
Der Kunde zahlt die 120 Stunden dazu und freut sich über das Ergebnis, 
200+ Stunden um sich zusätzlich noch in eine neue Architektur 
einzuarbeiten sind dann eher nicht drin.
Falls das mal reicht wenn man sich zusätzlich noch mit einer neuen 
Toolkette rumärgern muss.

Und mit Rechenpower hatte ich bei den AVR noch gar keine Probleme.
Im Gegenteil habe ich Bedenken wenn ich mir ansehe, was beim Pin-wackeln 
mit einem 48 MHz Cortex M0 so raus kommt.

Alles eine Frage der Anwendung.

Bei 100k Geräten im Monat hat man sicher ganz andere Probleme - aber als 
erstes bekommt man dann auch schon ganz andere Preise für seine 
Bauteile.

von (prx) A. K. (prx)


Lesenswert?

Rudolph R. schrieb:
> Im Gegenteil habe ich Bedenken wenn ich mir ansehe, was beim Pin-wackeln
> mit einem 48 MHz Cortex M0 so raus kommt.

Das hängt nicht vom Core ab, sondern vom Chip drum herum. Mancher 
Hersteller bindet die GPIO über langsame Sekundärbusse an, andere direkt 
am Primärbus. Letzteres geht dann recht flott.

von Bernd K. (prof7bit)


Lesenswert?

Olaf schrieb:
> Mit der EDU-Version geht das flashen von
> Hex-Files nicht. Deshalb kann man ihn professionel nicht verwenden.

Das ist nicht wahr. Du kannst im J-Link commander den Befehl loadbin 
verwenden um ein beliebiges Speicherabbild an eine beliebige Adresse zu 
flashen (und anschließend verifizieren), auch mit gleichzeitigem Setzen 
der Security-bits. Das kann man auch schön in ein Batchfile einbauen.

Du kannst auch die mitgelieferte dll verwenden und die in Dein eigenes 
Produktions-Automations-Steuerungsprogramm einbinden und von dort die 
Funktion zum Flashen direkt aufrufen wenn Dein Produktions-Roboter die 
Platine kontaktiert hat. Geht auch.

Allerdings wenn Du sowas gebaut hast dann hast Du auch die Kohle für 
eine j-Flash Lizenz.

Zum mal eben 5 Platinen von Hand Flashen hab ich ne 3-zeilige 
Batch-Datei mit Endlosschleife: Tag-Connect draufhalten, Leertaste 
drücken, 1 Sekunde warten, nächster. Geht mit dem EDU.

: Bearbeitet durch User
von Bernd K. (prof7bit)


Lesenswert?

Rudolph R. schrieb:
> 200+ Stunden um sich zusätzlich noch in eine neue Architektur
> einzuarbeiten sind dann eher nicht drin.

Das macht man nebenher, zuhause im Hobbykeller, aus persönlicher 
Begeisterung und Interesse für die Technik. Die hast Du doch, oder?

von Rudolph R. (rudolph)


Lesenswert?

Bernd K. schrieb:
>> 200+ Stunden um sich zusätzlich noch in eine neue Architektur
>> einzuarbeiten sind dann eher nicht drin.
>
> Das macht man nebenher, zuhause im Hobbykeller, aus persönlicher
> Begeisterung und Interesse für die Technik. Die hast Du doch, oder?

Ja, na klar, ich würde sonst nicht machen was ich mache. :-)

Nur, ohne Grund ist das witzlos und bisher fehlt mir auch die 
Controller-Familie auf die ich umsteigen könnte und wollen würde.

Ein SAMC21 XPlained habe ich mir schon besorgt, die sind zwar nicht 
Automotive, dafür mit CAN-FD (1.0) und die könnten einen Übergang zu den 
SAMV70 einleiten.

Nur, muss ich das unbedingt haben? Nein.

Meine aktuellen Projekte laufen mit ATMega324PA und ATMega16M1.
Dazu mal 90CAN32, Mega88PA und Mega164PA.

So richtig ausgelastet sind die aber nicht.

Nice-to-have wäre da mal sowas wie ein MPC5602 oder ein RH850 im 64 Pin 
Gehäuse mit 0,5 mm Pitch und zwei CANs.
Oder in nicht mehr allzu ferner Zukunft eben ein SAMV70.
AVR32 wäre auch nett gewesen, aber sieht einfach zu tot aus.

Also umsehen ja, aber nicht um jeden Preis.

von W.S. (Gast)


Lesenswert?

Bernd K. schrieb:
> Olaf schrieb:
>> Mit der EDU-Version geht das flashen von
>> Hex-Files nicht. Deshalb kann man ihn professionel nicht verwenden.
>
> Das ist nicht wahr. Du kannst im J-Link commander den Befehl loadbin
> verwenden um ein beliebiges Speicherabbild an eine beliebige Adresse zu
> flashen (und anschließend verifizieren), auch mit gleichzeitigem Setzen
> der Security-bits. Das kann man auch schön in ein Batchfile einbauen.

Warum widersprichst du eigentlich? Ich habe selber einen EDU und ich 
weiß definitiv, daß damit das Standalone-Flashen NICHT geht mangels 
Lizenz. Natürlich kann ich aus ner IDE das Debuggen starten und zu 
diesem Zweck geht auch das Flashen, aber das ist ne andere Kiste - 
solltest du verstehen.

Allerdings ist es bei Leuten, die ohnehin die Vollversion haben, egal, 
was für Lizenzen im Adapter gespeichert sind, denn diese Leute haben die 
Lizenzen auch auf ihrem PC und ab da geht natürlich alles. Kostet bloß 
mehr, als man als privater Bastler auszugeben geneigt ist. Genau deshalb 
erwähne ich ja immer wieder die Bootlader, wo man als Bastler frei von 
Problemen dieser Art ist.

W.S.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

T. Baumbach schrieb:
> Aber ich weiß hat immer noch nicht den Unterschied zwischen den
> beiden!?!

Der SAM-ICE ist weiter nichts als eine auf Atmel-ARMs limitierte
Version des Segger J-Link.

Das Atmel-ICE dagegen ist der Nachfolger des JTAGICE3.  Für dich als
Atmel-Anwender wäre dabei ggf. ein Vorteil, dass du es für ARMs (von
Atmel) und AVRs gleichermaßen benutzen kannst.

Ansonsten, siehe Axel Schwenkes Rat: um nur mal den Einstieg zu
bekommen, kannst du eins der Xplained-Pro-Boards benutzen, die den
Debugger gleich on-board haben.  Der nennt sich bei Atmel EDBG und
ist eine eingebaute Miniversion des Atmel-ICE (benutzen beide den
gleichen AVR32 UC3).

Weil oben die Eclipse-Einbindung des Segger J-Link (bzw. SAM-ICE)
genannt worden ist: es würde mich wundern, wenn diese über irgendetwas
anderes als OpenOCD erfolgt.  Wenn dem aber so ist, dann sollten auch
EDBG oder Atmel-ICE genauso einbindbar sein, denn auch sie werden von
OpenOCD unterstützt.

: Bearbeitet durch Moderator
von Bernd K. (prof7bit)


Lesenswert?

W.S. schrieb:
> Warum widersprichst du eigentlich?

Weils nicht wahr ist was Du sagst.

> Ich habe selber einen EDU und ich
> weiß definitiv, daß damit das Standalone-Flashen NICHT geht

Ich habe auch zwei (ein V8 und ein V9) und es geht mit beiden. Und zwar 
indem ich dazu den J-Link-Commander verwende (jlink.exe) mit den Befehl

  loadbin <speicharabbild.bin> <startadresse>

Das kann man auch schön ins Makefile packen (make install), oder in ne 
separate Batchdatei.

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


Lesenswert?

Jörg W. schrieb:
> Weil oben die Eclipse-Einbindung des Segger J-Link (bzw. SAM-ICE)
> genannt worden ist: es würde mich wundern, wenn diese über irgendetwas
> anderes als OpenOCD erfolgt.  Wenn dem aber so ist, dann sollten auch
> EDBG oder Atmel-ICE genauso einbindbar sein, denn auch sie werden von
> OpenOCD unterstützt.

Ich nutze immer den Segger GDB Server mit dem J-Link, kein OpenOCD und 
das klappt sehr gut (Eclipse).

von Bernd K. (prof7bit)



Lesenswert?

Jörg W. schrieb:
> Weil oben die Eclipse-Einbindung des Segger J-Link (bzw. SAM-ICE)
> genannt worden ist: es würde mich wundern, wenn diese über irgendetwas
> anderes als OpenOCD erfolgt.

Falsch geraten (siehe Bild)

Dieses Plugin (Teil von GNUARM Eclipse) ist speziell für den J-Link.

von 6a66 (Gast)


Lesenswert?

Olaf schrieb:
> Das stimmt nicht ganz. Mit der EDU-Version geht das flashen von
> Hex-Files nicht. Deshalb kann man ihn professionel nicht verwenden.
> (keine j-flash Unterstuetzung)

Das wiederum stimmt auch nicht ganz.
Flashen geht, brauchts Du nur hex2bin und schon kannst Du Bin Flashen.
Und das geht mit jlink problemlos.

rgds

von Simon (Gast)


Lesenswert?

Bernd K. schrieb:
> W.S. schrieb:
>> Warum widersprichst du eigentlich?
>
> Weils nicht wahr ist was Du sagst.
>
>> Ich habe selber einen EDU und ich
>> weiß definitiv, daß damit das Standalone-Flashen NICHT geht
>
> Ich habe auch zwei (ein V8 und ein V9) und es geht mit beiden. Und zwar
> indem ich dazu den J-Link-Commander verwende (jlink.exe) mit den Befehl
>
>   loadbin <speicharabbild.bin> <startadresse>
>
> Das kann man auch schön ins Makefile packen (make install), oder in ne
> separate Batchdatei.

Soviel ich mitbekommen habe, kann die EDU eine .bin (1:1 Speicherabbild) 
auf den internen Speicher via Jtag/SWD flashen.

  z.B. arm-objcopy macht aus einer .hex eine .bin.

Mit JFlash kann man zusätzlich noch externe Flash-Bausteine 
programmieren.

Kann gut sein, dass ich falsch liege, bzw. dass es noch mehr 
Unterschiede gibt. Letztendlich reicht mir der loadbin-Befehl. Die IDEs 
greifen da z.T. per gdb drauf zu.

von Bernd K. (prof7bit)


Lesenswert?

6a66 schrieb:
> brauchts Du nur hex2bin

Kannst auch direkt beim Build mit objcopy gleich ein .bin aus dem .elf 
erzeugen lassen, und das wiederum ist wahrscheinlich eh in den meisten 
Beispiel-Makefiles die man so findet schon eingebaut. Oder falls man mit 
Makefiles auf Kriegsfuß steht einfach in der IDE in den 
Toolchain-Settings .bin als Ausgabeformat wählen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Bernd K. schrieb:
> Dieses Plugin (Teil von GNUARM Eclipse) ist speziell für den J-Link.

OK, aber über den GDB-Server von Segger.  Damit sollte man das auch
auf ein OpenOCD anpassen können – würde mich andererseits wundern,
wenn es das nicht auch schon gäbe.

Vorteil von OpenOCD ist, dass man mit der gleichen Software eine
riesige Palette von JTAG- (und SWD-)Adaptern auf einen Schlag
bedienen kann, statt jedem Tierchen sein Plässierchen geben zu
müssen.  Das reicht von „dummen“ Bitbangern (bspw. auf Basis eines
FT2232) bis hin zu Atmel-ICE oder Segger J-Link.  (Allerdings, wenn
mich nicht alles täuscht, können die FT2232-basierten Teile bislang
nur JTAG, kein SWD.)

von Bernd K. (prof7bit)


Lesenswert?

Jörg W. schrieb:
> OK, aber über den GDB-Server von Segger.  Damit sollte man das auch
> auf ein OpenOCD anpassen können – würde mich andererseits wundern,
> wenn es das nicht auch schon gäbe.

oocd hat glaub ich die Möglichkeit einen J-Link zu bedienen aber ich hab 
das als ichs mal probieren wollte partout nicht hinbekommen (war 
allerdings damals kein echter J-Link sondern ein J-Link-lite auf nem 
Demo-Board).

Jedoch da zum Glück der JLinkGDBServer (und auch alle anderen J-Link 
tools) auch für Linux-x86 verfügbar sind und Eclipse das so vorbildlich 
und vollständig integriert daß man echt nur noch auf "neu" und "OK" 
klicken muss und die Konfiguration steht und funktioniert ist das ne 
feine Sache und ich bin glücklich damit. Obwohl ich normalerweise 
Open-Source immer vor gleichwertigem Closed-Source den Vorzug gebe muss 
ich in diesem Falle uneingeschränkt zugestehen daß das Zeugs von Segger 
eine wirklich feine runde Sache ist und Spaß macht.

oocd verwende ich um damit mit meinem STM32-Nucleo Board zu sprechen. 
Geht auch einwandfrei, ebenfalls unter Linux und ebenfalls ohne 
Verrenkungen out-of-the-box.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Bernd K. schrieb:
> oocd hat glaub ich die Möglichkeit einen J-Link zu bedienen

Ja, funktioniert genauso klaglos wie mit dem Atmel-ICE (oder dem
EDBG der Xplained Pro).  FT2232-Adapter habe ich auch schon mal
damit getestet, da muss man ein wenig mehr konfigurieren, ging aber
auch.

Als ich das letzte Mal die Segger-Tools in der Hand hatte (in
Verbindung einem SAM-ICE), funktionierte der ganze Salat überhaupt
nicht.  OK, nicht auf Windows sondern Linux, aber ich wollte den
Herstellertools damals schon den Vorrang geben (war auf einem
Lehrgang), hab dann entnervt aufgegeben und mich lieber in die
Konfiguration von OpenOCD reingefummelt.  Das klappte dann wenigstens.

Ist ein paar Jahre her, aber seither habe ich die Segger-Software
selbst nie wieder angeguckt. ;-)

von micro (Gast)


Lesenswert?

Bei den Discovery Board ist schon ein Programme drauf, mit dem kann man 
auch andere STM32 programmieren. Die Bord gibt es ab 10 EUR.
Dann gibt es auch noch den ST-Link Programmer für etwa 22 EUR.

Ein ARM von einem Herstellers genau zu kennen/anzuwenden ist nicht 
leicht so dass man nicht immer wechseln will, damit bleibt man dann 
meist bei einem Hersteller.

Welchen Vorteil bringt denn der Seger JLink gegenüber einen STLink wenn 
man beim STM32 bleiben will?

von dasrotemopped (Gast)


Lesenswert?

>Welchen Vorteil bringt denn der Seger JLink gegenüber einen STLink wenn
>man beim STM32 bleiben will?

der Segger ist beim Flashen und SWO deutlich schneller.
Laut Tests ist der ST-Link der langsamste von allen ARM Cortex-M 
Programmern, aber als Nucleo Board auch der günstigste ohne gleich
zum Frickel zu werden.

Gruß,

dasrotemopped.

von W.S. (Gast)


Lesenswert?

Bernd K. schrieb:
> W.S. schrieb:
>> Warum widersprichst du eigentlich?
>
> Weils nicht wahr ist was Du sagst.
>
>> Ich habe selber einen EDU und ich
>> weiß definitiv, daß damit das Standalone-Flashen NICHT geht
>
> Ich habe auch zwei (ein V8 und ein V9) und es geht mit beiden. Und zwar
> indem ich dazu den J-Link-Commander verwende (jlink.exe) mit den Befehl
>
>   loadbin <speicharabbild.bin> <startadresse>

Merkst du eigentlich noch was?
Ich hab geschrieben, daß das Standalone-Flashen nicht geht und das IST 
WAHR. Punkt.

Was du beschreibst, ist genau DAS, was als Vorbereitung für das Debuggen 
gemacht wird. Das ist was anderes - was ich ebenfalls schrieb.

Grob gesagt: keine Lizenz für J-Flash.

Bevor du in die Tasten haust, solltest du vielleicht erstmal lesen, was 
da steht.

W.S.

von 6a66 (Gast)


Lesenswert?

Bernd K. schrieb:
> Kannst auch direkt beim Build mit objcopy gleich ein .bin aus dem .elf
> erzeugen lassen, und das wiederum ist wahrscheinlich eh in den meisten
> Beispiel-Makefiles die man so findet schon eingebaut. Oder falls man mit
> Makefiles auf Kriegsfuß steht einfach in der IDE in den
> Toolchain-Settings .bin als Ausgabeformat wählen.

Danke :)
Bei uns ist aber default HEX eingestellt - muss ich halt nacharbeiten.

W.S. schrieb:
> Merkst du eigentlich noch was?
> Ich hab geschrieben, daß das Standalone-Flashen nicht geht und das IST
> WAHR. Punkt.

Das ist bei mir in einem Batch drinnen der erst hex2bin't, dann löscht, 
dann flasht und denn verifiziert. Geht super, ich weiß es ginge auch 
kürzer. Wo ist das Problem? Oder was meinst Du mit "standalone"?

rgds

von W.S. (Gast)


Lesenswert?

Jörg W. schrieb:
> Als ich das letzte Mal die Segger-Tools in der Hand hatte (in
> Verbindung einem SAM-ICE), funktionierte der ganze Salat überhaupt
> nicht.

Naja.. es ist eben nicht jedes OS für jede Aufgabe geeignet. Bedenke 
bitte, daß es nicht Segger's eigentlicher Broterwerb ist, sich mit den 
gefühlten 100 verschiedenen grafischen Frontends von Linux, FreeBSD und 
Konsorten herumzuschlagen. Da ist es durchaus verständlich, daß deren 
Software eben für Windows geschrieben wurde und Portierungen nach Linux 
etc. eben eher experimentell sind.

W.S.

von W.S. (Gast)


Lesenswert?

noch einer, der nicht lesen will:

6a66 schrieb:
> Oder was meinst Du mit "standalone"?

na das, was ich geschrieben habe:

W.S. schrieb:
> Grob gesagt: keine Lizenz für J-Flash.

W.S.

von Guest (Gast)


Lesenswert?

W.S. schrieb:
> Ich hab geschrieben, daß das Standalone-Flashen nicht geht und das IST
> WAHR. Punkt.
>
> Was du beschreibst, ist genau DAS, was als Vorbereitung für das Debuggen
> gemacht wird. Das ist was anderes - was ich ebenfalls schrieb.

Wahrscheinlich wird hier tatsächlich aneinander vorbei geredet, aber wo 
ist der Unterschied für dich?
Keine Lizenz für J-Flash hast du natürlich recht aber in beiden Fällen 
starte ich eine Software und das Flash ist beschrieben, also was ist in 
diesem Fall für dich anders bzw. Standalone?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

W.S. schrieb:
> Bedenke bitte, daß es nicht Segger's eigentlicher Broterwerb ist, sich
> mit den gefühlten 100 verschiedenen grafischen Frontends von Linux,
> FreeBSD und Konsorten herumzuschlagen.

Ich brauche keine 100 grafischen Frontends.  Aber wenn OpenOCD es
schafft, mehrere Dutzend verschiedene Programmer auf allen gängigen
OSen sauber zu bedienen (u. a. auch den J-Link), dann muss ich Segger
für ihre private Bastellösung nicht übern grünen Klee loben.  Mir
sind generische Tools ohnehin am liebsten, sollte morgen ein Kunde
einen ARM eines anderen Herstellers unterstützt haben wollen, dann
muss ich meinen Workflow nicht gleich komplett umstellen (und selbst
vom Workflow mit AVR oder MSP430 unterscheidet er sich nur durch die
Namen der GDB-Server, die ich aufrufen muss).

Aber deren Linux-Support ist ja offenbar gegenüber damal besser
geworden, für die Freunde der grafischen Gimmicks.

von W.S. (Gast)


Lesenswert?

Jörg W. schrieb:
> Ich brauche keine 100 grafischen Frontends.

Agree, ich auch nicht. Mir reicht das EINE von Windows völlig aus. 
Aber lassen wir das...

Naja, und OpenOCD ist aus meiner Sicht ein einziger Krampf. Da ist ja 
sogar das Coocox-Brennprogramm noch eleganter...

Aber wir leben in getrennten Welten, in meiner sind Anwendungen das A 
und O und in deiner sind es stattdessen Tools und Scripte. Das sind zwei 
völlig unterschiedliche Denkwelten.

Aber deine Vorstellung, daß du dir ein generisches Programm wünschst, 
ist völlig illusorisch. Dazu müßte es nicht nur ein generell 
einheitliches Transportmittel wie SWD geben, sondern auch generell 
einheitliche Programmieralgorithmen und einheitliches 
Kommunikationsprotokoll zwischen PC und Adapter(n).

Und das zusammen ist das Illusorische.

Stattdessen braucht es für jeden Hersteller, jeden Chiptyp, jede 
Chiptyp-Variante ein spezielles, darauf angepaßtes Stück Programm und 
für jeden verdammten Adapter ein anderes Protokoll.

Segger kann das mit den Algorithmen stemmen, teuer genug sind die ja, 
aber für OpenOCD? Die können ja nicht mal den ULink2 und die 
Ziel-Chip-Auswahl ist doch relativ mickrig. Ist ja auch zu verstehen, 
das ganze macht ne Menge Arbeit und wer soll die bezahlen - du etwa?

Am ehesten ginge dein Wunsch mittels fest im µC eingebautem Bootlader, 
der eine Umsetzung zwischen Hardwarebedingungen und einheitlichem API 
erledigen könnte. Ja, Konjunktiv. Unter so einen einheitlichen Hut 
kriegt man die Hersteller nie und nimmer. Nicht mal die beiden 
Bootlader-Größen NXP und ST sind da bisher zusammengekommen. Und du 
wünschst dir eine generische Brenn-Applikaton.

W.S.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

W.S. schrieb:
> OpenOCD? Die können ja nicht mal den ULink2 und die Ziel-Chip-Auswahl
> ist doch relativ mickrig.

Ich seh' schon, wir leben in getrennten Welten.  OpenOCD kann außer
AVRs (weil deren Programmieralgorithmus nicht veröffentlicht ist)
allen Furz und Feuerstein (auch vieles weit jenseits der ARM-Welt)
programmieren mit mehreren Dutzend verschiedenen Adaptern.  Neuere
ULink2 (mit CMSIS-DAP Firmware) sollten übrigens auch unterstützt sein.
Für die alten isses einfach nur das übliche Dilemma: wenn Keil keine
Lust hat, das Protokoll zu beschreiben und sonst niemand Veranlassung,
es zu reverse engineeren, dann mangelt es eben an 3rd-Party-Support für
solche Tools.

Aber das das für dich alles „mickrig“ ist, brauchst du sowas einfach
auch nicht.  Deine Entscheidung – so, wie ich meine für mich treffen
kann.

Nebenbei fand ich noch in einem alten Artikel der OpenOCD-Mailingliste,
dass möglicherweise das SAM-ICE zusammen mit OpenOCD gar nicht nur auf
die Atmel-ARMs limitiert ist.  Keine Ahnung, ob dem so ist, habe
gerade keinen anderen ARM da, um es zu testen.

> Und du wünschst dir eine generische Brenn-Applikaton.

Ich wünsch' sie mir nicht nur, sondern mit OpenOCD habe ich sie. ;-)

(OK, AVRs und MSP430 außen vor, aber bei ersteren komme ich mit den
vorhandenen gut genug zurecht, letztere waren nur mal eine Episode
am Rande, weil's ein Kunde unbedingt so wollte.)

: Bearbeitet durch Moderator
von Bernd K. (prof7bit)


Lesenswert?

Jörg W. schrieb:
> ann muss ich Segger
> für ihre private Bastellösung

WTF??? Segger hat eine Bastellösung?

Ich bring dich mal auf den aktuellen Stand: J-Link ist der de-facto 
Industriestandard. Jede IDE unterstützt J-Link oder sie taugt nichts. 
J-Link Software ist für alle gängigen OS verfügbar. J-Link (für den 
kommerziellen Einsatz) ist schweineteuer, dafür aber dennoch jeden Cent 
wert, denn es unterstützt jeden ARM-Controller unter dieser Sonne und 
die Software von Segger ist erste Sahne. Das ist die Meßlatte, nicht 
umgekehrt.

Dagegen wirkt OOCD mit seinen läppischen (gefühlt 3 bis 5) verschiedenen 
Conrollern die es unterstützt wie eine Bastellösung. Da helfen auch 
nicht die 100 verschiedenen Frickelport-Treiber nicht die es beinhaltet.

von Bernd K. (prof7bit)


Lesenswert?

W.S. schrieb:
> Ich hab geschrieben, daß das Standalone-Flashen nicht geht und das IST
> WAHR. Punkt

Nein, falsch. Ich hab Dir oben erklärt daß das mit jlink.exe ganz 
hervorragend geht. In der Software-Suite sind mindestens 3 verschiedene 
Tools und eine DLL-Library enthalten mit denen man Standalone (was 
meinst Du damit überhaupt?) flashen kann, als da wären:

Kostenlos (EDU)
* Der GDBServer (für den Debugger, in der IDE)
* Der Commander (für Batchfiles in der Produktion)
* Die DLL (für eigene Anwendungen in der Produktion)

Kostenpflichtig
* J-Flash

Ich wüsste nicht was J-Flash für einen Mehrwert gegenüber dem Commander 
bieten soll, evtl ist es nochmal ne halbe Sekunde schneller als der 
Commander aber wer so viele Controller am Tag flasht daß sich das 
auswirkt wird das eh aus der Portokasse zahlen können.

Alle anderen Hobbyisten und Studenten können problemlos mit den 
Commander und ner Batchdatei  shell-script  Makefile flashen. Sowohl 
standalone als auch verheiratet und sogar geschieden funktioniert das 
ohne Probleme.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Bernd K. schrieb:
> die Software von Segger ist erste Sahne.

Darin unterscheiden sich halt unsere Ansichten diametral.

Diese Software ist das, was ich mit „Bastellösung“ meinte.

Die Hardware ist OK, wenngleich überteuert und mittlerweile doch
etwas klobig wirkend.  (Ist mittlerweile eigentlich wenigstens ein
Adapter auf den 10poligen 1,27-mm-Cortex-M-Stecker dabei, den ARM
selbst so normiert?)

> Dagegen wirkt OOCD mit seinen läppischen (gefühlt 3 bis 5) verschiedenen
> Conrollern die es unterstützt

OK, das beweist hinreichend, dass du OpenOCD gar nicht kennst.  Damit
müssen wir auch nicht weiter diskutieren.

: Bearbeitet durch Moderator
von Olaf (Gast)


Lesenswert?

> Darin unterscheiden sich halt unsere Ansichten diametral.
> Diese Software ist das, was ich mit „Bastellösung“ meinte.

Tut mir Leid Joerg, aber das halte ich fuer ziemlichen Unsinn. Hast du 
schonmal zwei Programmieradapter gleichzeitig benutzt? Mit J-Link geht. 
Ist jetzt praktisch wenn man Kommunikation zwischen zwei Controllern 
entwickelt. Oder einen Debugger ueber TCP/IP angebunden? Ist sehr 
praktisch fuer die Produktion. Oh...und die Geschwindigkeit ist 
natuerlich auch ganz nett.

Und bisher hat Segger bei mir IMMER absolut stabil und sehr zuverlaessig 
funktioniert. Bastelloesungen kenne ich nur von anderen.

Olaf

von Bernd K. (prof7bit)


Lesenswert?

Jörg W. schrieb:
>> Dagegen wirkt OOCD mit seinen läppischen (gefühlt 3 bis 5) verschiedenen
>> Conrollern die es unterstützt
>
> OK, das beweist hinreichend, dass du OpenOCD gar nicht kennst.  Damit
> müssen wir auch nicht weiter diskutieren.

Umgekehrt wird ein Schuh draus: Die drei Mainstream-Controller die Du je 
damit benutzt hat wurden zufällig von OOCD unterstützt und du hast Glück 
gehabt. Und deswegen sind jetzt bei Dir die kommerziellen Tools die 
wirklich out-of-the-box jeden noch so exotischen Controller 
unterstützen, das sind dann bei Dir Bastellösungen. Verkehrte Welt in 
der Du da lebst.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Olaf schrieb:
> Hast du schonmal zwei Programmieradapter gleichzeitig benutzt?

Ja, regelmäßig.

Auch schon vier, aber das war noch mit AVR (JTAGICEmkII + AVaRICE).

> Mit
> J-Link geht.

Mit OpenOCD auch, natürlich nur, sofern man sie unterscheiden kann
(typischerweise anhand der USB-Seriennummer).

> Oder einen Debugger ueber TCP/IP angebunden?

Ja, GDB arbeitet gegen den Server immer über TCP (OK, rein seriell
könnte er auch noch, hat mittlerweile aber kaum noch Relevanz), und
OpenOCD ist halt ein GDB-Server (Segger hat auch einen eigenen, weiß
ich).

IPv6 ist bei OOCD derzeit noch nicht drin.  Wenn ich's brauchen würde
(war letztens kurz davor), würde ich es wohl mal implementieren.

> Oh...und die Geschwindigkeit ist
> natuerlich auch ganz nett.

Dürfte aber auch eher ein Problem der Hardware sein.  Und auch hier
nochmal: OOCD hat überhaupt kein Problem mit dem Segger-Teil.  Hab'
ich schon benutzt, geht genauso unproblematisch wie ein beliebiger
anderer Adapter.

Und nein, die einfachen Bitbanger würde ich mittlerweile auch eher
nicht mehr nehmen.

: Bearbeitet durch Moderator
von Guest (Gast)


Lesenswert?

Jörg W. schrieb:
> Die Hardware ist OK, wenngleich überteuert und mittlerweile doch
> etwas klobig wirkend.

?? Überteuert? Schon mal geschaut was Produkte von Mitbewerbern kosten?

Was meinst du mit klobig? Den J-Link an und für sich? Bei Smartphones 
verstehe ich ja noch wenn es so dünn wie möglich sein muss aber trägst 
du deinen J-Link in der Hostentasche spazieren? ;-)
Wenn es um den 20 Pin JTAG Adapter geht... der ist halt Standard. aber 
du musst den ja nicht benutzen, du kannst ja auch alles andere an den 
J-Link dran klemmen, https://www.segger.com/jlink-adapters.html.

von W.S. (Gast)


Lesenswert?

Jörg W. schrieb:
> Bernd K. schrieb:
>> die Software von Segger ist erste Sahne.
>
> Darin unterscheiden sich halt unsere Ansichten diametral.
>
> Diese Software ist das, was ich mit „Bastellösung“ meinte.

Si tacuisses, philosophus mansisses...

Jörg, jetzt läßt du aber die Hosen gewaltig runter. Jeder hier im Forum, 
der ernsthaft mit den Seggerschen Produkten arbeitet und auch das 
OpenOCD-Projekt in Augenschein genommen hat weiß, was du da für eine 
völlig verstiegene Ansicht postest. Jetzt bist du in der Lage der Katze, 
die nicht mehr weiß, wie sie mit Anstand wieder von dem Baum 
runterkommt, auf den sie in ihrer Unkenntnis der Dinge sich verstiegen 
hat.

Vielleicht solltest du etwas bedächtiger deine Ansichten formulieren und 
weniger markige Sprüche verbreiten, gelle?

W.S.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Guest schrieb:

> ?? Überteuert? Schon mal geschaut was Produkte von Mitbewerbern kosten?

Ein Atmel-ICE kostet 60 Euro.  Hat aber bei Atmel auch ewig
gedauert, bis sie endlich mal von ihrem hohen Ross runter waren.
Die Vorgänger wollten sie immer noch für 300 verkaufen, natürlich
immer mit dem Etikett “low cost” versehen. ;-)

Kann sein, dass das J-Link noch ein paar Gimmicks mehr hat, aber im
Großen und Ganzen sind die Teile durchaus vergleichbar.  Dass Atmel
sein ICE nur für die Atmel-ARMs unterstützen will, hat ja nichts mit
den Kosten für eine derartige Hardware zu tun.

Ein ST-LINK kostet gerade mal 20 Euro.  Ein LPC-LINK2 kostet nur
wenig mehr, es gibt sogar eine J-Link-Firmware dafür …

Klar, das J-Link ist das einzige herstellerübergreifende Tool dabei,
aber den Vorteil kann man auch nur nutzen, wenn man tatsächlich
herstellerübergreifend arbeitet.  Kann sein, dass das Teil bei
richtig großen ARMs ein paar Vorteile bietet, aber hier war ja nach
Cortex-M0 gefragt.  Da sehe ich außer der Herstellerunabhängigkeit
keinen weiteren Vorteil für das J-Link.

> Was meinst du mit klobig? Den J-Link an und für sich?

Ja.

> Bei Smartphones
> verstehe ich ja noch wenn es so dünn wie möglich sein muss aber trägst
> du deinen J-Link in der Hostentasche spazieren? ;-)

Nö, aber der Kram, den man auf dem Tisch rumliegen hat, wird ja
auch kleiner mit der Zeit.  Wenn der Programmierdongle dann genauso
groß ist oder größer als die Ziel-Applikation, dann ist die Gefahr
groß, dass er mit dem Target (mechanisch) Katz' und Maus spielt.

> Wenn es um den 20 Pin JTAG Adapter geht... der ist halt Standard.

Beim Cortex-M nicht mehr, da ist der kleine 10-Pinner von ARM
propagiert (als 9-Pin bei Segger bezeichnet, wegen des weggelassenen
Pins für die Richtungserkennung).

http://infocenter.arm.com/help/topic/com.arm.doc.faqs/attached/13634/cortex_debug_connectors.pdf

Man kann die kleinen Teile ja gut finden oder nicht, aber es ist halt
der, den ARM dafür genormt hat (so wie den großen 20poligen seinerzeit
auch).

: Bearbeitet durch Moderator
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

W.S. schrieb:
> Jetzt bist du in der Lage der Katze, die nicht mehr weiß, wie sie mit
> Anstand wieder von dem Baum runterkommt, auf den sie in ihrer Unkenntnis
> der Dinge sich verstiegen hat.

Warum?  Du postest hier seit Jahr und Tag zweifelhafte Ansichten, da
werde ich mir wohl mal eine leisten können, die andere für
zweifelhaft halten.

Dass die Formulierung sehr provokant war, ist mir natürlich klar ;-),
aber ich steh' da dahinter.  Mit dem J-Flash bin ich hinten und vorn
nicht klar gekommen, sowas entspricht einfach nicht meiner
Arbeitsweise.

: Bearbeitet durch Moderator
von W.S. (Gast)


Lesenswert?

Bernd K. schrieb:
> Nein, falsch. Ich hab Dir oben erklärt daß das mit jlink.exe ganz
> hervorragend geht. In der Software-Suite sind mindestens 3 verschiedene
> Tools und eine DLL-Library enthalten mit denen man Standalone (was
> meinst Du damit überhaupt?) flashen kann, als da wären:

Ich habe das DEDIZIERT geschrieben, also nochmal:

1. ich starte J-Flash
2. ich benutze J-Flash
3. ich beende J-Flash.

Und beim J-Link-Edu funktioniert Nr. 2 NICHT.
War das jetzt deutlich genug?

W.S.

von Bernd K. (prof7bit)


Lesenswert?

W.S. schrieb:
> Ich habe das DEDIZIERT geschrieben, also nochmal:
>
> 1. ich starte J-Flash
> 2. ich benutze J-Flash
> 3. ich beende J-Flash.
>
> Und beim J-Link-Edu funktioniert Nr. 2 NICHT.
> War das jetzt deutlich genug?

1. Ich starte J-Link Commander
2. Ich benutze J-Link Commander
3. Ich beende J-Link Commander

Selbes Ergebnis. Wie ich weiter vorne aufgezählt habe gibt es mehrere 
verschiedene eigenständige Tools mit denen man außerhalb der IDE 
flashen kann und nur ein einziges davon braucht eine Lizenz, alle 
anderen sind kostenlos. Das widerspricht also eindeutig Deiner Aussage 
man könne mit dem EDU nicht standalone flashen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Bernd K. schrieb:
> Das widerspricht also eindeutig Deiner Aussage man könne mit dem EDU
> nicht standalone flashen.

Nun lass doch mal.  Er hat das ausschließlich auf das J-Flash-Tool
bezogen, das wissen wir ja nun, und dieses Tool (welches ich etwas
provokant als „private Bastellösung“ tituliert habe) hat es ihm ganz
offenbar so sehr angetan, dass alles andere in seinen Augen halt keine
praktikable Lösung ist.

Ansonsten ist das ja mittlerweile ausreichend hin und her gekaut worden,
was die EDU-Variante kann und was nicht.  Vom legalen Aspekt her ist
es aber offenbar nicht statthaft, mit dieser kommerziell zu arbeiten.

: Bearbeitet durch Moderator
von Guest (Gast)


Lesenswert?

Jörg W. schrieb:
> Klar, das J-Link ist das einzige herstellerübergreifende Tool dabei,
> aber den Vorteil kann man auch nur nutzen, wenn man tatsächlich
> herstellerübergreifend arbeitet.  Kann sein, dass das Teil bei
> richtig großen ARMs ein paar Vorteile bietet, aber hier war ja nach
> Cortex-M0 gefragt.  Da sehe ich außer der Herstellerunabhängigkeit
> keinen weiteren Vorteil für das J-Link.

Jain, im Prinzip gebe ich dir Recht aber es gibt da viele Features beim 
J-Link, die es nicht bei anderen gibt (RTT, SWO Viewer, J-Scope, J-Link 
Debugger, Unlimited Flash Breakpoints, Unterstützt von fast allen IDEs, 
...).

Man muss aber einfach sehen, das es nicht das eine beste Werkzeug gibt 
sondern jeder einen anderen Workflow und Ansprüche hat und deshalbe 
gerne ein anderes Werkzeug einsetzt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Guest schrieb:
> Jain, im Prinzip gebe ich dir Recht aber es gibt da viele Features beim
> J-Link, die es nicht bei anderen gibt (RTT, SWO Viewer, J-Scope, J-Link
> Debugger, Unlimited Flash Breakpoints, Unterstützt von fast allen IDEs,
> ...).

OK, ich denke zwar, dass dieses oder jenes davon auch anderswo da
ist, aber in der Summe natürlich ein netter Satz Features sind.

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.