Open source-debugging

In tegenstelling tot een ander populair debuggereedschap is de Black Magic Probe helemaal open source; de schema’s en de broncode zijn te vinden op GitHub.
Voor het uitproberen van de BMP maakte ik gebruik van een 1Bitsy open source ARM -ontwikkelkaart. Omdat dit board is ontwikkeld door dezelfde mensen die ook de Black Magic Probe maken, zou dat zonder problemen moeten werken.

Het 1Bitsy-board (versie 1.0d in mijn geval) is een vrij eenvoudig kaartje: het bevat alleen maar een microcontroller (een krachtige STM 32F415RG), een USB -interface, een spanningsregelaar en, natuurlijk, een JTAG-connector. Die heeft dezelfde kleine 2x5-polige header als er op de BMP zit. De kabel wordt meegeleverd met de BMP. Er wordt ook een klein adapterkaartje voor dit soort connectors meegeleverd, dus u kunt ook gemakkelijk een geschikte adapter maken voor uw eigen hardware.

 
black magic probe v2.1 kit contents
De inhoud van de Black Magic Probe V2.1-kit.

Gewoon aansluiten

Het installeren van de Black Magic Probe op een computer is gemakkelijk: u kunt hem gewoon aansluiten. Ik heb het geprobeerd met Windows 10 en met Ubuntu en in beide gevallen werkte het meteen. Het apparaat verschijnt in de vorm van twee seriële poorten: de ene is voor de debugger en de andere is een extra USB /serieel-converter. Ook een kabel voor deze seriële poort wordt meegeleverd met de BMP.

Voor het debuggen is een ARM -compatibele toolchain nodig, liefst met GDB (de meeste hebben die wel). De aanbevolen toolchain is gcc-arm-embedded, die verkrijgbaar is voor Linux, macOS en Windows. Ik werkte in eerste instantie op Windows maar ik kreeg problemen bij het compileren van de voorbeeldprogramma’s voor het 1Bitsy-board. (Dat had niets te maken met de Black Magic Probe.) Dus schakelde ik over naar Ubuntu. Op dat platform compileerde alles zonder problemen, zodat ik een mooie verzameling van executables kon opbouwen om te gaan debuggen.

GNU Debugger (GDB) noodzakelijk

Voor het verbinden met de BMP moet eerst GDB (arm-none-eabi-gdb) worden opgestart. Daarna worden de commando’s ingevoerd in de GDB-terminal. Op Windows werkte dat goed in een gewone DOS-box (CMD). Zorg er wel voor dat de ARM -toolchain in het PATH zit, zodat Windows de commando’s kan vinden. Gebruik het script ‘bin\gccvar.bat’ als dat nodig is. Op Ubuntu moest ik “sudo” voor het startcommando van GDB zetten om toegang te krijgen tot de BMP.