This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SRIO and EDMA

Normal 0 false false false RU X-NONE X-NONE

Hello.

I have to copy a huge data through SRIO. I read a post   http://e2e.ti.com/support/dsp/tms320c6000_high_performance_dsps/f/112/p/37583/131293.aspx#131293 where RandyP wrote:

“However, you can program a DMA channel to copy the columns to an intermediate buffer. That DMA channel could then chain to another DMA channel that copies 6 words from a table to a set of LSU registers to initiate the transfer…”

 

I have tried to do this but I have a problem.

When transaction is completed I should clean LSU_ICSR reg and set INTDST_RATE_CNTL register.

Now I set these registers in the interrupt.

But setting data to these registers is very slow (near 400 tiks per interrupt).

 

I can create a chain of EDMA (when SRIO event is occurred, first DMA request set LSU_ICSR. After that, the next request in the EDMA chain sets INT_DST_RATE_CNTL, next the EDMA request sets SRIO_LSU_REG) but it is awkward.  

 

Can I set it in automatic mode (without entering in the interrupt and setting it there)?

 

  • If you are looking for an example, the DIOLib contains an EDMA streaming example to do just what you are looking at.  Check it out:

     

    https://gforge.ti.com/gf/project/sriodirectiolib/frs/

    It will configure the EDMA for large transfers and manage the ICSR and pacing register.

    Regards,

    Travis