There is a problem with IDE debuggers for SAME70, and as I understand, all
Cortex-M7 core based processors. With other Cortex controllers, when a
debbuger pauses or hits a breakpoint, the debugger stops interrupt processing
so that, even if interrupts are running in the system, when you single step,
you go to the next line in the software module you are debugging.
With the M7 debuggers, like GDB which is used by Atmel Studio, when you hit a
breakpoint and then try to single step, if any interrupts are running in the
system, you step into an ISR, or the same instruction, not your next instruction
and will keep doing this forever. The "workaraound" is apparently to put your
cursor on another line and tell the debugger to "Run to Cursor". But even this
does not work until you disable the breakpoint where you stopped, because the
interrupt return keeps taking you back to the breakpoint rather than going on.
Does anyone know if this is being fixed? Or if there is a workaround?
Or if any toolsets have fixed it? I have been working on a complex application
and this bug makes it really painful to just operate.
- custom board with ATSAME70N21
- Atmel Studio v7.0.1417
- Atmel-ICE as debugger tool (SWD interface)