Linked channel SDMA transfer on M7 (i.MX8MP)

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Linked channel SDMA transfer on M7 (i.MX8MP)

1,269件の閲覧回数
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,232件の閲覧回数
Harvey021
NXP TechSupport
NXP TechSupport

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

 

Best regards

Harvey

0 件の賞賛
返信

1,229件の閲覧回数
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,237件の閲覧回数
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,226件の閲覧回数
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,223件の閲覧回数
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,216件の閲覧回数
BitBakery
Contributor III

DM sent. Thanks. 

0 件の賞賛
返信