mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik JTAG-Adapter Black Magic Probe


Autor: Luky S. (luky)
Datum:
Angehängte Dateien:

Bewertung
7 lesenswert
nicht lesenswert

Eine sehr interessante Alternative zu den bekannten kommerziellen (z.B. von Segger) und offenen (OpenOCD) JTAG Adaptern ist die Black Magic Probe.

Eine der Besonderheiten ist, dass der GDB Server direkt auf dem eingebauten STM32 Mikrocontroller läuft und man sich daher die nicht immer ganz unproblematische Einrichtung eines lokalen GDB Servers auf dem PC sparen kann. Es ergeben sich zudem Vorteile bei der Geschwindigkeit und Stabilität der Verbindung zum zu debuggenden Mikrocontroller.

Aktuell werden diverse Cortex-M0, M3 und M4 von Atmel, Nordic, NXP / Freescale, Silicon Labs, Texas Instruments und ST unterstützt, die Entwickler versprechen jedoch die Unterstützung weiterer Typen und auch von "größeren" Controllerserien wie z.B. den Broadcom-Chip auf den Raspberrys.

Hardwareseitig verfügt der Adapter über Levelshifter (1,71 bis 5V Zielspannung), kann dem Ziel aber leider nur fixe 3,3V zur Verfügung stellen.

Hardwarefiles und die Firmware sind Open Source. Nähere Informationen und Bezugsquellen gibt es auf der Projektseite.


: Bearbeitet durch Admin
Autor: Uwe Bonnes (Firma: TU Darmstadt) (uwebonnes)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Man kann den BMP auch auf verschiedene Hardware aufspielen:
https://embdev.net/articles/STM_Discovery_as_Black...

Bei den STLinks geht es allerdings nur mit V2.1 problemlos.

Bei STlink v1 und v2 ist nur ein STM32F1038B verwendet. Da die Firmware 
+ Bootloader inzwischen grosser 64 kiB ist, muss man sich auf 
ungetestetes Flash oberhalb von 64 kiB verlassen und zum Aufspielen der 
Firmware mittels DFU Werkzeug verwenden, was oberhalb des annonzierten 
Flash schreiben kann (dfu-util sourcefore head).

Autor: Baldrian (Gast)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Eine einfacher und preiswerter Weg, um zu einem JTAG-Adapter zu kommen 
führt über diese Webseite:

https://medium.com/@paramaggarwal/converting-an-st...

Zitat:"Using the $2 (Blue Pill) STM32 board we can have a debugger that 
supports breakpoints. No need of OpenOCD server, as it runs a GDB server 
on chip directly."

Autor: Uwe Bonnes (Firma: TU Darmstadt) (uwebonnes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch BluePill hat nur einen STM32F103C8 und damit das Problem mit der 
Firmware > 56kiB.

Autor: W.S. (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Baldrian schrieb:
> Eine einfacher und preiswerter Weg, um..

Der Beitrag in deinem Link ist ein ziemlicher Bockmist. Da referiert der 
Autor in der Art "drücken Sie den linken Knopf und schreiben Sie die 
folgende Kommandozeile hin.."

Ich hatte mal versucht, die Quellen zu diesem Projekt mit dem Keil zu 
übersetzen und bin von selbigem geradezu erschlagen worden mit 
Fehlermeldungen.

Soweit ich mich erinnere, war in diesen Quellen sogar ne void Funktion, 
die ein Ergebnis liefern wollte (return xyz;) - kurzum, dieses Projekt 
ist ein Pfusch, daß es einen graust. Die lapidare Bemerkung in dem Link 
"Ignore any errors that might occur." spricht Bände.

Wenn diese Eierköpfe es fertiggebracht hätten, ihr Zeug ordentlich zu 
schreiben und vielleicht sogar eine lesbare Dokumentation zu verfassen, 
dann könnte daraus was werden, so aber nicht.

W.S.

Autor: Uwe Bonnes (Firma: TU Darmstadt) (uwebonnes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
arm-none-eabi mit "-Wall -Wextra -Werror " kompiliert ohne Spotzer. Wo 
sind die Probleme mit Keil?

Autor: Info (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>70€

Autor: A. B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist ganz nett für "ältere" Chips. Ansonsten hat man ständig das 
Problem, den Firmware-Updates hinterher zu laufen. Mal schnell die 
Unterstützung der neuesten Varianten (z. B. 32h7) einzubauen, geht auf 
dem Host doch etwas bequemer.

Und grundsätzlich hat mehr "Intelligenz" im Adapter natürlich das 
Problem, dass jede Chip-Variante die Firmware aufbläht und aufbläht und 
... bis ... na ja, halt kein Platz mehr da ist. Siehe J-Link V8 -> V9.

Das gleiche Spielchen gabs auch schon bei EPROM-, GAL- ... Programmern. 
Wenn sich viele Bausteine durch mehr oder minder generische Algorithmen 
erledigen lassen, geht's lange gut. Aber wenn jeder Chip seine 
Extrawürste haben will, wird's schnell ärgerlich.

Oder man verzichtet zunächst mal auf die ganz "exotischen" Sachen wie 
sector protection, pcrop, secure mode, otp und wie sie alle heißen. 
Solange man die nicht braucht, ist das Entwickeln mit dem BMP sicher 
ganz ok.

Autor: Guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
https://www.segger.com/news/segger-introduces-j-li...

18$ (~16 Euro) für einen originalen J-Link von SEGGER. Respekt an die 
Jungs von  Black Magic Probe, die sich die Arbeit gemacht haben, aber 
wieso sollte man sich bei dem Preis noch solche Projekte antun?

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehe ich auch so, vor allem die Hardware kostet mehr als ein J-Link EDU:
https://1bitsquared.de/products/black-magic-probe

J-Link EDU:
https://www.segger.com/purchase/pricing/jlink-related/

Fairerweise muss man natürlich sagen das der Black Magic Probe 
wahrscheinlich auch kommerziell eingesetzt werden darf...aber das 
wiederum macht wahrscheinlich auch keiner weil dann lieber 
professionelle Tools wie der normale J-Link benutzt werden.

Autor: Chris F. (chfreund) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der echte Preis von dem Teil ist dann auch genau 60€:

http://www.ak-modul-bus.de/cgi-bin/iboshop.cgi?sho...

Autor: Michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Chris F. schrieb:
> Der echte Preis von dem Teil ist dann auch genau 60€:

Das ist dann aber der alte normale, nicht der neue (vermutlich noch 
nicht verfügbare) MINI.

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michi schrieb:
> (vermutlich noch nicht verfügbare)

Doch, ist schon verfügbar, kann man über die Distis oder direkt im 
Online Shop kaufen: 
http://shop-us.segger.com/J_Link_EDU_mini_p/8.08.91.htm

Autor: Chris F. (chfreund) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso, okay. Das "MINI" stand beim Beitrag vorher nicht dabei. Ich sehe 
es jetzt auch.

Autor: Uwe Bonnes (Firma: TU Darmstadt) (uwebonnes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Steckverbinder am Segger Mini ist aber im 0.05 inch Raster. Adapter 
auf "normales" 0.1 mm Raster kosten deutlich.

Wie bringt man den den Segger auf der Kommandozeile unter Linux zum 
Laufen, um dann mit dem gdb zu arbeiten? Die Anzahl an noetigen Optionen 
erscheint mir fast unendlich.

Beim BMP, z.B. auf einem Nucleo ist das nur
- anstecken am USB
- arm-non-eabi-gdb xxx.elf
und im gdb
-- tar ext /dev/ttyACM0
-- mon s
-- att 1

Und bei den aelteren STM Disco Boards hatte man durch das Umflashen auf 
BMP auch einen seriellen Kanal, den die aelteren STLinks nicht hatten

Autor: Bernd K. (prof7bit)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guest schrieb:
> 
https://www.segger.com/news/segger-introduces-j-li...
>
> 18$ (~16 Euro) für einen originalen J-Link von SEGGER.

Hey, bis jetzt kannte ich nur den normalen EDU (~50€), der Mini muss 
ziemlich neu sein. Danke für den Hinweis! Damit stößt der J-Link ja nun 
endgültig auch in die Preisregionen selbst des geizigsten denkbaren 
Bastlers (GDB) vor.

Auch wenn alles closed ist kann ich einen J-Link aufgrund überragender 
Nützlichkeit und Qualität nur wärmstens empfehlen. Und alles läuft 
übrigens auch problemlos unter Linux.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gehen die billigen STLink clones aus China wirklich dafür?

Wenn Ja dann kaufe ich mir mal davon 2 Stück.
Denn Billiger geht es dann nicht mehr.

Grüsse, Peter

Autor: Bernd K. (prof7bit)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Uwe B. schrieb:
> Wie bringt man den den Segger auf der Kommandozeile unter Linux zum
> Laufen, um dann mit dem gdb zu arbeiten?

Du musst erst den gdb server starten (anders als bei der BMP ist das bei 
Segger ein Stück Software auf dem PC). Es laufen also 2 Prozesse auf dem 
PC: Der J-Link gdb-Server und der eigentliche gdb.

Autor: Uwe Bonnes (Firma: TU Darmstadt) (uwebonnes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also nochmals genauer gefragt:
Wie startet man dem J-Link gdb-Server? Mit derHilfestellung, die der gdb 
server gegeben hat, habe ich nach einigen Versuchen aufgegeben...

Autor: Uwe Bonnes (Firma: TU Darmstadt) (uwebonnes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter schrieb:
> Gehen die billigen STLink clones aus China wirklich dafür?
>
> Wenn Ja dann kaufe ich mir mal davon 2 Stück.
> Denn Billiger geht es dann nicht mehr.
>

Die billigen Clone haben einen STM32F103C8. Aktueller BMP Bootloader + 
Firmware ist > 64 kB. Zwar habe ich noch von keinem STM32F103C8 gesehen, 
der nicht Flash bis 128 k hat, aber das macht zwei Probleme:
- Geht der Flash ueber 64 k wirklich?
- Wie laedt man den Flash ueber 64 k?

Sowohl fuer dfu-utils als auch fuer bmp/src/tools/stm32_mem.py haben da 
Probleme. Allerdings haengen in den Projekten Patches von mir, die das 
Problem bei mir behoben haben. Ruecklesen des Flashes um Fehler zu 
finden waere zwar schoen, gibt es aber noch nicht.

Man kann aber auch die Liste der unterstuetzten  Devices in makefile und 
Quellen kuerzen, und so unter der 64 k Grenze bleiben oder aeltere 
Versionen verwenden...

Autor: Axel Schwenke (a-za-z0-9)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Uwe B. schrieb:
> Also nochmals genauer gefragt:
> Wie startet man dem J-Link gdb-Server?

So wie es im Manual steht?

UM08001_JLink.pdf, Kapitel 3.3 "J-Link GDB Server"

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut, also bestelle ich mir diese Clones.

In der Liste der unterstützten devices ist für mich sowieso vieles drin 
was ich nicht brauche. Wird somit gekürzt.

Speicher zu nutzen den es ofiziell nicht gibt, halte ich für gewargt.
Auch wenn es nur ein weiterer Debugger wird halte ich nichts davon.

Grüsse, Peter

Autor: Chris F. (chfreund) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So eine Adapterplatine für den Atmel-Ice von 0,05 auf diverse andere 
Größen hatte ich mal gebaut. ( http://aug3.de/swd/ )Ist der kleine 
Stecker vom Ice kompatibel zum "mini"?

Autor: Gerd E. (robberknight)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter schrieb:
> Gehen die billigen STLink clones aus China wirklich dafür?

Ja, die gehen.

Siehe 
https://embdev.net/articles/STM_Discovery_as_Black...

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.