Linked channel SDMA transfer on M7 (i.MX8MP)

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Linked channel SDMA transfer on M7 (i.MX8MP)

1,261 次查看
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

 

标签 (1)
标记 (4)
0 项奖励
回复
6 回复数

1,224 次查看
Harvey021
NXP TechSupport
NXP TechSupport

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

 

Best regards

Harvey

0 项奖励
回复

1,221 次查看
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 项奖励
回复

1,229 次查看
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 项奖励
回复

1,218 次查看
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 项奖励
回复

1,215 次查看
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 项奖励
回复

1,208 次查看
BitBakery
Contributor III

DM sent. Thanks. 

0 项奖励
回复