I’m doing ARM development on Windows and wanted to test the 1BitSquared Black Magic Probe with the custom Atmel SAMD21 board I designed. An ARM debugger is an essential tool for embedded development and I love to move to open source tools when possible, so I thought I’d give it a try.
I ran into a couple issues getting it setup with my Windows environment though.
The first problem I had was that the GDB and UART interfaces were recognized a Teensy ports in the device manager when I first connected it. After several hours of furious searching I found this page where they mention:
If you have previously programmed a Teensy board, this driver install will not work. You need to unplug the BlackMagic Probe, right click on the Com ports and uninstall the existing drivers, the plug the BlackMagic Probe back in and right click in device manager on BlackMagic GDB server port and choose update driver software and browse to the directory where you have downloaded (and unzipped) the BlackMagic.inf file, click next and when prompted let windows install the driver. Do the same for the UART Com port.www.forward.com.au
Ok, so I uninstalled the drivers, cloned the black magic github for the new drivers, but only to run into the second issue – 64bit windows installations won’t accept unsigned drivers.
Initially I tried using the WinUSB driver, but after couple hours of hair pulling I figured out you have to use the USB Serial (CDC) driver which enumerates the device with a COM port. Use the “Options > List All Devices” menu choice to display your USB devices if there’s already a driver present. Then use the arrow buttons to scroll through the driver choices to find the Serial CDC option. If the CDC driver installs correctly you should be able to connect your gdb server
Connect with the “target extended-remote” command with the port number enumerated on your machine (check device manager) for the black magic GDB server.
target extended-remote \\.\COM10
Now that you can connect, follow this wiki doc to continue your debugging journey!