SLAZ100AA October 2012 – May 2021 CC430F6127
EEM Module
Debug
Debugger stops responding when using the DMA
In repeated transfer mode, the DMA automatically reloads the size counter (DMAxSZ) once a transfer is complete and immediately continues to execute the next transfer unless the DMA Enable bit (DMAEN) has been previously cleared. In burst-block transfer mode, DMA block transfers are interleaved with CPU activity 80/20% - of ten CPU cycles, eight are allocated to a block transfer and two are allocated for the CPU.
Because the JTAG system must wait for the CPU bus to be clear to halt the device, it can only do so when two conditions are met:
- Three clock cycles after any DMA transfer, the DMA is no longer requesting the bus.
and
- The CPU is not requesting the bus.
Therefore, if the DMA is configured to operate in the repeat burst-block transfer mode, and a breakpoint is set between the line of code that triggers the DMA transfers and the line that clears the DMAEN bit, the DMA always requests the bus and the JTAG system never gains control of the device.
When operating the DMA in repeat burst-block transfer mode, set breakpoint(s) only when the DMA transfers are not active (before the start or after the end of the DMA transfers).