Showing results for 
Search instead for 
Did you mean: 

What happens, if in the single-port DMA, DMA_CMARx is overwritten while DMA is enabled?

The description of DMA_CMARx (and also DMA_CPARx) register in single-port DMA (AN2548) says:

This register must not be written when the channel is enabled.

What wrong may happen if this register is written when the channel is enabled?

This of course is equivalent of the question: how *exactly* does the DMA work internally?

I'm asking because I am looking into ways to swap the memory buffer upon Transfer Complete in Circular mode, attempting to mimick the behaviour of the dual-port DMA in Circular+Dual buffer mode.

I of course tried and I have an idea how this works, but we all know what's the value of "I've tried".

Oh, and yes, I am aware of what the chances are to get relevant answer here, thank you.