Open-Source-Debugging

Im Gegensatz zu einem anderen beliebten Debugging-Tool ist Black Magic Probe komplett Open Source. Nicht nur der Source-Code, sondern auch seine Schaltpläne sind auf GitHub zu finden.
Zum Ausprobieren des BMP habe ich ein Open-Source-Debuggable-ARM-Entwicklungsboard von 1Bitsy verwendet. Da dieses Board vom gleichen Hersteller wie die Black Magic Probe stammt, sollte eigentlich alles reibungslos funktionieren.

Das 1Bitsy-Board – in meinem Fall Version 1.0d – ist ein ziemlich einfaches Board, da es nichts anderes ist als ein Board mit Mikrocontroller in Form des leistungsfähigen Typs STM32F415RG, das eine USB-Schnittstelle, einen Spannungsregler und natürlich einen JTAG-Anschluss mitbringt. Letzterer ist der gleiche kleine 2x5-Pin-Stecker, der auf dem BMP sitzt, und ein Kabel dafür ist im Lieferumfang des BMP enthalten. Es wird auch eine kleine Adapterplatine für diese Stecker mitgeliefert, so dass man super einfach einen passenden Adapter für andere Hardware machen kann.

 
black magic probe v2.1 kit contents
Lieferumfang des Kits Black Magic Probe v2.1

Einfach anschließen

Die Installation der Black Magic Probe auf einem Computer ist simpel: einfach anschließen, Punkt. Ich habe es unter Windows 10 und Ubuntu ausprobiert und in beiden Fällen klappte das sofort. Die BMP zeigt sich als zwei serielle Schnittstellen: eine für den Debugger und die andere als komplementärer USB/Seriell-Konverter. Ein Kabel zur Verwendung dieser seriellen Schnittstelle ist im Lieferumfang enthalten.

Um mit dem Debugging beginnen zu können, benötigt man eine ARM-Toolchain-kompatible oder (wahrscheinlich) noch besser: eine GDB. Die empfohlene Toolchain ist gcc-arm-embedded, verfügbar für Linux, OS X und Windows. Ich habe unter Windows angefangen, aber bin dort auf Kompilierungsprobleme der Beispielprogramme für das 1Bitsy-Board gestoßen, die nichts mit der Black Magic Probe zu tun hatten. Deshalb bin ich auf Ubuntu umgestiegen. Auf dieser Plattform wurde alles gut kompiliert, so dass ich viele ausführbare Dateien für mein Board zum Debuggen hatte.

GNU Debugger (GDB) erforderlich

Um sich mit dem BMP zu verbinden, startet man zuerst GDB (arm-none-eabi-gdb) und gibt dann die Befehle in das GDB-Terminal ein. Unter Windows funktionierte das in einem normalen Kommandozeilen-Fenster (stellen Sie sicher, dass sich die ARM-Toolchain im Systempfad befindet und verwenden Sie ggf. die Batch-Datei bin\gccvar.bat). Unter Ubuntu musste ich den GDB-Startbefehl "sudo" verwenden, um Zugriff auf das BMP zu bekommen.