I’ve got a program that reads a few UART ports using DMA. This works fine, but the moment I hit a breakpoint or pause the execution, no further UART data is ever received until I reinitialize the peripheral. My best guess is that the debugger loads some read-once registers causing issues further down the road. Is this a common issue, and are there workarounds?
Your device may not stop the DMA clock while the CPU is stopped in the debugger, so this could cause some buffer overruns or other similar problems. We would recommend checking the UART and DMA registers to understand what exactly happens and then checking through the device documentation for ways to pause UART/DMA during debug stops.