Hallo,
ich wollte mal fragen, was man für Vorteile davon hat, wenn man sich
z.B. JTAG SWD Debugger für mehrere Hundert Tausend Euro kauft, wie
sie manche Hersteller anbieten und was die Vorteile davon sind, einfach
einen billigen STLink z.B. zu nutzen bzw. JTAG über FT2232?
Danke
Debugger wie z.B. der Segger JLink sind schneller und stabiler und
unterstützen fast alle ARM-Prozessoren. Außerdem gibt es Modelle die
über Ethernet funktionieren und Tracing unterstützen. Die
ST-Link-Software ist/war notorisch verbuggt und teilweise kaum nutzbar,
hat sich aber etwas gebessert. Für Hobby kann der ST-Link ausreichend
sein, aber wenn man viel/professionell damit arbeitet verschwendet man
damit zu viel Zeit...
Ausrede für Manager.
"Wenn das Projekt sogar mit professionellem Equipment, Schulungen und
Support in die Hose gegangen ist - was wäre dann erst passiert, hätten
wir China-Glump gekauft?"
Ein ehemaliger Marktführer hatte mal den Werbespruch: Es wurde noch
keiner entlassen, weil er IBM gekauft hat.
Robert schrieb:> ich wollte mal fragen, was man für Vorteile davon hat, wenn man sich> z.B. JTAG SWD Debugger für mehrere Hundert Tausend Euro kauft, wie> sie manche Hersteller anbieten und was die Vorteile davon sind, einfach> einen billigen STLink z.B. zu nutzen bzw. JTAG über FT2232?
1. Interfaces: FTDI-Bridges können erstmal nur JTAG. Um SWD unterstützen
zu können, brauchen die extra Hardware, oft in Form eines CPLDs/FPGAs
(Beispiel: TI XDS100V2/v3) oder mit extra Gattern (Olimex
JTAG-SWD-Adapter). Dann gibts da noch cJTAG und andere Spielarten, und
jenseits von ARM gibts noch weitere Feinheiten.
2. Trace Support für die ETM Trace Cell, die im fast allen Cortex Cores
mit drin ist.
3. Software-Support: Wenn Du eine bestimmte IDE verwenden willst, wird
die nur eine eng begrenzte Anzahl von Adaptern unterstützen. Und wenn
nur A, B und C unterstützt wird und Du nur D hast, hast Du eben Pech
gehabt.
4. Spannungsbereich: 3.3V ist Standard, aber wenn Dein Prozessor mit
1.8V oder mit 5V läuft, dann muss der Adapter entsprechende Levelshifter
eingebaut haben.
5. PC-Verbindung: Die billigen haben machmal nur USB Full Speed. USB
High Speed sollte eigentlich Standard sein, Ethernet ist
aufpreispflichtig.
6. galvanische Trennung: manchmal erforderlich, Extra
fchk
Frank K. schrieb:> 1. Interfaces: FTDI-Bridges können erstmal nur JTAG. Um SWD unterstützen> zu können, brauchen die extra Hardware
... oder einen 400 Ohm (bis 1k) Widerstand. Ja, OpenOCD unterstützt das
für einige FTDI Chips. ;-)
Ich persönlich würde aber JLink empfehlen, weil man dann Segger RTT
benutzen kann. Sehr hilfreich beim Debuggen.
Wenn man low cost hw benutzt wie Bluepill oder die STLink clones hat man
ein super Preis-Leistungsverhältnis. Aber zb auch die 3.3 V
Einschränkung.
Das org BMP hat einen Buffer und passt sich der VTarget an, kostet aber
auch gleich ein vielfaches.
Durch die einfache Konfiguration ist BMP meine Lieblingsprobe.
Ich nutze einen Debugger von Lauterbach. Die SW stammt gefühlt noch aus
DOS Zeiten. Sieht nicht toll aus, aber man kann sie individuell Anpassen
wie man Lust und Laune hat. Eigene Schaltflächen, Makros, Befehle.
Selbst das Layout der Oberfläche. Steht einem alles frei.
Die Anzahl der unterstützten Controller ist gigantisch. Der Support
erste Klasse. Der Debugger selbst hat eine irre Perfpormance. JATG mit
50 cm Kabelpeitsche dazwischen, egal läuft bei 20 MHz. Hunderte
Breakpoints, klar kein Problem. Ach du willst zu dem nur Springen, wenn
die Variable den Wert hat, du vorher durch diesen Zweig gelaufen bist
und heute Donnerstag ist? Klar auch kein Problem. Du willst zwei
verschiedene Controller gleichzeitig Debuggen, na aber sicher doch.
Das kann der Debugger vom Nucleo Board nicht.
Lauterbach zb rufst du an und bekommst in deutsch Hilfe.
Da der Kopf bei den Debuger auch die Liezen enthält behält man das
Grundgerät und kann dann so ziemlich alles debugen was 1 von 0
unterscheiden kann.
Die einfachen ohne Hardwartraces Unterstützung gehen preislich.
Die großen sind privat nicht bezahlbar. Und den 4 Gb Tracespeicher auf
dem Debuger hast uU extrem schnell voll.
Auch schön ist halt Multicore debugen, oder Datenbreakpoints.
Von den Spannungen gehen die glaub bei 1,5 V los bis 5 V hoch.
> Die Anzahl der unterstützten Controller ist gigantisch.
Das ist einer der Hauptgruende warum gute Debugger (und Eprommer) so
teuer sind.
Schaut als Beispiel mal hier:
https://processors.wiki.ti.com/index.php/ICEPICKJTAG ist nicht gleich JTAG. Das muss immer passend implementiert werden.
> 50 cm Kabelpeitsche dazwischen, egal läuft bei 20 MHz. Hunderte> Breakpoints, klar kein Problem. Ach du willst zu dem nur Springen, wenn> die Variable den Wert hat, du vorher durch diesen Zweig gelaufen bist> und heute Donnerstag ist? Klar auch kein Problem.
Das geht mit dem gdb auch. Also dann z.B auch dem jLink. Man muss nur
mal die Anleitung lesen.
> Klar auch kein Problem. Du willst zwei> verschiedene Controller gleichzeitig Debuggen, na aber sicher doch.
Yep. Oder auch zwei gleiche Debugger an einem PC verwenden. Kommt ja
auch manchmal vor wenn man Schnittstellen programmiert.
Das wichtigste aber, es muss ZUVERLAESSIG sein. Wenn ich auf Fehlersuche
bin das ist keine schrullige Kiste akzeptabel wo ich mich frage ob das
Problem nicht vielleicht auch am Debugger liegen koennte!
Und dann gibt es manchmal noch so Extremfaelle. Wenn der Debugger mit in
den Klimaschrank muss. .-)
Olaf
Olaf schrieb:> Yep. Oder auch zwei gleiche Debugger an einem PC verwenden. Kommt ja> auch manchmal vor wenn man Schnittstellen programmiert.
Das geht mit den low cost BMP aber auch, die erzeugen ja verschiedene
Schnittstellen und arbeiten autark.
Johannes S. schrieb:> Wenn man low cost hw benutzt wie Bluepill oder die STLink clones hat man> ein super Preis-Leistungsverhältnis. Aber zb auch die 3.3 V> Einschränkung.> Das org BMP hat einen Buffer und passt sich der VTarget an, kostet aber> auch gleich ein vielfaches.> Durch die einfache Konfiguration ist BMP meine Lieblingsprobe.
BMP kann auch tracing , siehe orbuculum