After much toil we finally found a working configuration. We avoided uploading via the debugger altogether, and instead used another COM port with the sam-ba
protocol instead. Whatever GDB commands PlatformIO thinks are right are no good either.
[env:due]
platform = atmelsam
board = due
board_build.mcu = at91sam3x8e
board_build.f_cpu = 84000000L
framework = arduino
; If any of your ports are 10 or over, use this format: \\.\COM10
debug_port = COM9
debug_tool = blackmagic
upload_port = COM5
upload_protocol = sam-ba
debug_load_cmd = preload
debug_load_mode = always
; debug_init_break = C:\Users\<Your Username>\.platformio\packages\framework-arduinosam\cores\sam\main.cpp main
debug_init_cmds =
define pio_reset_halt_target
mon reset halt
flushregs
end
define pio_reset_target
mon reset
end
target extended-remote COM9
monitor tpwr enable
monitor swdp_scan
set mem inaccessible-by-default off
attach 1
interrupt