How to debug an SAM with an Arduino project and GDB?

Arduino SAM based boards (such as the DUE) are now available out of the box for debugging in vMicro, through external debuggers.

External Debug Interface: SWD

 

External Debugger Connections

If you don't have a debugger built-in then you can use an External Debugger which supports SWD to attach to your board, as seen in the examples below.

NOTE - SWD Interface Connections

On Boards - often just specific pins on your board, or may be presented in a 2x5 interface (its small at [0.05"/1.27mm pitch]), shown in the first image on the "Black Magic Pro" debugger

On Debuggers - may be presented in the small 2x5 interface, or in the JTAG layout.

Bear this in mind when finding a debugger, you may need more leads / breakouts to connect them to your targets.....

 

SAMD Connected to Black Magic Pro directly

 

Software Setup

Ensure you have Visual Studio and the vMicro Extension Installed

Open your Sketch and select the Debug > Hardware, and the relevant Debugger you have available, whether it's built in, or External:

SAM Debug Toolbar Settings

Start Debugger

  1. Ensure you have the Debug Configuration selected from the Configuration Manager Window
  2. If you know where you want the first breakpoint in your code, add it now
  3. To start the debugging process, you can either:
    • "Debug > Attach to Process" button if your code has already been uploaded to the SAMD board
    • "Debug > Start Debugging" if your code has not been uploaded
Black Magic Note  - You will need to set the COM port to the BMP port to DEBUG, so can only set Board COM Port, "Build & Upload", swap to BMP COM Port and then "Attach to Process"

SAM Debugging Arduino DUE in vMicro and Visual Studio

Congratulations - you should have the debugger running, and further windows can be opened from the "Debug > Windows" menu once you have started debugging