DMA behavior while debugging

cancel
Showing results for 
Search instead for 
Did you mean: 

DMA behavior while debugging

494 Views
amitmehta
Contributor III

UART is configured with DMA enabled, so secondary controller always keep on sending data, while debugging on primary controller DMA keep on running and write on illegal location causing corruption, is there any way to halt DMA only while step run else keep running  while in debug mode. enableDebugMode completely disables DMA in debug mode.

Labels (1)
0 Kudos
4 Replies

205 Views
mjbcswitzerland
Specialist V

Ahmet

I don't know of a way to stop DMA operation in debug mode but I also don't think that it should be a problem if the DMA is set up to automatically stop (or free-run in a circular buffer mode). If it is overwriting memory or accessing invalid memory I would say that there is a basic problem with the DMA configuration that should be addressed first.

Regards

Mark

0 Kudos

205 Views
amitmehta
Contributor III

moreover i am reading variable size data so every time in callback i am using UART_ReceiveEDMA call to read x bytes, so in that case how would one configure circular buffer ?

0 Kudos

205 Views
mjbcswitzerland
Specialist V

Amit

If you configure for a fixed length and you know that your buffer is adequate to receive it you won't have any advantage of using a circular buffer.

As I understand it the libraries you reference don't have support for free-running UART DMA so you would need to develop it or use the uTasker solution (which also adds free running DMA UART reception to FreeRTOS based developments).

Regards

Mark

205 Views
amitmehta
Contributor III

Hi Mark,

So basically illegal memory location might be a wrong word but what i was trying to say was that it writes on next memory location once 32 bytes which is buffer size get exhausted. and also i'll check for auto stop mode.

Thank You for replying.

0 Kudos