Linked channel SDMA transfer on M7 (i.MX8MP)

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Linked channel SDMA transfer on M7 (i.MX8MP)

652 Views
BitBakery
Contributor III

Hi, 

I'm implementing a pingpong buffer on M7 and wanted to try a linked channel loop transfer using SDMA, but I can't find any info. Reference manual only mentions that EDMA can do it, but I couldn't find any EDMA related driver either in MCUxpresso SDK. Any idea or example? TIA  

 

Thanks

 

Labels (1)
Tags (4)
0 Kudos
6 Replies

615 Views
Harvey021
NXP TechSupport
NXP TechSupport

You can check other SDKs for reference, such as MIMX9352xxxxM and IMXRT1170.

 

Best regards

Harvey

0 Kudos

612 Views
BitBakery
Contributor III

Where can I get the EDMA driver for M7? It seems RT family SDK has it, but iMX8 SDK only comes with SDMA driver, even though EDMA feature has been explained in the reference manual.  Thanks. 

0 Kudos

620 Views
ceggers
Contributor V

Hi,

can you please explain, what a "linked channel loop transfer" actually is?

In general it should be possible to use the SDMA from the M7. But you cannot share the SDMA between the Cortex-A and Cortex-M (on i.MX8MP there is a small chance of assigning the 1st SDMA instance to the Cortex-A and 2nd or 3rd SDMA instance to the M7).

regards,
Christian

0 Kudos

609 Views
BitBakery
Contributor III

Hi, I should have provided a detail.. So I didn't mean to ask how to use SDMA itself, rather wanted to know how to do the loop transfer that let DMA do a linked RX-TX channel transfer, such as RX TX always happen in chained manner.(i.e. TX-RX-TX-RX-TX...) The iMX8 reference manual says EDMA can configure loop transfer but couldn't find its driver in the MCUxpresso SDK that built for iMX8 family soc. So I wondered if SDMA can do loop transfer. Thanks for your reply. 

 

 

0 Kudos

606 Views
ceggers
Contributor V

The existing SDMA scripts do either memory-to-memory, peripheral-to-memory  or memory-to-peripheral transfers.

With a custom SDMA script, you generally can do almost everything (the SDMA is a fully programmable processor). But I think that such applications are mainly useful when not dealing with different (S)DMA events for RX and TX. If you have only a single event (or a pure software event) for triggering the chained transfer, this should be ok.

In case you have different (S)DMA events for TX and RX, using two individual SDMA scripts is the more usual option.

regards,
Christian

0 Kudos

599 Views
BitBakery
Contributor III

DM sent. Thanks. 

0 Kudos