UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Explorer
Explorer
568 Views
Registered: ‎10-18-2017

AXI DMA Simple Transfer Interrupts

Hello, I am trying to make a basic application to stream data from DDR through fabric then back to another buffer in DDR using AXI DMA. I am trying to use interrupts to signal the processor when completion of stream occurs. Currently, my software is stalling on the MM2S (Memory Map to Stream I believe) transfer. The interrupt to set completion flags is never being called.

 

Here is my hardware design

dma_feedthrough_design.png

I am trying to use the software provided in this design as an example 

https://www.xilinx.com/support/answers/57562.html

 

It looks like they are doing something different than I am. They are pulling data from an analog to digital converter (ADC) using AXI Stream, performing some basic processing in the processor after the data has been buffered in DDR, then shooting it back out to a digital to analog converter (DAC) using a separate DMA. I am not sure I have to worry about both sending and receiving or just one of the two.

 

In my application, I simply want to push data from DDR into the fabric then have the DMA redirect it back to somewhere else in DDR. I will attach my code. I am hoping it should be a pretty easy fix for someone with experience with baremetal DMA driver, since this is possibly the simplest DMA application.

 

My program provides the following console output.

Creating DMA device...
Getting DMA configurations...
Initializing DMA Driver...
Checking for scatter gather...
Resetting DMA...
Enabling interrupts
...Creating interrupt device..
Creating interrupt configurations...
Initializing Interrupt Driver...
Setting interrupt priorities and trigger type...
Connecting interrupt handlers...
Enabling all interrupts...
Initializing exception table and registering handlers...
Enabling non-critical exceptions...
Send: Enabling interrupts...
Kicking off MM2S Transfer...
Waiting for MM2S to complete...

 

 

 

 

0 Kudos
2 Replies
Explorer
Explorer
543 Views
Registered: ‎10-18-2017

Re: AXI DMA Simple Transfer Interrupts

I updated my software and now the interrupts are triggering but the data in the receive buffer is unchanged. Attached is my current code. I am getting the same output for RxBufferPtr before and after the interrupts complete.

0 Kudos
Visitor atndech
Visitor
281 Views
Registered: ‎05-23-2019

Re: AXI DMA Simple Transfer Interrupts

hello,

have you solved your problem. I seem to be working on something similar , as seen in this link . 

the example axi dma interrupt example project. you seem to have changed the priority trigger type in your code. 

seems like you had already got the interrupt problem solved. 

Thanks much!

 

0 Kudos